2008-10-03 19 views
17

जब IE8 जारी किया जाता है, तो निम्न कोड एक सशर्त स्टाइलशीट जोड़ने के लिए काम करेगा?सशर्त टिप्पणियों के साथ आईई 8 को लक्षित करेगा?

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

मैंने बीटा के साथ काम करने के लिए विवादित रिपोर्ट पढ़ी हैं। मुझे उम्मीद है कि कोई अपना अनुभव साझा कर सकता है। धन्यवाद।

+2

अद्भुत। फिर भी माइक्रोसॉफ्ट से एक और गैर मानक विस्तार। –

+9

यह एक बहुत पुराना और अविश्वसनीय रूप से उपयोगी है क्योंकि यह गैर-हैक सीएसएस स्विच को एमएसआईई के लिए अलग-अलग स्टाइल शीट्स की सेवा करने की अनुमति देता है। –

+0

यह प्रश्न बहुत समय पहले बंद होना चाहिए था। –

उत्तर

14

यह मेरे लिए काम करता है - क्विर्क मोड और मानक अनुपालन मोड में दोनों। हालांकि, यह IE12 संगतता मोड में स्विच करते समय काम करता है।

+1

क्या आपका मतलब आईई 7 संगतता मोड था? – Devon

+1

नहीं: बीटा 2 में ब्राउज़र मोड और एक दस्तावेज़ मोड है। दस्तावेज़ मोड आईई 7 संगतता (साथ ही सख्त मोड और quirks मोड) के लिए अनुमति देता है। ब्राउज़र मोड में "आईई 7", "आईई 8" और "आईई 8 संगतता मोड" विकल्प हैं। मेरा मतलब यही था। –

21

एक बात गौर करने योग्य

यह कार्य करता है, लेकिन यदि आप पृष्ठ/साइट लोड कर रहे हैं स्थानीय नेटवर्क (उदाहरण के लिए इंट्रानेट) यह IE7 मोड में लोड होगा डिफ़ॉल्ट रूप से ! (अद्यतन - localhost [*], एक विशेष मामला है कि मानकों मोड में प्रस्तुत करना है)

यह डिफ़ॉल्ट रूप से मानक जाने का MSFT के मूल बयान के खिलाफ जाता है।

उदा

http://127.0.0.1/mysite/mypage.php <-- IE8 by default (updated!) 
http://localhost/mysite/mypage.php <-- IE8 by default (updated!) 
http://machinename/mysite/mypage.php <-- IE7 by default 
http://192.168.100.x/mysite/mypage.php <-- IE7 by default 
http://google.com/ <-- IE8 by default 

[*] - स्कॉट डिकेंस [MSFT] ने एक टिप्पणी here on the IE Blog कि स्थानीय होस्ट इंट्रानेट में एक विशेष परिदृश्य था में बताया गया है इस प्रकार डिफ़ॉल्ट रूप से मानक मोड में प्रस्तुत करना होगा (अक्सर इंटरनेट साइटों को विकसित करने के लिए प्रयोग किया जाता)।

क्या मोड IE8 में एक पृष्ठ वास्तव में प्रदर्शित हो रहा है, तो आप उपयोग डेवलपर टूल की जांच कर सकते हैं या इस बुकमार्कलेट कोड (केवल IE8 में काम करता है) का उपयोग परीक्षण करने के लिए:

javascript: 
var vMode=document.documentMode; 
var rMode='IE5 Quirks Mode'; 
if(vMode==8){ 
    rMode='IE8 Standards Mode'; 
} else if(vMode==7){ 
    rMode='IE7 Strict Mode'; 
} 
alert('Rendering in: '+rMode); 
+0

मुझे लगता है कि यह कार्यप्रणाली पर निर्भर करता है (हालांकि सुनिश्चित नहीं है, परीक्षण नहीं किया गया है): जिस तरह से मैं माइक्रोसॉफ्ट को समझता हूं, आईई 8 सख्त मोड जैसे ही * किसी * वैध एचटीएमएल डॉक्ट टाइप निर्दिष्ट होता है। –

+0

नहीं, गलत। स्थानीय नेटवर्क पर आईई 8 या तो आईई 5 (क्विर्क मोड) या आईई 7 (मानकों मोड) में प्रस्तुत करेगा यदि आपके पास निर्दिष्ट एक डॉक्टरेट है। TRUE IE8 मानक मोड में प्रदान की गई स्थानीय साइट को देखने के लिए आपको स्पष्ट रूप से IE को बताना होगा कि आप इसे चाहते हैं (उदा। उपयोगकर्ता को इसे चुनना होगा) – scunliffe

+0

ठीक है - आप इसे कैसे जानते हैं? क्या आप कुछ सबूत दे सकते हैं? जब मैं आईई 8 में डेवलपर टूल्स में जाता हूं तो यह रिपोर्ट करता है कि यह स्थानीय पृष्ठों को लोड करते समय दोनों प्रतिपादन और ब्राउज़र मोड के लिए आईई 8 मोड चला रहा है (उदाहरण के लिए लोकलहोस्ट/somepage.html) – Konrad

3

उपकरण/संगतता दृश्य सेटिंग

