我有一个HTML select元素,里面有一些选项:
<select class = "myRed" id="mySelect" onchange="onSelectChange()">
<option selected value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</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,我无法考虑任何其他方式。有人可以建议吗?
答案 0 :(得分:8)
您可以使用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; }
检查fiddle
答案 1 :(得分:0)
如果你正在寻找简单的东西,你可以这样做:
的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>