Inq*_*ive 37 css css-selectors
ul > li > a {...}和ul li a {...}CSS有什么区别?zzz*_*Bov 56
" >"是子选择器
" " is the descendant selector
The difference is that a descendant can be a child of the element, or a child of a child of the element or a child of a child of a child ad inifinitum.
A child element is simply one that is directly contained within the parent element:
<foo> <!-- parent -->
<bar> <!-- child of foo, descendant of foo -->
<baz> <!-- descendant of foo -->
</baz>
</bar>
</foo>
Run Code Online (Sandbox Code Playgroud)
for this example, foo *将匹配<bar>和<baz>,而foo > *只会匹配<bar>.
至于你的第二个问题:
哪一个更有效率,为什么?
我实际上不会回答这个问题,因为它与开发完全无关.CSS渲染引擎非常快,几乎从来没有理由优化CSS选择器,除了使它们尽可能短.
而不是担心微观优化,而是专注于编写对手头案例有意义的选择器.>在设计嵌套列表时,我经常使用选择器,因为区分列表的哪个级别是很重要的.
*如果它真的是渲染页面的问题,你可能在页面上有太多的元素,或者太多的CSS.然后你必须运行一些测试来看看实际问题是什么.
Bil*_*oon 13
ul>li选择所有li直接子项ul,然后ul li选择所有li位于其中的任何位置(根据您的喜好下降)aul
对于HTML:
<ul>
<li><span><a href='#'>Something</a></span></li>
<li><a href='#'>or Other</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
和CSS:
li a{ color: green; }
li>a{ color: red; }
Run Code Online (Sandbox Code Playgroud)
颜色Something将保持绿色,但or Other将是红色
第2部分,你应该编写适合这种情况的规则,我认为速度差异会非常小,并且可能因编写更多代码所涉及的额外字符而蒙上阴影,并且肯定会被开发人员思考的时间所掩盖.关于它.
但是,根据经验,你的规则越具体,CSS引擎就越能找到你想要应用它的DOM元素,所以我期望li>a比li a早期的DOM搜索更快.这也意味着嵌套的锚没有使用该规则设置样式,这是你想要的吗?<~~更多相关的问题.
ul > li > a只选择直接的孩子.在这种情况下,只有第一电平<a>的第一电平的<li>内部<ul>将被选中.
ul li a另一方面,将在无序列表中选择ALL <a>-s中的ALL <li>-s
例子 ul > li
ul > li.bg {
background: red;
}Run Code Online (Sandbox Code Playgroud)
<ul>
<li class="bg">affected</li>
<li class="bg">affected</li>
<li>
<ol>
<li class="bg">NOT affected</li>
<li class="bg">NOT affected</li>
</ol>
</li>
</ul>Run Code Online (Sandbox Code Playgroud)
如果你正在使用ul li- 所有的li-s都会受到影响
更新因此,更高效的CSS选择器的顺序如下:
#header.promo divh2 + pli > ulul a*[type="text"]a:hover所以你最好的选择是使用children选择器而不仅仅是descendant.但是,常规页面上的差异(没有数万个元素可以通过)可能完全可以忽略不计.
| 归档时间: |
|
| 查看次数: |
111031 次 |
| 最近记录: |