<select> 元素的纯 CSS 样式,但仅在选择非默认选项时[重复]

Posted

技术标签:

【中文标题】<select> 元素的纯 CSS 样式,但仅在选择非默认选项时[重复]【英文标题】:Pure CSS styling of <select> element but only when non-default option is selected [duplicate] 【发布时间】:2020-05-29 23:18:38 【问题描述】:

是否可以有条件地设置以下&lt;select&gt; 元素的样式

<select>
  <option>one</option>
  <option selected>default</option>
  <option>two</option>
</select>

无论何时选择非默认选项,使用纯 CSS(无 javascript)?

如果有办法,我希望它使用pseudo-classes 的某种组合,类似于

select:some-pseudo-class  border: 1px; 

但可能更复杂。我已经浏览了list of pseudo-classes,这似乎是不可能的,但我想在完全放弃之前用群众的智慧来确认这一点。我也在这个网站上做了一些研究,从 2013 年开始遇到this question,这是一个更普遍的问题,其中(可能过时的)答案是“否”。我不相信我的问题与这个问题完全相同,因为我在问是否有可能出现特殊情况,并且我正在寻找截至 2020 年 2 月的最新答案。

【问题讨论】:

仅供参考,父选择器无法使用 css。您需要使用 javascript 或 jquery 【参考方案1】:

你可以试试伪类option:checked border: 1px;

【讨论】:

那不会只为选定的选项元素设置样式吗?我正在尝试设置选择元素(即父元素)的样式

以上是关于<select> 元素的纯 CSS 样式,但仅在选择非默认选项时[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何对 <select> 元素旁边的这个小按钮进行 CSS 处理? [复制]

谁能提供一段按钮切换窗口的纯CSS代码?

扩展选择(下拉)元素的 CSS 选择器

用于在 2 个动态调整大小时对齐 3 个元素的纯 HTML/CSS 解决方案?

移除 Mac OS 浏览器中 <select> 元素的默认圆形边框:Chrome

使用纯CSS,如何改变<option>元素选中状态的文字颜色