我想改变我的HTML页面的<main>
标签中的内容的外观时,在头导航输入框被选中。这个问题适用于我正在做的一个项目,但这里有一个简化的版本,显示了我的代码结构:
nav input:checked+main {
background-color: red;
}
<header>
<nav>
<input type="checkbox">
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
</nav>
</header>
<main>
Main page content
</main>
理想情况下,我也希望以<main>
标记之后的<footer>
为目标。我尝试了各种选择器组合,但主要内容的风格没有改变。请注意,理想情况下,我不想改变页面的结构。
2条答案
按热度按时间mwyxok5s1#
你不能做
nav input:checked+main
,因为main不是输入的兄弟(这是相邻的兄弟组合子+
检查的)。你可以尝试新的:has
伪类:其工作方式基本上是仅当条件是
:has(nav input:checked)
部分为真时才针对header + main
。nwo49xxi2#
添加到已接受的答案。对于旧的浏览器支持,你需要将你的input元素移到
header
元素之外,然后你可以在下面写css来实现这一点。浏览器支持has
here