2008-09-05 14 views
5

मैंने देखा लोगों को अपने HTML में इस तरह की बातें कर रही है:क्या स्टाइलशीट सहित उपयोग के लिए ब्राउज़र कंडीशनर की एक सूची है?

<!--[if IE]> 
    <link rel="stylesheet" href="ie.css" type="text/css" /> 
<![endif]--> 

सभी आधुनिक ब्राउज़र में इस काम करता है और वहाँ है कि अगर बयान उस तरह के साथ काम करेंगे ब्राउज़र प्रकार की एक सूची है?

संपादित

धन्यवाद Rossgt, lt, gte, & lte के बारे में जानना दिलचस्प है।

उत्तर

10

यह सभी ब्राउज़रों में काम करता है क्योंकि IE को छोड़कर कुछ भी <!--IGNORED COMMENT--> देखता है। यदि इसमें एक सशर्त खंड होता है तो केवल आईई टिप्पणी पढ़ता है। this article

पर एक नज़र डालें, आप IE का कौन सा संस्करण निर्दिष्ट कर सकते हैं। उदाहरण के लिए:

<!--[if IE 8]> 
<link rel="stylesheet type="text/css" href="ie8.css" /> 
<![endif]--> 
+0

थोड़ा जोड़ने के लिए, यह आधिकारिक तौर पर एमएस द्वारा समर्थित है, और आम तौर पर उन मामलों में डेवलपर सर्वोत्तम अभ्यास माना जाता है जहां आपको बिल्कुल आईई को लक्षित करना होता है (बनाम सभी बदसूरत सीएसएस हैक्स वेब देवताओं का इस्तेमाल पहले किया जाता है)। यहां एक एमएसडीएन आलेख w/पूर्ण वाक्यविन्यास है: http://msdn.microsoft.com/en-us/library/ms537512.aspx – joelhardi

1

रॉस के उत्तर के आगे, आप केवल इंटरनेट एक्सप्लोरर प्रतिपादन इंजन को सशर्त टिप्पणियों के साथ लक्षित कर सकते हैं; अन्य ब्राउज़रों के लिए कोई समान निर्माण नहीं है। उदाहरण के लिए, आप सशर्त टिप्पणियां नहीं लिख सकते हैं जो फ़ायरफ़ॉक्स को लक्षित करते हैं, लेकिन इंटरनेट एक्सप्लोरर द्वारा अनदेखा किया जाता है।

जिस तरह से मैं उपरोक्त आपके उदाहरण के समान प्रभाव प्राप्त करता हूं वह उपयोगकर्ता एजेंट स्ट्रिंग को स्नीफ करना है। मैं फिर उस ब्राउज़र के लिए एक उपयुक्त सीएसएस फ़ाइल प्रदान करते हैं। यह सही नहीं है क्योंकि कभी-कभी लोग संगतता के लिए अपने उपयोगकर्ता-एजेंट स्ट्रिंग को बदलते हैं।

विभिन्न ब्राउज़रों को लक्षित करने का दूसरा तरीका ब्राउज़र विशिष्ट हैक्स का उपयोग करना है। ये विशेष रूप से गंदा हैं क्योंकि वे आमतौर पर ब्राउज़र में कीड़े पर भरोसा करते हैं और बग तय करने के लिए उत्तरदायी होते हैं!

उपयोगकर्ता-एजेंट स्नीफिंग मेरी राय में सबसे अच्छा ऑल-राउंड समाधान है।

navigator.appName 
navigator.appVersion 

link

या इस तरह के jQuery के रूप में एक पुस्तकालय का उपयोग करके और अधिक मजबूत कुछ:

1

आप Javascript का उपयोग कर सकते हैं, वहाँ कई विकल्प हैं।

अंत में, आप QuirksMode से BrowserDetect ऑब्जेक्ट का उपयोग कर सकते हैं।

एक बार आपके पास ब्राउज़र का नाम और संस्करण हो जाने के बाद, आप स्टाइल शीट से लिंक करने के लिए HTML डाल सकते हैं या अन्य टैग शामिल कर सकते हैं।

1

सशर्त टिप्पणियां पूरी तरह से आईई (संस्करण 5 और बाद में) के लिए हैं। आधिकारिक माइक्रोसॉफ्ट दस्तावेज here है। यदि आप उनका उपयोग करने जा रहे हैं तो सबसे अच्छी रणनीति है कि आपके सामान्य शामिल होने के बाद सशर्त रूप से बाहरी स्टाइलशीट या जावास्क्रिप्ट फाइलें शामिल हों। इसका मतलब है कि आईई पर आपका आईई-विशिष्ट कोड बाकी सब कुछ ओवरराइड करेगा। किसी भी अन्य ब्राउज़र पर कोड को टिप्पणियों के रूप में माना जाएगा और पार्सर द्वारा अनदेखा किया जाएगा।