2012-12-17 23 views
5

में कक्षाएं क्यों जोड़ता है क्या कोई भी समझा सकता है (क्योंकि जिथब पेज नहीं है) क्यों मॉडर्निजर को उन सभी क्लासनामों को HTML टैग में जोड़ने की आवश्यकता महसूस होती है? Modernizr लोड करने के बाद, ऐसा लगता है:मॉडर्निज़र लाइब्रेरी का उपयोग करके, यह एचटीएमएल टैग

<!doctype html> 
<html class=" js flexbox canvas canvastext webgl ~~~~ etc etc 

मुझे कोई स्पष्टीकरण नहीं दिख रहा है कि वह ऐसा क्यों करना चाहता है। Modernizr मुझे यह बताने के लिए गुण प्रदान करता है कि उदाहरण के लिए कैनवास समर्थित है (Modernizr.canvas == सच?)। क्या वे HTML क्लासनाम एक परीक्षण के लिए जोड़े गए हैं जो उससे आसान है?

उत्तर

8

ये कक्षा नाम आपके सीएसएस कोड में उपयोग किए जाने के लिए हैं, इसलिए यदि कोई सुविधा असमर्थित है तो आप फ़ॉलबैक शैलियों को जोड़ सकते हैं। आधुनिकizr दस्तावेज़ पृष्ठ से उदाहरण:

/* Simulated box shadow using borders: */ 
.box { 
    border-bottom: 1px solid #666; 
    border-right: 1px solid #777; 
} 
.boxshadow div.box { 
    border: none; 
    -webkit-box-shadow: #666 1px 1px 1px; 
     -moz-box-shadow: #666 1px 1px 1px; 
      box-shadow: #666 1px 1px 1px; 
} 
+0

ऐसा लगता है कि मुझे सीएसएस सीखना होगा। मैंने सोचा कि मैं हमेशा स्टाइल गुणों के बारे में काफी जानता हूं, लेकिन ऐसा लगता है कि यह कुछ उन्नत चीजें हैं। – Dee2000

+0

मुझे लगता है कि किसी ने इस जवाब को वोट दिया है। मुझे लगता है कि इसका मतलब है कि यह जवाब है। मैं जवाब को चिह्नित करने के लिए टिक पर क्लिक करूंगा, भले ही मुझे समझ में न आए कि यह कैसे जवाब/क्यों है :) – Dee2000

+0

@ डीई 2000, मैंने इसे समझ लिया क्योंकि यह समझ में आया। इस उदाहरण में, कहें कि आपका ब्राउज़र ड्रॉप छाया का समर्थन नहीं करता है; .boxshadow div.box "कभी भी लक्षित नहीं होना चाहिए", इसलिए, .box को फ़ॉलबैक के रूप में उपयोग किया जाता है – series0ne

1

मैं गलत हो सकता हूं (और अगर मैं हूं तो कृपया मुझे सही करें), कक्षाएं उन सुविधाओं को इंगित करती हैं जो आधुनिकज़र ने पाया है कि दिए गए ब्राउज़र में समर्थित हैं (या वास्तव में नहीं हैं)। http://modernizr.com/docs/

इस उदाहरण लें:

डॉक्स यहाँ पर देखो

<html class="no-js"> 

यदि जावास्क्रिप्ट अक्षम है, तो modernizr चला सकते हैं नहीं है, और इसलिए वर्ग "no-js" बना रहेगा, लेकिन जावास्क्रिप्ट सक्षम हो जाता है , Modernizr "no-js" को "js" के साथ प्रतिस्थापित करेगा, और इसी प्रकार आपको बताएगा कि अन्य सुविधाएं किस प्रकार समर्थित हैं

+0

मैं "नो-जेएस" को अनदेखा कर दूंगा क्योंकि यह एक अजीब उदाहरण है। लेकिन मुझे जो नहीं मिल रहा है, यह है कि जब कोई विधि पहले से मौजूद है तो इन वर्गों को HTML टैग में जोड़ने में कोई बात नहीं है। उदाहरण के लिए, जब यह पता चलता है कि वीडियो समर्थित है या नहीं, तो यह सुनिश्चित करता है कि (ए) प्रॉपर्टी Modernizr.video उपलब्ध है जिसे आप परीक्षण करने के लिए अपने जेएस में उपयोग कर सकते हैं, और (बी) वर्ग "वीडियो" एचटीएमएल टैग में जोड़ा जाता है (अज्ञात कारण के लिए)। दस्तावेज क्यों नहीं समझाता है। – Dee2000

+0

@ डीई 2000 - यहां "यह कैसे काम करता है ..." देखें: http://modernizr.com/ – series0ne

+0

@ डीई 2000, मुझे लगता है कि आपके पास यह है कि आपके सीएसएस में उदाहरण के लिए html.flexbox है, जो आपके दस्तावेज़ के माध्यम से कैस्केड करता है । लेकिन, यदि मॉडर्निज़र कभी भी आपके एचटीएमएल टैग में "फ्लेक्सबॉक्स" नहीं डालता है, तो यह कभी भी आपके सीएसएस में लक्षित नहीं होगा ... अगर मुझे यह समझ में नहीं आता है कि – series0ne