14

परियोजनाओं जो मैं का उपयोग करता है काम कर रहा हूँ सीएसएस "विशेषता" चयनकर्ता [att]वैकल्पिक हल के लिए: IE6 का समर्थन नहीं करता सीएसएस "विशेषता" चयनकर्ताओं

CSS Selectors

जो IE6 द्वारा समर्थित नहीं है में से एक: Support for CSS selectors in IE6 (टेक्स्ट "विशेषता चयनकर्ता" के लिए देखें)

क्या कोई समस्या है/हैक जो इस समस्या को दूर करने के लिए निश्चित रूप से वैध एचटीएमएल/सीएसएस है?

  • वर्ग चयनकर्ताओं
  • आईडी चयनकर्ताओं
  • (स्थान) वंशज चयनकर्ताओं
  • एक: -only छद्म चयनकर्ताओं

अपने ही

उत्तर

20

IE6 के बाद से अनिवार्य रूप से करने के लिए सीमित है विकल्प हैं:

  • उपयोग अधिक कक्षाएं अपने तत्वों की पहचान करने के
  • उपयोग जावास्क्रिप्ट (दृढ़ता से अति विशिष्ट मामलों को छोड़कर अनुशंसित नहीं) मैं इसे एक करने के लिए कई वर्गों आवंटित करने की क्षमता का लाभ लेने के लिए बहुत उपयोगी पाते हैं

उन्हें एक स्थान से अलग करके तत्व: class="foo bar"

+0

वैध एचटीएमएल? – Ngm

+1

@ngm no, डुप्लिकेट विशेषता विनिर्देशों की अनुमति नहीं है –

+2

@ngm आप कक्षा = "foo bar" – Dels

2

कक्षाओं का उपयोग करें, यह दुखद बात है।

+0

<इनपुट प्रकार = "बटन" वर्ग = "foo" वर्ग = "बार" /> मान्य HTML है? – Ngm

+0

कक्षा = "बटन बार" का उपयोग –

+0

@ngm आप कक्षा = "foo bar" – Dels

26

दुखद रूप से अपर्याप्त वर्ग चयनकर्ताओं के ढेर के साथ अपने HTML को मिर्च किए बिना यह संभव नहीं है।

मैं आपकी साइट को डिज़ाइन करने की अनुशंसा करता हूं ताकि आपका पूरी तरह से वैध सीएसएस आधुनिक ब्राउज़र का उपयोग करने वाले लोगों के लिए काम करे, और यह अभी भी आईई 6 में प्रयोग योग्य नहीं है, यद्यपि यह बिल्कुल सही नहीं है। आपको बस अपनी साइट को मानक तक पहुंचने और अपग्रेड नहीं करने वाले उपयोगकर्ताओं के पीछे पीछे झुकने के बीच सही संतुलन प्राप्त करना होगा। यह एक टूटा ब्राउज़र है, इसे इस तरह से इलाज करें। आप IE6 में चयनकर्ता विशेषता चाहते हैं

+4

इस उत्तर की तरह +1 – alex

+1

हाँ यह तरीका है आगे। डेवलपर्स को आईई 6 में चीजों को पिक्सेल-परिपूर्ण बनाने की कोशिश करना बंद करना पड़ा है। उदाहरण के लिए मैंने पहले कॉलम पर बाएं मार्जिन को हटाने के लिए पहले-बच्चे छद्म चयनकर्ता का उपयोग करके कुछ कॉलम सेट अप किए हैं। आईई 6 के लिए मैंने मार्जिन को छोटा कर दिया ताकि यह गड़बड़ न हो। – DisgruntledGoat

+1

सीएसएस अभिव्यक्तियों के साथ यह संभव है। Http://stackoverflow.com/q/8231617/143739 – kzh

8

प्रदान करता है, आप डीन एडवर्ड IE.js. उपयोग कर सकते हैं http://dean.edwards.name/IE7/

कि आईई कर देगा और अधिक IE7

तरह
 
supports the following CSS selectors: 
parent > child 
adjacent + sibling 
adjacent ~ sibling 
[attr], [attr="value"], [attr~="value"] etc 
.multiple.classes (fixes bug) 
:hover, :active, :focus (for all elements) 
:first-child, :last-child, only-child, nth-child, nth-last-child 
:checked, :disabled, :enabled 
:empty, :contains(), :not() 
:before/:after/content: 
:lang() 

मैं IE6 (IE7 का उपयोग करें) नहीं था तो मैं नहीं कहा जा सकता है यह काम व्यवहार करते हैं 5 +, लेकिन यह एक कोशिश

देना
+4

यह एक अच्छा विकल्प है लेकिन जागरूक रहें, (और यह अनुभव से नहीं है लेकिन कोड को देखने और यह कैसे लागू करता है) कि आपके सीएसएस नियम नहीं होंगे जेएस के माध्यम से होने वाले तत्वों में गतिशील परिवर्तनों के लिए स्वचालित रूप से "लागू करें" - कक्षाएं, तत्व इत्यादि जोड़ना मूल सीएसएस नियम नहीं मिलेगा। अभिव्यक्ति() कथन के लिए – Nicole

0

यदि आप अपनी साइट पर jQuery का उपयोग कर रहे हैं, तो दूसरा विकल्प SuperSelectors है - यह आपकी साइट की स्टाइलशीट्स के माध्यम से चलाता है, गतिशील रूप से तत्वों को कक्षाएं जोड़ता है ताकि आईई 6 भी ul li:first-child li:nth-child(odd) a:hover जैसे सीएसएस चयनकर्ताओं को सही ढंग से समर्थन देने की चमक में जा सके।

6

आप Internet Explorer सीएसएस सुरक्षित अंडरस्कोर के साथ संयुक्त भाव ("_", IE6 और पुराने) सीएसएस हैक का उपयोग कर सकते हैं:

/* Adds dotted bottom border to `<ABBR>` with a `title` attribute. */ 
abbr { 
     _border-bottom: expression(this.title ? '1px dotted' : 'none'); 
} 

abbr[title] { 
     border-bottom: 1px dotted; 
} 

मुझे समझ नहीं, जिसे आप "वैध" सीएसएस के लिए पूछना था, लेकिन यदि सीएसएस हैक ऊपर आपको फिक्र करता है, तो कृपया Safe CSS Hacks पढ़ें।

ऊपर करने के लिए बदला जा सकता है:

.ie6 abbr { 
     _border-bottom: expression(this.title ? '1px dotted' : 'none'); 
} 

abbr[title] { 
     border-bottom: 1px dotted; 
} 

है कि अगर अपने HTML शुरू किया:

<!--[if lt IE 7]><html class="ie6"><![endif]--> 
<!--[if IE 7]> <html class="ie7"><![endif]--> 
<!--[if IE 8]> <html class="ie8"><![endif]--> 
<!--[if gt IE 8]><!--><html><!--<![endif]--> 
+0

+1। मैं वेबसाइटों का निर्माण कर रहा हूं और 12 साल तक सीएसएस तैयार कर रहा हूं और यह मेरी जिंदगी में पहली बार यह विचित्र ठंडा लग रहा है! –

+1

यह आईई 8 में काम नहीं करता है। अंततः सुरक्षा मुद्दों के कारण इसे बाहर निकाला, लेकिन यह आईई 7 में काम करता है। आईई में सीएसएस में "व्यवहार" नामक एक चीज़ भी है। – kzh

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