Firefox 中 :has 的解决方法(不使用 JavaScript)[已关闭]

Workaround for :has in Firefox (not using JavaScript) [closed]

提问人:abberto 提问时间:10/10/2023 最后编辑:Stephen Ostermillerabberto 更新时间:10/16/2023 访问量:132

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

上个月关闭。

我正在为我的一个朋友开发一个小网站,并且正在使用伪类。但是,我知道Firefox不支持(除非有人打开了标志),那么有解决方法吗?:has

从本质上讲,我正在编写一个汉堡菜单,但供没有 JavaScript 的人使用(80% 的目标受众禁用 JavaScript - 长话短说),我不想使用 span。在观看了 Web Dev Simplified 的视频后,我看到了它的用法,但是,如果没有可用的伪类,我有点卡住了。input["checkbox"]:has

我尝试只使用类似的东西来调整顶部栏和底部(点击时旋转),但这惨遭失败!input:checked::beforeinput:checked::after

CSS Firefox 伪类

评论

1赞 Mister Jojo 10/10/2023
::before或者元素不能用于 替换的元素 阅读文档!developer.mozilla.org/en-US/docs/Web/CSS/::after::after

答:

5赞 David Teo 10/10/2023 #1

Firefox 目前不支持伪类。 在这种情况下,您可以尝试使用同级选择器,例如 或 。:has+~

例如:

HTML :

<input type="checkbox" id="menu-toggle">
<label for="menu-toggle">&#9776;</label>
<nav id="menu">
   // menu items
</nav>

CSS :

#menu {
  display: none;
}

#menu-toggle:checked + label + #menu {
  display: block; /* Can show menus if checkbox is checked */
}

您可以根据自己的特定设计和要求构建 CSS 文件。