html - 样式无效 <select> 使用 :invalid

标签 html css google-chrome

我有一个 <select> :

select:invalid {
  color: red;
}
<select required>
  <option disabled selected>- please choose -</option>
  <option value="1">A</option>
  <option value="2">B</option>
</select>

不幸的是,禁用的选择没有标记为红色。

有什么想法吗?

这不是我喜欢设置样式的选项,我喜欢设置选择的样式!

最佳答案

您需要为第一个选项指定 value=""。如果没有 value="",选项的值隐式等于它的文本内容,这意味着它满足required 约束。

演示:

select:invalid { color: red; }
<select required>
  <option disabled value="" selected>- please choose -</option>
  <option value="1">A</option>
  <option value="2">B</option>
</select>

以上内容将使选择+所有选项变为红色,直到选择了一个值。

如果您希望选项始终为黑色,只需稍微扩展 CSS:

select:invalid { color: red; }
select option { color: black; }
<select required>
  <option disabled value="" selected>- please choose -</option>
  <option value="1">A</option>
  <option value="2">B</option>
</select>

关于html - 样式无效 <select> 使用 :invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49296598/

相关文章:

Javascript - 谷歌地图简单 map 不在网络服务器上呈现图 block - 在本地工作

jquery - Bootstrap 移动导航不起作用

javascript - 在 touchstart 上播放音频

html - 我怎样才能让两个 <div> 靠得更近?

html - float Div 在 Zoom 上突然出现

javascript - jQuery if 语句的问题

javascript - 仅在一个元素上显示微调器($.mobile.showPageLoadingMsg())?

css - CSS Sprite 菜单按钮与 CSS 之间的空间

html - firefox 3.6 中有什么变化使 <ul> 的呈现方式不同?

javascript - 如何记录文本在页面上的位置?