更改<选择>取决于它的值-仅CSS(?)
Changing the color of a <select> depending on its value - CSS only(?)
我有一个HTML选择元素,里面有一些选项:
<select class = "myRed" id="mySelect" onchange="onSelectChange()">
<option selected value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
当select对象的值为0时,我希望它的文本颜色为红色,否则为黑色。我可以通过JavaScript:做到这一点
function onSelectChange(){
if (document.getElementById('mySelect').value == 0){
document.getElementById('mySelect').className = 'myRed';
} else {
document.getElementById('mySelect').className = 'myBlack'
}
}
其中
.myRed{color:red;}
和
.myBlack{color:black;}
然而,有人告诉我,这在某种程度上只能通过CSS实现,而不需要使用JavaScript。除了使用JS,我想不出其他方法了。谁能给我个建议吗?
您可以使用required
并将空值分配给第一个选项:
<select class="mySelect" required>
<option value="">0</option>
<option value="1">1</option>
</select>
css:
.mySelect { font-size: 2em; }
.mySelect option { color: green; }
.mySelect option[value=""] { color: red; }
.mySelect:invalid { color: red; }
检查小提琴
如果你正在寻找简单的东西,你总是可以这样做:
.css
.myRed{color:red;}
.myBlack{color:black;}
.html
<select class = "myRed" id="mySelect">
<option selected value="0" class="myRed">0</option>
<option value="1" class="myBlack">1</option>
<option value="2" class="myBlack">2</option>
</select>
http://codepen.io/anon/pen/yyPKoM
相关文章:
- 为什么不'在JQuery中找到第二个css选择器的工作
- 使用javascript和css选择器获取value属性的内容
- casperjs-css选择器存在,但当单击它时会引发“”;CasperError:无法在不存在的选择器“”上调度mou
- CSS选择器与And操作组合'&&'
- 类选择不起作用的 css 选择器
- 如何使用javascript获取元素的css选择器
- 我们可以使用jquery删除css选择器吗
- CasperJS可以't使用CSS选择器或xPath查找元素
- Web Workers内部的CSS选择
- 如何使用javascript或css选择特定的图像
- While为List值在CSS选择器中循环迭代
- CSS选择器在Angular单元测试w/karma&柴
- casperJS CSS 选择器:waitFor 函数总是超时
- 选择一个 CSS 选择器来动态设置元素的样式 ::before
- 是否有根据特异性对 CSS 选择器文本进行排序的 JS 库
- CSS选择器代码,用于从棘手的网站抓取/解析数据
- CSS 选择器不起作用
- 当我们使用 CSS 选择器时,浏览器如何找到集合元素
- CSS 选择器从右到左进行评估.querySelectorAll() 选择器也会以这种方式进行评估吗?
- 为什么 CSS 选择器只设置第一个匹配 svg 路径的样式