उन सभी को अनचेक करें

0

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

यह आईई 8 के लिए अद्वितीय एक अजीब मुद्दा है - और हालांकि मुझे यह बताया गया है कि "स्टाइलशीट वरीयता" के साथ कुछ करने के लिए, यह केवल समस्याएं पैदा करता है क्योंकि समाधान के लिए आपको शीर्षक को हटाने की आवश्यकता होती है जो स्क्रिप्टिंग, इत्यादि के दौरान उपयोगी हो सकता है - जब आपको स्टाइल शीट को कॉल करने की आवश्यकता होती है।

किसी भी मामले में, सुनिश्चित नहीं है कि यह एक बग है, या ऐसा माना जाता है, लेकिन मुझे उम्मीद है कि माइक्रोसॉफ्ट आगे की जांच करेगा।

धन्यवाद

+0

मुझे लगता है कि आपको अलग-अलग लिंक्ड स्टाइलशीट में समान शीर्षक नहीं जोड़ना चाहिए। AFAIR जो कि Konqueror में अच्छी तरह से काम नहीं किया था (साल पहले)। – hurikhan77

0

क्यों भी IE8 के लिए एक अलग स्टाइलशीट लिख परेशान?

यदि आप पहले ही आईई 7 के लिए डीबग कर चुके हैं, तो आप IE8 को संगतता मोड में मजबूर कर सकते हैं, और इस प्रकार अपना कोड प्रदर्शित कर सकते हैं जैसे IE8 IE7 था।

आपको बस इतना करना है कि यह शीर्षक खोलने वाला मुख्य टैग नीचे दिया गया है। कहीं और और यह काम नहीं करेगा।

और फिर प्रति परियोजना औसतन आधे घंटे या उससे कम काम, IE8 के लिए कोई गहन डिबगिंग की आवश्यकता नहीं है!

यहां तक ​​कि Msn.com ऐसा करता है - विडंबनात्मक, आह?

हाल ही में इस बारे में एक ब्लॉग पोस्ट लिखा: http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging-on-ie8-when-you-dont-have-to-or-get-ie8-to-behave-like-ie7/

+0

आईई 9 के साथ आता है तो क्या होता है? – codeinthehole

0

IE8 IE7 की तुलना में, मैं IE6, IE7 और IE8 के लिए स्टाइलशीट है सुंदर अच्छा renders; सबसे पहले मैंने सोचा कि सशर्त टिप्पणियां कुछ प्रयोग के बाद आईई 8 के लिए काम नहीं कर रही थीं, मैंने पाया कि कुछ नियम आईई 8 द्वारा लागू नहीं हो रहे थे क्योंकि मुझे पहले पूर्वज या अभिभावक वर्ग को रखना था, उदाहरण के लिए। मैं इसे काम किया केवल

.niceclass {some:properties;more:properties;}

की तरह एक वर्ग था अगर मैं की तरह कुछ के लिए इसे बदल:

.parentclass .niceclass {some:properties;more:properties;}या

#parentselector .niceclass {some:properties;more:properties;}

btw मेरी IE8- में

केवल सीएसएस में मेरे पास केवल एक ओवरराइडिंग नियम है, बाकी को एएमएम प्रदान किया जाता है फायरफॉक्स की तरह, हालांकि वह मुझे एफएफ छोड़ने के लिए नहीं बना रहा है!

0

मेरे भाग के लिए मैं सीएसएस का उपयोग करके गोलाकार सीमाओं का उपयोग करना चाहता था। Vista पर IE8 इस तरह का समर्थन नहीं करता है। और चूंकि ग्राफिक्स इतने थे कि गोलाकार सीमाएं एक अच्छी गोलाकार छाया भी दिखाएंगी, पृष्ठ आईई 8 में भयानक लग रहा था।

मैंने सशर्त टिप्पणियों का उपयोग करने की कोशिश की, लेकिन इसका कोई फायदा नहीं हुआ, IE8 आईई अभिव्यक्ति का मूल्यांकन नहीं करेगा और इस प्रकार बाहरी स्टाइलशीट शामिल नहीं होगा।

फिर मुझे इसे क्विर्क/कम्पैटिबिलिटी मोड में डालने का एक नज़र था, हालांकि, यह अभी भी काम नहीं कर रहा है क्योंकि मैंने उपयोग किए गए सीएसएस हैक अब आईई 8 के लिए काम नहीं किया था।

अंतिम लेकिन कम से कम मुझे एक कामकाजी सीएसएस हैक मिला जो संगतता मोड में पृष्ठ को सही ढंग से प्रस्तुत करेगा।

* + html #test[id] { color:lime } 

अब, मैं अगर यह IE7 या नीचे के लिए काम करता है पता नहीं है, ताकि आप प्रत्येक IE के लिए कम से कम तीन अलग हैक्स रिलीज आप का समर्थन करने के e.e. चाहते होता

* + html #test, 
    html+body #test, 
    * html body #test 
    { color:lime } 

मुझे आश्चर्य है कि इंटरनेट एक्सप्लॉइटर का अगला प्रतिशोध हमारे लिए क्या देखेगा।

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

  • कोई संबंधित समस्या नहीं^_^