作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
直到今天我还以为我了解 CSS。为什么下面的 CSS 样式会产生这样的结果?
样式表:
li.item a:first-child {color: red}
HTML 列表:
<ul class="mylist">
<li class="item"><a href="#">item 1</a>
<ul>
<li class"child"><a href="#">child item 1</li>
<li class="child"><a href="#">child item 1</li>
</ul>
</li>
</ul>
这使得前两个为红色。 <a>
在 <li class="child">
内不是 a:first-child
在 <li class="item">
内,怎么还是红色的?仅针对第一个 <a>
的替代方法是什么?在 <li class="item">
内不改变 HTML?
我怎样才能只定位 li.item 中的第一个?
最佳答案
那是因为您正在为所有 a:first-child
元素设置样式,其中包括嵌套在下方的元素。
如果您只想要顶级元素,请改为执行此操作:
li.item > a {color: red}
>
表示紧接在 li.item
标签内的 a
标签。
关于CSS 嵌套给出了意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22027136/
我是一名优秀的程序员,十分优秀!