2010-04-18 17 views
5

क्या JQuery या CSS का उपयोग कर ऑपरेटिंग सिस्टम का पता लगाने का कोई तरीका है? सीएसएस के साथ मैं कुछ इसी तरह की बात कर रहा हूँ करने के लिए <![if !IE]>जब मैं लिनक्स चला रहा हूं तो मैं केवल एक विशिष्ट फ़ॉन्ट का उपयोग कैसे कर सकता हूं?

मैं केवल जब वेब पेज लिनक्स का उपयोग करने में देखा जाता है एक विशिष्ट फ़ॉन्ट का उपयोग करने की जरूरत है और अन्य ओएस के

+5

विशेष रूप से फोंट के लिए, आप एक सूची निर्दिष्ट कर सकते हैं और यदि पहले फ़ॉन्ट कि विशेष रूप से सिस्टम पर नहीं पाया जाता है, अगले वापस आने प्रयोग किया जाता है का एक बहुत का समर्थन करता है, तो अगला, और इतने पर। –

+0

जब स्टैनफोर्ड ने पहले अंडरग्रेजुएट्स के लिए टाइमशेयरिंग सिस्टम स्थापित किया था, तो यह उबेरगेक (रिचर्ड गेब्रियल?) द्वारा बेबीसाट था, जिन्होंने मेरे सभी सवालों का जवाब दिया "मैं आपको बता सकता हूं, लेकिन क्या आप वास्तव में जानना चाहते हैं?" यह प्रश्न मुझे उन दिनों की याद दिलाता है ... – Spike0xff

उत्तर

8

हालांकि "ओ/एस का पता लगाने" के सवाल का सीधे जवाब नहीं दे रहे हैं, तो आप font-family सीएसएस संपत्ति का उपयोग कर फ़ॉन्ट का चयन करने के वांछित प्रभाव को प्राप्त करने में सक्षम हो सकते हैं।

यह संपत्ति आपको फ़ॉन्ट्स की एक सूची चुनने देती है, जहां ब्राउज़र सिस्टम पर उपलब्ध फ़ॉन्ट्स से मिलान करने का प्रयास करेगा। यह बाएँ से सही पढ़ता है और उपलब्ध पहले फ़ॉन्ट का उपयोग होगा: इस मामले में

body 
{ 
    font-family: "Calibri", "Arial", "Sans Serif" 
} 

, यदि "Calibri" फ़ॉन्ट उपलब्ध नहीं है, प्रणाली "Arial" का प्रयोग करेंगे। यदि "एरियल" नहीं मिला है, तो यह "सांस सेरिफ़" परिवार में से किसी भी उपलब्ध फोंट का उपयोग करेगा।

इसके साथ आप पहले अपने लिनक्स-विशिष्ट फ़ॉन्ट को निर्दिष्ट कर सकते हैं और जानते हैं कि उपलब्ध फ़ॉन्ट के बिना अन्य प्लेटफ़ॉर्म भी उपयुक्त फ़ॉन्ट का उपयोग करके प्रदर्शित होंगे।

+2

किसी को किसी अन्य सिस्टम पर इन फोंट को स्थापित करने से रोकने के लिए क्या करना है? उन फोंट के बारे में क्या है जिनके पास इन फोंट स्थापित नहीं हैं? ओएस का पता लगाने के लिए यह एक भयानक तरीका है। – Brad

+3

मेरे उत्तर राज्यों के अनुसार, यह ओएस का पता लगाने की कोशिश करने का उत्तर नहीं है, लेकिन उपलब्ध होने के आधार पर एक विशेष फ़ॉन्ट कैसे प्रदर्शित किया जाए। –

+0

क्षमा करें, मैंने कल आपकी पोस्ट को गलत तरीके से पढ़ा है। यदि आप एक संपादन करना चाहते थे, तो मैं खुशी से अपना डाउनवोट वापस ले जाऊंगा। (इसलिए मुझे इसे 1 वर्ण या संपादित करने के बिना इसे हटाने नहीं देगा, क्योंकि यह बुधवार था।) मुसीबत के बारे में खेद है! – Brad

13

के साथ इस शामिल करने के लिए की जांच नहीं करना चाहती navigator.userAgent

आप आम तौर पर सरल आरएक्स के साथ जो खोजते हैं उसे ढूंढ सकते हैं लेकिन ऐसा करने के लिए स्नीफिंग की बुनियादी समझ की आवश्यकता होगी। आप here का एक अच्छा उदाहरण पा सकते हैं।

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

ओएस द्वारा जहां तक ​​गतिशील नियंत्रित फोंट, मुझे लगता है कि, कुछ बढ़त मामले कि आपके प्रश्न में कहा गया है नहीं है को छोड़कर बस को परिभाषित करने के लिए एक font stack आपका सर्वश्रेष्ठ दांव है।

3

मुझे इस समस्या को हल करने के लिए 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 के लिए एक महान लिंक था।

1

आप राफेल के ब्राउज़र चयनकर्ता की जाँच हो सकता है जावास्क्रिप्ट http://rafael.adm.br/css_browser_selector/ - आप, ब्राउज़र- परिभाषित करने के लिए सक्षम हो जाएगा ओएस, और ब्राउज़र से/ओएस कॉम्बो विशेष सीएसएस, एक आसान के रूप में:

(.os)(.browser) selector {...;} (ताकि, जैसे .opera {color: red;})

यह ओएस के का एक बहुत और ब्राउज़रों

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

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