根据其值更改<select>的颜色 - 仅限CSS(?)</select>

时间:2015-02-07 22:11:54

标签: javascript html css

我有一个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,我无法考虑任何其他方式。有人可以建议吗?

2 个答案:

答案 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>

http://codepen.io/anon/pen/yyPKoM