You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSS隐藏不含未禁用option元素的optgroup标签

隐藏无可用选项的optgroup标签

我想要隐藏不包含任何可选中option元素的optgroup标签。比如下面的示例里,第一个optgroup应该显示,第二个需要隐藏。

示例代码

CSS

optgroup {
    display: none;
}
optgroup:has(option:not(:disabled)) {
    display: unset;
}

HTML

<select id="location" name="location">
    <option value="" selected="">Standort wählen</option>
    <optgroup label="Kanton Luzern">
        <option value="buttisholz">Buttisholz</option>
        <option value="littau" disabled="">Littau</option>
        <option value="luzern">Luzern</option>
        <option value="malters" disabled="">Malters</option>
        <option value="schuepfheim">Schüpfheim</option>
    </optgroup>
    <optgroup label="Kanton Schaffhausen">
        <option value="schaffhausen" disabled="">Schaffhausen</option>
    </optgroup>
</select>

我已经想出一个在Chrome中测试有效的方案,但希望能用单条语句实现:

optgroup {
  display: none;
}
optgroup:has(option:not(:disabled)) {
  display: unset;
}

我试过下面的写法,但没用,因为:enabled伪选择器只适用于input、select和textarea元素:

optgroup:not(option:enabled) {
  display: none;
}

内容的提问来源于stack exchange,提问作者flip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 10:17:56