2012-09-25 13 views
12

सीएसएस:एचटीएमएल अक्षम बटन हो रही: सक्रिय सीएसएस छद्म वर्ग

button:active { 
/* active css */ 
} 

button:disabled { 
    opacity: 0.5; 
} 

HTML:

<button disabled="disabled">Ok</button> 

जब मैं बटन पर क्लिक करें ब्राउज़र बटन जोड़ता है: सक्रिय राज्य यह देखने के लिए की तरह क्लिक होने बनाने (भले ही यह अक्षम है)। मैं कसम खाता हूँ मैंने सोचा: सक्रिय किया गया था अगर बटन सक्षम किया गया था। मुझे क्या याद आया?

+0

किस ब्राउज़र में आपने इसका परीक्षण किया है? – Giona

+0

क्रोम v21 पर पुन: उत्पादित। –

+0

यहां एक परीक्षण पृष्ठ है: http://jsfiddle.net/Blender/LRvra/ – Blender

उत्तर

27

जो मैं बता सकता हूं, :active:disabled तत्वों को बाहर नहीं करता है। यदि आप चाहें तो spec पढ़ सकते हैं।

अपनी समस्या को हल करने के लिए, आप अपने :active चयनकर्ता के साथ ही :enabled तत्वों को लक्षित करके :disabled तत्वों को बाहर कर सकते:

button:enabled:active { 
/* active css */ 
} 

button:disabled { 
    opacity: 0.5; 
} 

डेमो: http://jsfiddle.net/Blender/LRvra/1/

+0

डांग; तुमने मुझे 5 सेकंड तक हराया। – Dai

+0

'अक्षम 'सीएसएस 2.1 spec में नहीं था। – BoltClock

+0

@ बोल्टक्लॉक: धन्यवाद, मैंने CSS3 spec के लिए एक लिंक शामिल किया है। – Blender

4

According to the CSS3 specification (:disabled CSS2.1 में नहीं है) इसमें कोई उल्लेख नहीं है कि :active और :disabled पारस्परिक रूप से अनन्य हैं। यह संभव है कि विनिर्देश के इस हिस्से को स्पष्टीकरण की आवश्यकता है ताकि UAs छद्म-वर्ग संयोजन में लागू हो सकें।

मैं सुझाव है कि आप अधिक स्पष्ट होना करने के लिए अपने चयनकर्ताओं को संशोधित:

button:enabled:active { 
    /* active css */ 
} 
button:disabled { 
    opacity: 0.5; 
} 
0

तुम भी इस्तेमाल कर सकते हैं: नहीं() - सीएसएस के वर्णनकर्ता:

button:active:not(:disabled) { 
/* active css */ 
} 

button:disabled { 
    opacity: 0.5; 
} 

तुम सब लोग सबसे अच्छा चाहते हैं, पेट्रिक

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