2013-01-09 13 views
5

क्या एक विशिष्ट ब्राउज़र के लिए एक अलग सीएसएस फ़ाइल लोड करने का कोई तरीका है?प्रत्येक ब्राउज़र के लिए अलग सीएसएस?

(गरीब छद्म कोड) की तरह:

if firefox 
<link rel="stylesheet" type="text/css" href="includes/MyCssFirefox.css" /> 
if chrome 
<link rel="stylesheet" type="text/css" href="includes/MyCssChrome.css" /> 
if Safari 
<link rel="stylesheet" type="text/css" href="includes/MyCssSafari.css" /> 
+1

डबल पोस्ट ... क्या कारण है कि आप की क्या ज़रूरत है http://stackoverflow.com/a/2644080/1100536 – bluejamesbond

+0

का संदर्भ लें से प्रत्येक के लिए विशिष्ट स्टाइल शीट की सेवा के लिए वे ब्राउज़र? – cimmanon

उत्तर

13

आदर्श समाधान आप चाहते हैं मौजूद नहीं है:

दुर्भाग्य से, एक क्रॉस ब्राउज़र समाधान मौजूद नहीं है तुम पर यह करने के लिए कोशिश कर रहे हैं एचटीएमएल ही हालांकि, यह आईई के अधिकांश संस्करणों के लिए काम करेगा। इस तरह की तरह:

<!--[if IE]> 
<link rel="stylesheet" type="text/css" href="includes/myIEGeneralStyle.css" /> 
<![endif]--> 
<!--[if IE 6]> 
<link rel="stylesheet" type="text/css" href="includes/myIE6Style.css" /> 
<![endif]--> 
<!--[if IE 7]> 
<link rel="stylesheet" type="text/css" href="includes/myIE7Style.css" /> 
<![endif]--> 
<!--[if IE 8]> 
<link rel="stylesheet" type="text/css" href="includes/myIE8Style.css" /> 
<![endif]--> 

तो सबसे अच्छा समाधान:

कैसे की तरह इस तरह के एक जावास्क्रिप्ट समाधान के बारे में: Browser Detection। इस वर्ग के बारे में थोड़ा पढ़ें बेहतर स्पष्ट करने के लिए, क्या उस फ़ाइल मूल रूप से कर रही है बस अवधारणा इस तरह की तरह है: जाहिर है

var browser = navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? 'chrome' : 'other'; 

, यह एक से अधिक सिर्फ ब्राउज़र का प्रकार का पता लगाने है। वास्तव में, यह उस लिंक में संस्करण, ओएस और बहुत अधिक जानकारी जानता है जिसे आप पढ़ सकते हैं। लेकिन, यह 'क्रोम' को 'मोज़िला', 'एक्सप्लोरर' के साथ बदलकर और सभी प्रकार के ब्राउज़रों की जांच करता है ...

फिर अपनी सीएसएस फाइलें जोड़ने के लिए, बस सशर्त बयान के साथ अनुवर्ती करें :

if (BrowserDetect.browser.indexOf("chrome")>-1) { 
document.write('<'+'link rel="stylesheet" href="../component/chromeCSSStyles.css" />'); 
} else if (BrowserDetect.browser.indexOf("mozilla")>-1) { 
    document.write('<'+'link rel="stylesheet" href="../component/mozillaStyles.css" />'); 
} else if (BrowserDetect.browser.indexOf("explorer")>-1) { 
    document.write('<'+'link rel="stylesheet" href="../component/explorerStyles.css" />'); 
} 

शुभकामनाएं और उम्मीद है कि इससे मदद मिलती है!

+0

सशर्त टिप्पणियां केवल इंटरनेट एक्सप्लोरर के लिए काम करती हैं (और केवल एक विशिष्ट संस्करण तक, मुझे लगता है कि 8 इसका समर्थन करने वाला अंतिम व्यक्ति है)। ओपी गैर-आईई ब्राउज़र में विभिन्न फाइलों को खिलाना चाहता है। – cimmanon

+0

@ सेमीमन: मैंने इसे अपडेट किया। – bluejamesbond

+0

और यह अभी भी एक खराब जवाब है। यूए स्नीफिंग सामग्री की सेवा के लिए कभी अच्छा नहीं रहा है। – cimmanon

0

आप IE ब्राउज़र को लक्षित करने के लिए सशर्त टिप्पणियों का उपयोग कर सकते हैं। इसे देखें: http://css-tricks.com/how-to-create-an-ie-only-stylesheet/। फ़ायरफ़ॉक्स को लक्षित करने के लिए आप यह उत्तर देख सकते हैं: https://stackoverflow.com/a/953491/1941910। लेकिन मुझे लगता है कि फ़ायरफ़ॉक्स, क्रोम या सफारी को लक्षित करने की कोई आवश्यकता नहीं है, वे सभी सीएसएस लागू करने के लिए एक अच्छी नौकरी करते हैं।

-1

आप इसे सर्वर के अंत में कर सकते हैं।

if(Request.UserAgent is chrome){   
    //here output chrome stylesheet 
} 
-5

हाँ,

<link rel="stylesheet" type="text/css" browser="mozillafirefox" href="includes/firefox.css" /> 
<link rel="stylesheet" type="text/css" browser="googlechrome" href="includes/chrome.css" /> 
<link rel="stylesheet" type="text/css" browser="msinternetexpl" href="includes/ie.css" /> 
+0

आपने कहां पढ़ा कि 'ब्राउज़र' विशेषता है? [एचटीएमएल 5 विनिर्देश] के अनुसार कोई नहीं है (http://www.w3.org/TR/html5/document-metadata.html#the-link-element), या यहां तक ​​कि [HTML4 विनिर्देश] तक (http://www.w3.org/TR/html4/struct/links.html#h-12.3)। –

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