【发布时间】:2023-04-02 04:38:01
【问题描述】:
如何使用 CSS 选择器将样式仅应用于列表中的内部项目。示例:
HTML 片段:
<ul class="list">
<li>Item 1</li>
<li>
<ul class="list">
<li>Subitem 1</li>
<li>Subitem 2</li>
<li>
<ul class="list">
<li>Subitem 1.1</li>
</ul>
</li>
</ul>
</li>
</ul>
CSS 片段:
ul.list {
border: 1px solid red;
}
我需要的是在“Subitem 1.1”字符串周围有一个 only 边框。列表已生成,无法添加额外的类或 id,并且由于列表没有固定深度,因此不能指定“ul > ul > ul.list”或类似选择器。
【问题讨论】:
-
子项 1 与子项 1.1 有何区别?既然深度不固定,你怎么知道哪个项目需要应用 CSS?
-
如果你应用一个额外的类,CSS 有父组合器/伪类或第 n 级后代伪类,或者
:not()支持的不仅仅是简单的选择器,这将非常容易。 -
如果列表没有固定深度,是否要选择树中最后一个
ul?例如它可以很容易地达到 1 级或 4 级? -
问题在于这些列表是由 PHP 生成的,而 JS 不是一个选项,因为要求说它必须在禁用脚本的情况下也能工作。最后一个选项是修改 PHP 函数(非常丑陋的任务)或使用 JS。无论如何谢谢
标签: html css css-selectors