[英]How to select the first level of children (li) from ul
給定以下結構,我想從列表(ul)中選擇第一級子(li),而不是嵌套列表。
ul.list > li { background-color: red; }
<ul id="list" class="list"> <li>first level</li> <li>first level</li> <li> <h1></h1> <div> <ul> <li>second level</li> <li>second level</li> </ul> </div> </li> <li></li> </ul>
( JSFiddle )
但是這也選擇了div中的項目(li)。
我想只使用一個 css RULE來選擇第一級孩子(li)。 怎么樣?
CSS
ul li div ul li {
/* Your styles here to override parent (if they are over 70% the same) */
}
你需要確定你的第一個ul:
<ul class="my-list">
<li></li>
<li></li>
<li>
<h1></h1>
<div>
<ul>
<li></li>
<li></li>
</ul>
</div>
</li>
<li></li>
</ul>
然后用ul.my-list>li
選擇它
您可以向<li>
添加一個包含二級內容的類,然后使用:not
pseudo-class將它們從主CSS查詢中排除
ul.list > li:not(.level2) { background-color: red; }
<ul class="list"> <li>first level</li> <li>first level</li> <li class="level2"> first level with nested content <h1>some title</h1> <div> <ul> <li>second level</li> <li>second level</li> </ul> </div> </li> <li>first level</li> </ul>
你有什么工作,你只需要樣式內li
太,因為默認情況下他們的背景是透明的。
但請注意,默認情況下會繼承某些屬性,並且內部li
會拾取這些屬性,並且需要將其設置為顯式,如字體顏色。
ul.list > li li { background-color: black; } ul.list > li { background-color: red; color: blue; } ul.list2 > li li { background-color: black; color: yellow; } ul.list2 > li { background-color: red; color: blue; }
<div>Sample 1</div> <ul id="list" class="list"> <li>first level</li> <li>first level</li> <li> <h1></h1> <div> <ul> <li>second level</li> <li>second level</li> </ul> </div> </li> <li></li> </ul> <hr> <div>Sample 2</div> <ul id="list2" class="list2"> <li>first level</li> <li>first level</li> <li> <h1></h1> <div> <ul> <li>second level</li> <li>second level</li> </ul> </div> </li> <li></li> </ul>
在你的情況下,問題是background-color
,顏色僅適用於.list>li
但兒童顯示父母的背景。
要分離顏色,你需要添加元素(例如div
或span
)
.list>li>span{ background-color: red; }
<ul id="list" class="list"> <li><span>first level</span></li> <li><span>first level</span></li> <li> <h1></h1> <div> <ul> <li>second level</li> <li>second level</li> </ul> </div> </li> <li></li> </ul>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.