html - 选择一个元素而不选择后代
问题描述
我使用 CSS Modules 为我的标签生成随机类名。如何在不选择后代的情况下选择特定类型的元素?到目前为止,我已经尝试使用选择器:first-of-type
,:first-child
就像这样:
.settings ul:first-of-type > i:first-child {
opacity: 0.5;
}
但结果是我的规则适用<i>
于我页面上的每个元素。
HTML:
<div class="settings">
<ul>
<li>
<i>Select this element</i>
<ul>
<li>
<i>but not this one</i>
<span></span>
</li>
<li>
<i>or not this one</i>
<span></span>
</li>
</ul>
</li>
</ul>
</div>
解决方案
使用 CSS 子组合器>
:
.settings > ul > li > i {
opacity: 0.5;
}
<div class="settings">
<ul>
<li>
<i>Select this element</i>
<ul>
<li>
<i>but not this one</i>
<span></span>
</li>
<li>
<i>or not this one</i>
<span></span>
</li>
</ul>
</li>
</ul>
</div>
子组合器 (
>
) 放置在两个 CSS 选择器之间。它只匹配第二个选择器匹配的那些元素,这些元素是第一个选择器匹配的元素的直接子元素。
推荐阅读
- python - Django 命中计数 ImportError
- rust - 用特征别名替换特征绑定表示“在编译时无法知道值的大小”
- android - 使用 C++ 锁定 Android 设备
- angular - 如何使用 Angular 6 在单个组件中渲染多个 ag-grid
- python - 在 sqlite3 中选择小于/高于
- python-3.x - 无法找到正确的元素文本
- asp.net-mvc - 如何从 WebAPI 控制器中使用程序集
- mongodb - 查询和排序集合 MongoDB Stitch
- c - 将双精度传递给 void * 参数的方法
- sql - 如何在postgres中删除特定模式中的每个表?