मुझे इस समस्या को हल करने के लिए jQuery और CSS का संयोजन करना पसंद है। यह दृष्टिकोण आधुनिकता से प्रेरित था, जो गतिशील रूप से सभी ब्राउज़र की क्षमताओं को HTML तत्वों के वर्गों के रूप में जोड़ता है।
// Detect Browser
$.each(jQuery.browser, function(i, val) {
$("html").addClass(i);
$("html").addClass(val);
});
// Detect Operating System
$("html").addClass(navigator.platform);
उपरोक्त कोड चलाने का नतीजा मुझे यह आउटपुट देता है जब मैं एक पृष्ठ देखता हूं और डोम का निरीक्षण करता हूं। एक मुद्दा यह है कि मैं क्रोम के साथ मैक पर हूं लेकिन jQuery की ब्राउज़र ऑब्जेक्ट सोचती है कि मैं सफारी का उपयोग कर रहा हूं, जो एक वेबकिट ब्राउज़र भी है।
<html class="webkit version 535.1 safari MacIntel">
आप जावास्क्रिप्ट के navigator.useragent प्रिंट, तो आप इस
Mozilla-5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1
msie
तरह की जानकारी की टन के साथ एक परिणाम मिलेगा jQuery.browser लेबल IE के लिए सौंपा तो मैं कुछ इस तरह कर सकता है
h1 { /* my regular h1 styles */ }
.msie h1 { /* IE edge case styles for h1 treatment */ }
jQuery में आप अपनी शानदार इस्तेमाल कर सकते हैं: सशर्त बयान की आवश्यकता होगी, अगर मैं html या शरीर टैग करने के लिए एक वर्ग के रूप में ब्राउज़र संलग्न बिना मेरी सीएसएस में चयनकर्ता इंजन को संस्करण # और एस के लिए खोज करने के लिए सीधे विभिन्न मुद्दों को लक्षित करने के लिए चयन करें जो केवल विशिष्ट ब्राउज़र संस्करणों और ओएस संयोजनों पर लागू होते हैं। बस पूरे उपयोगकर्ता एजेंट स्ट्रिंग एचटीएमएल वर्ग को आउटपुट करें, बस उस स्ट्रिंग को /() वर्णों को हटाने के लिए सुनिश्चित करें।
http://api.jquery.com/jQuery.browser/
@Sky, जिसे अधिक सटीक ब्राउज़र और OS जानकारी है जो आप HTML तत्व को वर्ग के रूप में संलग्न कर सकता है पाने के लिए इस्तेमाल किया जा सकता इस http://www.quirksmode.org/js/detect.html के लिए एक महान लिंक था।
स्रोत
2011-10-25 20:28:22
विशेष रूप से फोंट के लिए, आप एक सूची निर्दिष्ट कर सकते हैं और यदि पहले फ़ॉन्ट कि विशेष रूप से सिस्टम पर नहीं पाया जाता है, अगले वापस आने प्रयोग किया जाता है का एक बहुत का समर्थन करता है, तो अगला, और इतने पर। –
जब स्टैनफोर्ड ने पहले अंडरग्रेजुएट्स के लिए टाइमशेयरिंग सिस्टम स्थापित किया था, तो यह उबेरगेक (रिचर्ड गेब्रियल?) द्वारा बेबीसाट था, जिन्होंने मेरे सभी सवालों का जवाब दिया "मैं आपको बता सकता हूं, लेकिन क्या आप वास्तव में जानना चाहते हैं?" यह प्रश्न मुझे उन दिनों की याद दिलाता है ... – Spike0xff