CSS:
button:active {
/* active css */
}
button:disabled {
opacity: 0.5;
}
HTML:
<button disabled="disabled">Ok</button>
当我点击按钮时,浏览器会添加按钮:活动状态使其看起来像被点击(即使它被禁用)。我发誓,我想:只有在按钮启用时才会添加活动状态。我错过了什么?
答案 0 :(得分:30)
据我所知,:active
不排除:disabled
元素。如果您愿意,可以阅读spec。
要解决您的问题,您可以通过仅使用:disabled
选择器定位:enabled
元素来排除:active
元素:
button:enabled:active {
/* active css */
}
button:disabled {
opacity: 0.5;
}
答案 1 :(得分:4)
According to the CSS3 specification(:disabled
不在CSS2.1中)没有提到:active
和:disabled
是互斥的。规范的这一部分可能需要澄清,因此UA可以自由地组合使用伪类。
我建议你修改你的选择器更明确:
button:enabled:active {
/* active css */
}
button:disabled {
opacity: 0.5;
}
答案 2 :(得分:0)
你也可以使用:not() - css的描述符:
button:active:not(:disabled) {
/* active css */
}
button:disabled {
opacity: 0.5;
}
希望你们都是最好的,Patric