तत्व लिंक आवश्यक विशेषता गुण गुम है


79
<!DOCTYPE html>
...
<link rel='stylesheet' id='basecss-css' href='http://www.someurl.com/modules/14ce1e21/peadig-eucookie.css' type='text/css' media='all' />

सत्यापनकर्ता ( http://validator.w3.org/ ) इसे अस्वीकार क्यों कर रहा है ? "आवश्यक" किस विशेषता के बारे में मुझे जानकारी नहीं है?

त्रुटि:

त्रुटि रेखा 408, कॉलम 142: तत्व लिंक आवश्यक विशेषता गुण गुम है। … / मॉड्यूल / 14ce1e21 / peadig-eucookie.css प्रकार = 'पाठ / सीएसएस' मीडिया = 'सभी' /> तत्व लिंक के लिए विशेषता: वैश्विक विशेषताएँ href क्रॉसोरिगिन रिले मीडिया ह्रेनांग प्रकार आकार इसके अलावा, शीर्षक विशेषता इस पर विशेष शब्दार्थ है तत्व।


मैं उस त्रुटि संदेश को पुन: उत्पन्न नहीं कर सकता
क्वेंटिन

इसके अजीब ... लेकिन सत्यापनकर्ता त्रुटि वैसे भी फेंक रहा है।
no9

संभवत: आपके संदर्भ में आपके संदर्भ से कुछ संदर्भ गायब हैं।
क्वेंटिन

1
शायद इसकी समस्या है क्योंकि हेडर में नहीं है?
no9

@ no9: जैसा कि जक्का ने नीचे समझाया (और किस उत्तर को उत्तर के रूप में इंगित किया जाना चाहिए , इस तरह से आप <body> के अंदर <लिंक> के रूप में अच्छी तरह से कर सकते हैं: <link rel='stylesheet' id='someId' href='folder/file.css' type='text/css' media='all' property='' />सभी ब्राउज़रों में काम करता है, और पुष्टि करता है। यह सभी विशेषता के बारे में है property
फ्रैंक कॉनिज़न

जवाबों:


82

@Stevelove से सलाह स्पष्ट रूप से व्यावहारिक समाधान है, लेकिन यहाँ "क्यों" प्रश्न का एक सैद्धांतिक जवाब है:

यद्यपि पुराने HTML विनिर्देशों linkमें एक तत्व बिना शर्त अमान्य है body, HTML5 में अधिक अनुमेय नियम हैं। एचटीएमएल 5.1 नाइटली के अनुसार (जो कमोबेश वैद्यक साथ रखने की कोशिश करता है), linkतत्व को दस्तावेज़ निकाय में भी अनुमति दी जाती है, (जहाँ भी सामग्री को अनुमति दी जाती है), बशर्ते कि इसमें एक itempropविशेषता हो। ऐसा लगता है कि त्रुटि संदेश और भी अधिक हैरान करने वाला है। स्पष्टीकरण का एक हिस्सा यह है कि सत्यापनकर्ता वास्तव में HTML5 + RDFa के खिलाफ सत्यापन कर रहा है, और RDFa propertyविशेषता को परिभाषित करता है । समस्या अभी भी बनी हुई है कि मान्यकर्ता के खिलाफ कौन से विशिष्ट आरडीएफए परिभाषा है, क्योंकि परिभाषा को एचटीएमएल के लिए भी नियमों को फिर से परिभाषित करना होगा।

त्रुटि संदेश में जानकारी वैसे भी पुरानी है। त्रुटि संदेश स्पष्ट रूप से सत्यापनकर्ता की बुनियादी कार्यक्षमता के रूप में तेजी से अद्यतन नहीं किए जाते हैं।


5
इसे ठीक करने के बारे में hawkeye126 का जवाब देखें।
फ्रेंच जू

यह त्रुटि संदेश अब 2017 तक मौजूद नहीं है।
TheAmazingKnight

91

जोड़ना

property='stylesheet'

यदि आप अपने लिंक को <head>दस्तावेज़ में स्थानांतरित नहीं करना चाहते हैं ।

<link rel='stylesheet' property='stylesheet' id='basecss-css'  href='http://www.someurl.com/modules/14ce1e21/peadig-eucookie.css' type='text/css' media='all' />

43

क्या आपके <link>अंदर है <body>? यदि ऐसा है, तो इसे <head>दस्तावेज़ के शीर्ष पर रखने का प्रयास करें।


4
एक तरफ मान्यकरण, आपको हमेशा शेष पेज को रेंडरिंग से रोकने के लिए दस्तावेज़ के शीर्ष पर स्टाइलशीट रखना चाहिए, जैसा कि यहाँ वर्णित है: डेवलपर
yahoo.com/performance/rules.html#css_top

10
@stevelove (एक साल बाद / भविष्य के संदर्भ के लिए) यह अक्सर अनुकूलित नहीं होता है। सभी संभव दुनिया के सर्वश्रेष्ठ में, आपको <style>दस्तावेज़ के शीर्ष पर महत्वपूर्ण ऊपर-नीचे सीएसएस डालना चाहिए और शेष को नीचे रखना चाहिए। पेज तेजी से खोलने का यह सबसे अच्छा तरीका है। आप इस BUT के बारे में वेब पर डॉक्स पा सकते हैं यह हमेशा करना संभव नहीं है (और अक्सर, व्यवसाय कोड की दक्षता> प्रदर्शन)।
लुडोविक गुइल्यूम सेप

15

W3C HTML5 सत्यापनकर्ता अनुरक्षक यहाँ। जैसा कि एक अन्य उत्तर में बताया गया है, HTML5 युक्ति में आवश्यकताओं की जाँच के अलावा, सत्यापनकर्ता HTML + RDFa 1.1 युक्ति में आवश्यकताओं के विरुद्ध भी जाँच करता है:

http://www.w3.org/TR/html-rdfa/

और जबकि HTML युक्ति स्वयं कहती linkहै कि आमतौर पर शरीर में अनुमति नहीं है the, RDFa कल्पना कहती है कि यदि किसी linkतत्व की propertyविशेषता है, तो उसे शरीर में अनुमति दी जाती है।

इसलिए कि सत्यापनकर्ता संदेश मूल रूप से कह रहा है, linkonly तत्व को केवल यहां अनुमति दी गई है यदि इसमें एक propertyविशेषता है। लेकिन इस विशेष linkतत्व में एक propertyविशेषता नहीं है ।

Is HTML युक्ति स्वयं यह भी कहती है कि linkतत्व की विशेषता होने पर शरीर में अनुमति दी जाती है itemprop- लेकिन केवल यदि linkतत्व का कोई relमूल्य नहीं है । ( itemprop"माइक्रोडाटा" विशेषता है जिसका उद्देश्य मूल रूप से RDFa propertyविशेषता के समान है )।

इसलिए हमारे पास दो अलग-अलग विशेषताएँ हैं जो दोनों को स्वतंत्र रूप से प्रभावित करती हैं जहां एक दस्तावेज़ में linkतत्व को प्रदर्शित करने की अनुमति है, और जो सत्यापनकर्ता में जाँच तर्क को इस तरह से जटिल करता है जिससे इस मामले के लिए एक बेहतर, अधिक उपयोगी त्रुटि संदेश का उत्सर्जन करना मुश्किल हो जाता है।


1

बस भविष्य की जरूरतों के लिए, यहाँ मेरी टिप्पणी है:

में W3C पेज हम निम्नलिखित कमेंटरी है:

यदि रिले विशेषता का उपयोग किया जाता है, तो तत्व प्रमुख तत्व तक सीमित है। जब आइटमप्रॉप विशेषता के साथ उपयोग किया जाता है, तो तत्व को सिर तत्व में और पृष्ठ के शरीर में, माइक्रोडाटा मॉडल की बाधाओं के अधीन उपयोग किया जा सकता है।

तो त्रुटि को हल करने के relलिए बदल दिया जा सकता है itemprop, क्योंकि relसिर itempropमें इस्तेमाल किया जाना है और शरीर में इस्तेमाल किया जा सकता है।

आशा है कि यह किसी की मदद करता है।


2
मुझे इसे हल करने का एक और तरीका मिला है, आप एक ही टैग में rel और property को संयोजित कर सकते हैं, उदाहरण के लिए <link rel='stylesheet' property='stylesheet' href='custom.css' type='text/css' media='screen' />
h3nr1ke

0

यह चाहता है कि यह आपके सिर में रहे। हालाँकि, यदि css अभी लोड करने के लिए बहुत महत्वपूर्ण नहीं है, तो आपको Google का पेजपेड टूल मिलेगा, जो आपको शरीर के निचले भाग में लगाने के लिए कहेगा।

एक उदाहरण के रूप में, मैं अपने स्वत: पूर्ण शैली के लिए jquery विषयों (रेडमंड) में से एक का उपयोग करता हूं। इसे मेरे पृष्ठ के शीर्ष पर रखने की कोई आवश्यकता नहीं है क्योंकि यह सब कुछ धीमा कर देगा।

इसलिए, पूर्ण w3c सत्यापन के बारे में बहुत अधिक चिंता न करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.