2014-04-16 14 views
6

जब एक एम्बेडेड सीएसएस के साथ इस एसवीजी कोड लिखने,:सीएसएस में एसवीजी "डीफ़्स" टैग का सही व्यवहार क्या है?

<?xml version="1.0" encoding="utf-8"?> 

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 100 100"> 
    <style> 
     defs rect 
     { 
      fill:   blue; 
     } 
    </style> 
    <defs> 
     <rect id="rectangle" x="5" y="10" width="3" height="3"/> 
    </defs> 

    <rect x="5" y="5" width="3" height="3"/> 
    <use xlink:href="#rectangle"/> 
</svg> 

फिर, क्रोम "भरने: नीले" लागू होता है उपयोग टैग के माध्यम से दूसरे रेक्ट के नियम (ताकि पहले रेक्ट काला है, दूसरा नीला है), जबकि फ़ायरफ़ॉक्स नियम लागू नहीं करता है (दोनों रेक्ट काला रहते हैं)।

क्या यह एक फायरबग है? क्या मुझे कुछ नहीं मिला है? या मानक कहते हैं "defs टैग सीएसएस चयनकर्ताओं को ब्लॉक करना चाहिए"?

+1

चयनकर्ता के रूप में 'defs' का उपयोग करना HTML में' शीर्षक 'का उपयोग करना है। आप आमतौर पर ऐसा नहीं करेंगे क्योंकि 'defs' सिर्फ एक तार्किक कंटेनर है, न कि एक ब्लॉक जिसे आप सामान्य रूप से स्टाइल करेंगे। यदि यह एक बग है, तो यह निश्चित रूप से एक टालने योग्य है। 'Defs' में तत्व केवल 'आईडी' के साथ उपयोगी होते हैं क्योंकि उन्हें उपयोगी होने के लिए कहीं और संदर्भित करने की आवश्यकता होती है, ताकि आप हमेशा इसकी आईडी का उपयोग करके ऐसे तत्व को संदर्भित कर सकें। – helderdarocha

+0

@helderarocha #id और .class के लिए ठीक है, लेकिन अगर मैं नोड के नाम के अनुसार नियम लागू करना चाहता हूं, तो यहां? ठीक है, मैं इसे बग के रूप में मानूंगा इसलिए मैं इसे फायरबग पर रिपोर्ट करूंगा। – Xenos

+0

यदि आप केवल आईडी या इनलाइन विशेषता फ़ाइल का उपयोग करते हैं, तो यह काम करता है, बग अधिक पसंद है: इसे क्यों भरना चाहिए? http://codepen.io/anon/pen/uoqwr/ –

उत्तर

6

यह वास्तव में फ़ायरफ़ॉक्स से एक बग है।

नियम defs rect तत्वों पर लागू होते हैं, लेकिन use टैग क्लोन defs rect पर लागू नहीं होते हैं। defs को g टैग के साथ प्रतिस्थापित करने से पता चलता है कि defs rect भरा हुआ है; लेकिन नियम "-जनित क्लोन" पर लागू नहीं होते हैं।

सही व्यवहार क्रोम का है, जो उपयोग-उत्पन्न क्लोन भर रहा है; defs rect का उपयोग-क्लोन संस्करण गलत तरीके से फ़ायरफ़ॉक्स से भरा नहीं है।

अधिक स्पष्टीकरण के लिए https://bugzilla.mozilla.org/show_bug.cgi?id=997362#c4 देखें।

संबंधित मुद्दे