国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

css :nth-child與:nth-of-type之小解

2024-07-11 08:34:42
字體:
來源:轉載
供稿:網友

讓我們看下面一段html:


<section>
<p>Little</p>
<p>Piggy</p> <!– 定位此元素–>
</section>

下面的2種寫法都可以達到目的


p:nth-child(2) { color: red;}
p:nth-of-type(2) { color: red;}

但兩者是存在差異的
:nth-child 選擇器,在此例子中意思就是指
1.首先是個p元素
2.其次這個p元素是其父元素的第二個孩子
:nth-of-type 選擇器,在此例子中意思就是指
1.定位一個父元素下的第二個p元素
:nth-of-type 可能更符合我們日常的思維方式
讓我們改變下html:


<section>
<h1>Words</h1>
<p>Little</p>
<p>Piggy</p> <!– 定位此元素 –>
</section>

同樣用之前的2種方法:


p:nth-child(2) { color: red; } /* 無法正確定位 */
p:nth-of-type(2) { color: red; } /* 依然有效 */

按照之前的解釋簡單分析下:
:nth-child 選擇器
首先是個p元素,沒有問題,但是其父元素的第二個孩子是<p>Little</p>,所以沒有正確定位
:nth-of-type 選擇器
父元素下的第二個p元素,正是我們想要的結果
再進一步,如果我在 h1之后加入一個h2,在這個例子中:nth-child選擇器則無法定位任何元素,因為父元素的第二個元素是 h2,而不是p元素。相對的, :nth-of-type依然有效。
我個人覺得:nth-of-type更健壯些,盡管:nth-child貌似用的更多些。 而且大部分時候,我們的想法都可能會是“定位一個父元素下的第二個p元素”, 而不是“定位一個父元素下的第二個元素,如果它是個p元素的話”。
我遇到的大多數“我自問:為什么這個:nth-child選擇器不起作用”的時候,基本都是 因為我給:nth-child選擇器前置了一個標簽,但是那個孩子節點并不是那個標簽。 所以當我用:nth-child的時候,我覺得最好只指定父元素,:nth-child不要前置子元素標簽。
像下面這樣:


dl :nth-child(2) {} / * 這樣更好些 * /
dd:nth-child(2) {} / * 比這個 * /

當然,一切視具體情況而定。
目前Safari3.1+,IE9+,ff3.5+,Opera9.5+,Chrome2+ 都支持:nth-of-type選擇器。 如果你希望在較舊的瀏覽器中支持,可以考慮jQuery。 值得注意的是jQuery中:nth-child是按照標準來實現的,是從1開始計數,而jquery中得 :eq是從0開始。

當然,一切視具體情況而定。

目前Safari3.1+,IE9+,ff3.5+,Opera9.5+,Chrome2+ 都支持:nth-of-type選擇器。 如果你希望在較舊的瀏覽器中支持,可以考慮jQuery。 值得注意的是jQuery中:nth-child是按照標準來實現的,是從1開始計數,而jquery中得 :eq是從0開始。

這里還有個測試頁面, 可以幫助你更好地理解。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武汉市| 普兰店市| 忻城县| 江阴市| 花垣县| 阿尔山市| 罗平县| 苗栗市| 闵行区| 玉龙| 抚顺市| 井冈山市| 新昌县| 萝北县| 收藏| 仁布县| 东莞市| 黄骅市| 井冈山市| 山阴县| 德州市| 梅州市| 体育| 铁岭县| 赣榆县| 广饶县| 台前县| 来宾市| 盐亭县| 凤冈县| 江门市| 金川县| 富顺县| 顺昌县| 民和| 长泰县| 遵义县| 永胜县| 奉新县| 诸城市| 金坛市|