如果我想格式化具有给定类的元素,有时(非常罕见)我使用:
.beigeButton[class~="enabledButton"] {
}
如果我只想在不包含给定字符串的情况下为元素赋予属性,该怎么办? 这不起作用:
.beigeButton[class!="enabledButton"] {
}
我该怎么做?
答案 0 :(得分:2)
使用:not
:
.beigeButton:not(.enabledButton)
答案 1 :(得分:0)
一般情况下,你会设置基本按钮的样式并用其他类覆盖样式,不管怎么样:
.beigeButton {
background-color: beige;
cursor: pointer;
}
.beigeButton.disabled {
background-color: grey;
cursor: not-allowed;
}
.beigeButton.enabled {
background-color: green; //or just keep the basic color
}
您还可以定义一个更为通用的“禁用课程”。可以通过这种方式应用于任何其他元素:
.disabled {
background-color: red;
pointer: not-allowed;
}
按下课程'禁用'将获得灰色背景,但规则.beigeButton.disabled
更具体地作为一般.disabled
规则。
任何其他元素(或者如果更具体的规则不存在或适用)将获得红色背景颜色。
编辑: 要回答您的初始问题,您也可以反过来调整样式,例如marcinjuraszek已经描述过:
.beigeButton:not(.enabled) {
background-color: grey;
cursor: not-allowed;
}
注意:请检查浏览器兼容性here
希望这会有所帮助:)