在CSS選擇器中,在最基本的標簽選擇器(div,P等)和屬性選擇器([],.class,#id)之外,稍微有點難度的就是位置選擇器:所謂位置選擇器就是根據(jù)已經(jīng)明確的選擇內(nèi)容通過一定的表示方法,選擇出其子代,后代,兄弟或后面的同級元素,以此來添加相應(yīng)顯示屬性.
基于上述要求,位置選擇器首先要有一個明確的參照元素,這個元素用基本的標簽或?qū)傩赃x擇器明確后,再添加對應(yīng)的位置選擇符號,來達到選擇相應(yīng)元素的目的
我們網(wǎng)頁原始結(jié)構(gòu)如下:
<body>
<ul class="list">
<li class="item">item1</li>
<li class="item">item2</li>
<li class="item">item3</li>
<ul>
<li class="item">item3-1</li>
<li class="item">item3-2</li>
</ul>
<li class="item four">item4</li>
<li class="item">item5</li>
<ul>
<li class="item">item5-1</li>
<li class="item">item5-2</li>
</ul>
<li class="item">item6</li>
<ul>
<li class="item6">item6-1</li>
<li class="item6">item6-2</li>
<ul>
<li class="item6-2">item6-2-1</li>
<li class="item6-2">item6-2-2</li>
</ul>
<li class="item6">item6-3</li>
</ul>
<li class="item">item7</li>
<li class="item eight">item8</li>
</ul>
<ul>
<li class="newitem">newitem-1</li>
<li class="newitem">newitem-2</li>
</ul>
</body>
.list > .item{
color: red;
}
.list .item{
color: red;
}
特殊備注說明,子代的樣式如果用”星星號”替代后,則同后代的意思一樣,也即上面的代碼等同于下面的代碼:
.list > .*{
color: red;
}
/* 可以讓item4之后的item5生效 */
.list > .item.four + .item{
border: 1px solid red;
}
/* 無法讓item8之后的newitem-1生效 */
.list > .item.eight + * {
border: 1px solid blue;
background-color: black;
}
/* 上述代碼中,我們常常用+*來代替下一個元素的類,在這個類型中,*無法包含到后代*/
/* 可以讓item4之后的item5-8生效 */
.list > .item.four ~ .item {
border: 1px solid red;
}
/* 可以讓item4之后的item5-8生效,同時對中間間插的ul生效 */
.list > .item.four ~*{
border: 1px solid red;
}
/* 可以讓item4之后的item5-8生效,同時item5-8的所的后
效 */
.list > .item.four ~* *{
border: 1px solid red;
}
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號