用于 SELECT html 元素且未选择任何内容的 CSS 选择器

问题描述 投票:0回答:2

我知道我经常使用“选择”这个词...抱歉。

无论如何,我正在寻找一个 CSS 选择器,可以用来识别页面上尚未进行选择的 HTML Select 元素,以便我可以突出显示它们,让用户知道这些元素仍然需要完成。我确实有一个空选项作为选择中的第一个元素,所以如果这有帮助......请使用它。

到目前为止我的愚蠢尝试: 选择:空 选择[selectedIndex =“0”]

<select>
  <option value="" />
  <option value="real selection" />
<select>

所以本质上,我想找到所有未选择选项、选择的值为 0 或选择的索引为 0 的选择。(这些在我的场景中是等效的)。这样我就可以在屏幕上突出显示这些内容,让用户知道,“嘿,你还有更多工作要做。”

仅供参考:Psuedo 和 CSS3 选择器也适合这种情况。

html css css-selectors
2个回答
0
投票

这在 CSS 3 中是不可能的。

当支持选择器级别 4 时(假设该位不变),您可以 确定选择器的主题不是选择器中的最后一项,并且:

select {
    /* Default. Put non-selected styles here */
}

!select > option + option:checked {
    /* An option following another option (so not the first option) is selected */
}

如果要处理

optgroup
元素,则需要使选择器变得更复杂。


-1
投票

这里有两种不同的方法:

1/ 使用第一个子伪选择器:

option:first-child {
  /* style */
}

2/ 使用属性选择器:

option[value=""]{
      /* style */
    }

我个人会选择属性选择器,因为你永远不知道你的选项将来将如何排序。

© www.soinside.com 2019 - 2024. All rights reserved.