2009-03-05 12 views
5
  • सीएसएस में @import, सही है?
  • आईई 6 *html selector हैक समझता है, है ना?

आईई 6 हैक्स

//*html { @import url(ie6hacks.css); } 

उनकी तरह

//*html @import url(ie6hacks.css); 

या, संभवतः गठबंधन करने के लिए संभव यह है?

अच्छे ब्राउज़र को इसे छोड़ना होगा, क्या यह अभी भी आईई 6 में काम करेगा? यह समाधान के रूप में कैसे दिखता है? मैं स्पष्ट रूप से देख सकता हूं कि यह सामान्य सीएसएस के रूप में बदसूरत दिखता है।

उत्तर

4

यह संभव उनकी तरह से-नियम @import तरह

* html @import url(ie6hacks.css); 

सं गठबंधन करने के लिए चयनकर्ताओं नहीं हैं है, इसलिए अन्य चयनकर्ताओं के साथ संयुक्त नहीं किया जा सकता।

@import url(/* no! */iehacks.css); 

IE6/7 द्वारा लोड किया जाएगा, लेकिन नहीं अन्य ब्राउज़रों:

वहाँ कम से-नियम, हैक्स के रूप में काम उदाहरण इस बात के लिए बनाने के लिए तरीके हैं। हालांकि, मैं इसका उपयोग करने की सिफारिश नहीं करता; इस तरह की चीज वास्तव में नाजुक हो सकती है। यह विशेष उदाहरण भी अवैध सीएसएस है।

जैसा कि डैनियल कहते हैं, यदि आप हैक्स के लिए अलग। सीएसएस फाइलें चाहते हैं, तो सबसे अच्छा तरीका एक सशर्त रूप से शामिल लिंक टैग है। "* एचटीएमएल" की सुंदरता यह है कि आप उसी स्टाइलशीट में हैक-नियम डाल सकते हैं, जो प्रबंधित करने में आसान है अगर उनमें से केवल कुछ ही हैं; यदि आपके पास एक अलग स्टाइल शीट है, तो इसका कोई फायदा नहीं होता है।

आईई 6 के लिए आईएमओ "* एचटीएमएल" एकमात्र हैक है जो आज भी उपयोग करने के लिए वैध है। आईई 5 के साथ सभी बॉक्स मॉडल सामान मर गए हैं - मानते हैं कि आप आईई 6 क्विर्क मोड का उपयोग नहीं कर रहे हैं, जो आपको नहीं करना चाहिए - और अन्य ब्राउज़र, यहां तक ​​कि आईई 7, आमतौर पर एक साधारण हैक के साथ हमला करने में सक्षम होने के लिए बहुत अच्छे हैं; उन कुछ हैक्स जो उन्हें लक्षित कर सकते हैं वे वास्तव में उपयोग करने के लिए बहुत जटिल/नाजुक/अमान्य हैं।

(और सरलीकृत बॉक्स मॉडल हैक के आविष्कारक के रूप में, मैं उन्हें एक हार्दिक अच्छा छुटकारा कहते हैं।)

+0

हाहाहा, यह एक साफ चाल है, हालांकि हर बार जब मैं एक नया आईई हैक सीखता हूं, मुझे लगता है कि मेरे दिमाग में दर्द और ज्ञान के साथ एक ही समय में दर्द होता है। –

3

दुर्भाग्य से *html हैक अन्य स्टाइलशीट आयात करने के लिए उपयोग नहीं किया जा सकता है।

Here is an article यह बताते हुए कि हैक और अन्य जो आईई-विशिष्ट बग पर हमला करने के लिए उपयोगी हैं।

+0

स्पष्ट उत्तर के लिए धन्यवाद। दुर्भाग्यवश मैं आज वोटों से बाहर हूं :) – temoto

12

उस निराला हैक से परेशान क्यों हो जब आप सशर्त टिप्पणियों का उपयोग कर सकते हैं जिसमें केवल आपको आवश्यक सीएसएस शामिल किया जा सके?

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

कुछ संसाधन:

तुम सच में @import का उपयोग करना चाहिए, तो आप इस तथ्य है कि IE के लिए चश्मा का पालन नहीं करता का लाभ ले सकते @import नियम। आमतौर पर स्टाइलशीट या स्टाइल टैग में यह पहला विचार होना चाहिए, या इसे पूरी तरह से अनदेखा किया जाना चाहिए। हालांकि, आईई 6 (कम से कम जब मैंने इसका परीक्षण किया) परवाह नहीं है। इसी तरह, आप यह कर सकते हैं:

<style type="text/css"> 
.NotARealClass { } 

@import url("ie-style.css"); 
</style> 

ध्यान दें कि मैं FF3 के अलावा कुछ भी और IE6 (जहां यह यानी-style.css लोड करने के लिए विफल रहता है) में यह परीक्षण नहीं किया (जहां यह यह वैसे भी लोड करता है)। आपकी माइलेज भिन्न हो सकती है।

+0

मुझे पता है, धन्यवाद। क्यूं कर? क्योंकि मैंने सोचा था कि सीएसएस के अंदर सीएसएस हैक रखने के लिए यह चालाक और अच्छा होगा। – temoto

+0

यह तरीका है कि यदि आपका सभी यानी 6-विशिष्ट सीएसएस एक अलग फ़ाइल में है। यदि आपके पास बहुत कम यानी 6-विशिष्ट सीएसएस है, तो आप अंडरस्कोर-हैक का उपयोग कर सकते हैं, उदाहरण के लिए। _width को i6 (लेकिन i7 नहीं) द्वारा चौड़ाई के रूप में व्याख्या किया जाता है, जो मान्य नहीं होगा .. – svinto

+0

सशर्त टिप्पणियां एक ब्राउज़र के विस्तारित फीचर सेट का लाभ लेने के रूप में एक हैक नहीं है। चयनकर्ता हैक सबसे निश्चित रूप से हैं। –

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