Bootstrap 3.3.7
我有一个<select>
元素,想要使用placeholder
属性。我read this isn't possible,它应该像disabled
这样的选项完成:
<select id="foo">
<option value="" disabled selected>Select your thing</option>
<option value="abc">abc</option>
<option value="def">def</option>
</select>
问题是,Bootstrap给它一个深灰色(#555
),因为它将其视为其他(非选择)文本输入中的文本。
Bootstrap中字体的占位符颜色为浅灰色(#999
)。我想让它匹配。
但是,我无法找到定位该选项的方法。我尝试了以下内容:
#foo option:disabled { color: #999; }
给第一个选项一个类,例如
<option value="" class="placeholder-dummy" disabled selected>Select your thing</option>
.placeholder-dummy { color: #999; }
我能以任何方式定位它的唯一方法就是使用这样的ID:
#foo { color: #999; }
但是......即使在用户更改选项后,它也会提供相同的浅灰色占位符颜色。
我希望“占位符”(“选择您的东西”)呈浅灰色(#999
),但当用户将其更改为任何其他选项时,对于那些根据其他输入采用深灰色的选项({ {1}})
这可能吗?
编辑更喜欢纯CSS解决方案,但因为这看起来不可能,JavaScript解决方案就可以了。
答案 0 :(得分:0)
您可以使用[disabled]
和:checked
选择器执行此操作。
此选择器会查找属性为options
的所有disabled
:
option[disabled] {
color: #555;
}
此选择器会查找当前所选的所有options
属性disabled
:
option[disabled]:checked {
color: #999;
}
答案 1 :(得分:-1)
示例:
在你的css中为select标签添加样式
<style>
select:invalid { color: gray; }
</style>
然后更改占位符选项标记,它应该是这样的:
<select id="foo">
<option value="" disabled selected hidden>Select your thing</option>
<option value="abc">abc</option>
<option value="def">def</option>
</select>
而不是:
<select id="foo">
<option value="" disabled selected>Select your thing</option>
<option value="abc">abc</option>
<option value="def">def</option>
</select>