2013-03-18 7 views
9
#something { 
    background: url(data:image/png;base64,ABCDEF); 
} 

यह स्निपेट डेटा यूआरआई (स्पष्ट रूप से एबीसीडीईएफ से कुछ और के साथ) का समर्थन करने वाले सभी ब्राउज़रों में काम करता है।सीएसएस में अज्ञात डेटा यूआरआई मान्य हैं?

इसके अलावा, यह the CSS 2.1 spec के अनुसार मान्य है:

... वैकल्पिक एकल उद्धरण (') या दोहरे उद्धरण (") चरित्र यूआरआई खुद के द्वारा पीछा किया ...

लेकिन validator उद्धरण के बिना इसे स्वीकार नहीं करेगा:

मूल्य त्रुटि: पृष्ठभूमि यूआरएल (डेटा: छवि/पीएनजी; बेस 64, एबीसीडीईएफ) एक गलत यूआरएल

यदि आप यूआरआई को सिंगल या डबल कोट्स से घिराते हैं, तो यह मान्य होता है।

क्या मुझे कुछ याद आ रही है? क्या यह वैधता में एक बग है? संपादित करें: it was!

+1

आपको अपना प्रश्न अपडेट करना चाहिए: यह वैधकर्ता में एक बग था, जो अब पैच किया गया है। सी एफ https://github.com/w3c/css-validator/issues/42 –

उत्तर

11

जब तक यूआरआई ही किसी भी तरह से url() वाक्य रचना को नहीं तोड़ता है के रूप में (जैसे ( और ) या तो भाग निकले किया जाना चाहिए या यूआरआई एन्कोड ताकि वे समय से पहले ही समारोह टोकन, यह भी कल्पना में उल्लेख किया है समाप्त नहीं होते), यह अनजान होने पर भी मान्य होना चाहिए।

यह शायद एक वैधकर्ता बग है। विशेष रूप से, यह, किसी भी रूप में गैर उद्धृत डेटा यूआरआई को संभालने के लिए, क्योंकि जब मैं बस http (हालांकि यह स्पष्ट रूप से एक विशिष्ट HTTP पता जैसा नहीं होता है) को data बदल प्रकट नहीं होता है:

#something { 
    background: url(http:image/png;base64,ABCDEF); 
} 

यह ... तो जादुई रूप से सत्यापन पास करता है।

+2

पर चर्चा सहमत हुई। यदि spec इसे वैकल्पिक के रूप में परिभाषित करता है, तब तक जब तक कुछ और कहता है कि इसे डेटा स्कीम के लिए अलग होना आवश्यक नहीं है, तो यह समस्या सत्यापनकर्ता के साथ है यदि यह उन्हें याद करने के लिए आपके मार्कअप में विफल रहता है। – PhonicUK

+1

मैंने [github] पर एक मुद्दा खोला (https://github.com/w3c/css-validator/issues/42#issuecomment-155572400)। –

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