जवाबों:
.button:active:hover:not([disabled]) {
/*your styles*/
}
आप यह कोशिश कर सकते हैं ..
सीएसएस में विशेषता "अक्षम" का उपयोग क्यों नहीं किया गया। यह सभी ब्राउज़रों पर काम करना चाहिए।
button[disabled]:hover {
background: red;
}
button:hover {
background: lime;
}
.button[disabled], .button[disabled]:hover, .button[disabled]:focus, .button[disabled]:active {}
सबसे आधुनिक ब्राउज़र (IE11 + और कुछ मोबाइल ओपेरा और IE ब्राउज़र को छोड़कर - http://caniuse.com/#feat=pointer-events ) में काम करने वाली एक निचली-विशिष्टता दृष्टिकोण :
.btn {
/* base styles */
}
.btn[disabled]
opacity: 0.4;
cursor: default;
pointer-events: none;
}
.btn:hover {
color: red;
}
pointer-events: noneनियम मंडराना को निष्क्रिय कर देगा; .btn[disabled]:hoverहोवर शैली को कम करने के लिए आपको चयनकर्ता के साथ विशिष्टता बढ़ाने की आवश्यकता नहीं होगी ।
(FYI करें, यह साधारण HTML पॉइंटर-ईवेंट है, न कि विवादास्पद अमूर्त-इनपुट-डिवाइस पॉइंटर-ईवेंट)
Sass (scss) में:
button {
color: white;
cursor: pointer;
border-radius: 4px;
&:disabled{
opacity: 0.4;
&:hover{
opacity: 0.4; //this is what you want
}
}
&:hover{
opacity: 0.9;
}
}
यदि आप उपयोग कर रहे हैं LESSया Sass, आप यह कोशिश कर सकते हैं:
.btn {
&[disabled] {
opacity: 0.6;
}
&:hover, &:active {
&:not([disabled]) {
background-color: darken($orange, 15);
}
}
}
एक तरीका यह है कि बटन को अक्षम करने और css में उस वर्ग के लिए होवर और सक्रिय राज्यों को ओवरराइड करते समय एक पक्षीय वर्ग जोड़ा जाए। या उस वर्ग पर होवर और सक्रिय छद्म गुणों को अक्षम करने और निर्दिष्ट करने के लिए एक वर्ग को हटाने पर केवल सीएसएस में। किसी भी तरह से, यह संभवत: शुद्ध रूप से सीएसएस के साथ नहीं किया जा सकता है, आपको थोड़ा सा js उपयोग करने की आवश्यकता होगी।
:not()चयनकर्ता भी है , लेकिन फिर, यह केवल IE9 के बाद से ही समर्थित है। देखें: developer.mozilla.org/en-US/docs/Web/CSS/:not