亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

詳解CSS選擇符之子代選擇符

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

后代選擇符用于選取一個標簽的所有后代,包括子代和孫輩等;而子代選擇符只選取指定父輩的子代標簽(指定標簽元素的第一代子元素)。

子代選擇符使用一個額外的符號(尖括號> )表明兩個元素之間的關系。

例如:body>h1 選取的是<body>標簽里的所有第一代<h1>標簽。

HTML標簽的關系圖

HTML代碼

 

<h1>body里面的h1標題</h1><div>    <h2>div里面的h2</h2>    <p>        div里面的p標簽,p標簽里面有一個<strong><a href="#">加粗的鏈接</a></strong>    </p></div><h2>body里面的h2標題</h2><ul>    <li>列表1        <ul>            <li>小列表a</li>            <li>小列表b</li>            <li>小列表c</li>        </ul>    </li>    <li>        <a href="#">列表2(帶鏈接)</a>    </li>    <li>        <a href="#">列表3(帶鏈接)</a>    </li></ul>

弄懂上面的結構之后,可以試試下面代碼:

CSS代碼

body>h2 {    color: orange;}

上面HTML代碼里面,一共有2個<h2>標簽,但<body>只有一個子代的<h2>,另一個<h2>是在<div>里面的,所以上面的CSS代碼只作用在第一個<h2>標簽。

下面是比較好玩的子選擇符

:first-child

選取第一個子標簽。

CSS代碼

h2:first-child {    color: orange;}

這個選擇符的作用是:先找到網頁中所有<h2>標簽,通過<h2>標簽找到其父元素,再判斷<h2>標簽在其父元素中是否排第一個。

這里因為<body>的第一個標簽是<h1>,所以<body>的子元素<h2>沒被樣式作用到。

因為<div>里的<h2>是<div>的第一個子元素,所以<div>里的<h2>變成了橙色字。

:last-child

這個選擇符與 :first-child 選擇符的作用類似,不過選取的是一個元素的最后一個子代。

CSS代碼

li:last-child {    font-size: 2em;}

可以看到,“小列表C”和“列表3(帶鏈接)”的字號變大了。因為這兩項都是被指定的最后一項。

:only-child

選取某個元素唯一的子代。

HTML代碼

<div>    <p>第一個div的p</p></div><div>    <p>第二個div的第一個p</p>    <a href="#">第二個div的第一個a</a></div>

CSS代碼

p:only-child {    color: orange;}

上述樣式只作用在第一個<div>的<p>元素。第二個<div>里因為不止<p>元素,還有<a>元素,所以第二個<div>的<p>元素不會被上述樣式影響。

這個選擇符比較難理解。僅當指定的標簽是另一個標簽的唯一子代時,這個選擇符定義的樣式才有效。也就是說,子代中只有一個指定的標簽還不行,如果指定的標簽有其他同輩標簽,這個選擇符定義的樣式就會失效。

:nth-child

這個選擇符用法比較復雜,不過也特別有用。

這個選擇符可以輕易地為表格中相隔的行、列表中相隔兩個項目的項目或相隔其他數目的子代元素定義樣式。

這個選擇符需要一個值,用于確定選取哪些子代。

其中最簡單的值是關鍵字,即odd和even。

  1. odd用于選取奇數子代元素。
  2. even用于選取偶數子代元素。

HTML代碼

<ul>    <li>1</li>    <li>2</li>    <li>3</li>    <li>4</li>    <li>5</li>    <li>6</li>    <li>7</li></ul>

CSS代碼

li:nth-child(odd) {    background: pink;}li:nth-child(even) {    background: teal;}

第一個子元素的下標是 1。

需要注意的是,如果在第一個<li>之前還有其他元素,那第一個<li>的下標就不是1了。
比如

HTML代碼

<ul>    <a href="#">a</a>    <li>1</li>    <li>2</li>    <li>3</li>    <li>4</li>    <li>5</li>    <li>6</li>    <li>7</li></ul>

這時的效果是

li:nth-child(odd) 的意思是找到<li>元素的父元素,通過父元素來檢測每一個<li>的下標的奇偶。

因為<ul>的第一個元素是<a>,第二個元素才是<li>。也就是說,第一個<li>的下標是2,所以第一個下標賦的樣式是綠色的背景。

使用上面的方法可以讓表格里的各行交替使用不同的樣式特別簡單。不過,:nth-child() 還有一些更妙更強大的用法。

可以給 :nth-child() 指定一個數字,精確選擇某個子代。比如說要讓第4個<li>的背景色改成橙色。

HTML代碼

<ul>    <li>1</li>    <li>2</li>    <li>3</li>    <li>4</li>    <li>5</li>    <li>6</li>    <li>7</li></ul>

CSS代碼

li:nth-child(4) {    background: orange;}

同樣的,這里的 li:nth-child(4) 的意思,是找到<li>標簽的父元素,然后查找父元素的第4個子元素。

如果HTML代碼是下面這樣,CSS代碼不變的情況下。

HTML代碼

<ul>    <a href="#">a</a>    <li>1</li>    <li>2</li>    <li>3</li>    <li>4</li>    <li>5</li>    <li>6</li>    <li>7</li></ul>

效果就會變成這樣:

會選中第3個<li>。因為第3個<li>在其父元素里面是排第4的。

如果想每隔2個項目選中第三個項目,可以在數字后面加上字母n。

HTML代碼

<ul>    <li>1</li>    <li>2</li>    <li>3</li>    <li>4</li>    <li>5</li>    <li>6</li>    <li>7</li>    <li>8</li>    <li>9</li>    <li>0</li></ul>

CSS代碼

li:nth-child(3n) {    background: orange;}

每當遇到3的整數倍的那個元素,就會應用規定的樣式。

如果想從第二個子代元素開始算起,選取每隔2個元素的第三個子代元素??梢栽?n后面加個2。

HTML代碼

<ul>    <li>1</li>    <li>2</li>    <li>3</li>    <li>4</li>    <li>5</li>    <li>6</li>    <li>7</li>    <li>8</li>    <li>9</li>    <li>0</li></ul>

CSS代碼

li:nth-child(3n+2) {    background: orange;}

 

如果想從第5個開始算起,每隔2個元素的第三個子代元素更改樣式。

CSS代碼

li:nth-child(3n+5) {    background: orange;}

如果想反向遍歷,n前面的倍數就要修改成負數。

CSS代碼

li:nth-child(-n+3) {    background: orange;}

意思是:從列表的第三個條目算起,選取在此之前的每個條目。

如果想從第4個元素開始,往下選取所有元素。可以這樣寫:

CSS代碼

li:nth-child(n+4) {    background: orange;}

以下是子代選擇符總覽表

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品电影在线观看| 久久久成人av| 成人福利免费观看| 插插插亚洲综合网| 97视频人免费观看| 国模精品视频一区二区| 欧美日韩第一视频| 欧美一区第一页| 91九色国产在线| 国产精品主播视频| 亚洲美女av在线| 日韩av电影手机在线| 亚洲人成电影在线| 亚洲精品视频在线观看视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 久精品免费视频| 亚洲图片在线综合| 97在线免费观看视频| 精品视频久久久久久久| 国内精品久久久久影院 日本资源| 欧美在线性视频| 欧美日韩国产一区在线| 国产在线视频91| 日韩视频免费大全中文字幕| 91wwwcom在线观看| 在线免费观看羞羞视频一区二区| 久久久久久美女| 国产精品久久久av| 亚洲色图狂野欧美| 日韩精品视频免费专区在线播放| 91久久夜色精品国产网站| 久久97精品久久久久久久不卡| 色哟哟网站入口亚洲精品| 97视频在线观看成人| 亚洲欧美资源在线| 欧美在线视频观看免费网站| 亚洲在线一区二区| 成人伊人精品色xxxx视频| 国产情人节一区| 美女扒开尿口让男人操亚洲视频网站| 国产亚洲激情视频在线| 日韩成人在线视频| 欧美性理论片在线观看片免费| 一本色道久久综合狠狠躁篇怎么玩| 一区二区av在线| 亚洲а∨天堂久久精品喷水| 国产精品天天狠天天看| 亚洲美女av黄| 欧美猛少妇色xxxxx| 国产综合视频在线观看| 久久久久久久久久久免费| 成人两性免费视频| 91日本在线视频| 日韩有码在线播放| 亚洲激情视频在线| 久久久久日韩精品久久久男男| 亚洲色无码播放| 日韩欧美成人免费视频| 亚洲视频欧美视频| 国产aⅴ夜夜欢一区二区三区| 欧美日韩精品在线观看| 欧美日韩国产区| 欧美一级电影在线| 青草热久免费精品视频| 亚洲精品白浆高清久久久久久| 91精品免费视频| 久久久精品国产亚洲| 欧美精品videossex88| 国产精品96久久久久久又黄又硬| 久久的精品视频| 美女啪啪无遮挡免费久久网站| 久久韩剧网电视剧| 欧美电影免费观看电视剧大全| 亚洲aaa激情| 亚洲综合在线做性| 久久国产精品免费视频| 欧美日韩国产影院| 国产精品丝袜一区二区三区| 97精品国产91久久久久久| 亚洲欧洲国产一区| 国产精品久久久久久av下载红粉| 色综合久久88| 国产精品91在线| 国产成人精品久久二区二区| 欧美丰满少妇xxxxx| 久久精品国产99国产精品澳门| 亚洲色图17p| 精品免费在线观看| 美日韩精品免费观看视频| 欧美华人在线视频| xxx欧美精品| 主播福利视频一区| 亚洲第一免费播放区| 久久夜精品va视频免费观看| 最近2019中文字幕一页二页| 欧美大片大片在线播放| 欧美黑人性生活视频| 国产成人在线亚洲欧美| 久久久久久久久久久免费精品| 久久精品99久久久久久久久| 欧美亚洲视频在线观看| 日韩欧美在线观看视频| 91精品久久久久久综合乱菊| 国产精品丝袜久久久久久高清| 黄色精品在线看| 欧美国产日韩视频| 91免费福利视频| 国产精品久久久久久久久久久久久| 97视频在线观看免费高清完整版在线观看| 欧美日韩免费区域视频在线观看| 88xx成人精品| 国产日韩欧美在线看| 亚洲欧美国产精品| 久久久久国产一区二区三区| 成人黄色在线播放| 日韩av电影手机在线| 91九色在线视频| 4444欧美成人kkkk| 136fldh精品导航福利| 日韩在线视频二区| 国产区精品在线观看| 久久的精品视频| 日本精品一区二区三区在线| 伊人久久大香线蕉av一区二区| 亚洲综合日韩中文字幕v在线| 久久99亚洲热视| 久久av红桃一区二区小说| 日韩av免费在线观看| 国产亚洲综合久久| 国产69精品久久久久9999| 亚洲性视频网站| 国产精品91一区| 国产精品久久久久秋霞鲁丝| 国产精品igao视频| 裸体女人亚洲精品一区| 国产精品精品视频| 91精品国产91久久| 亚洲国产91精品在线观看| 丝袜亚洲欧美日韩综合| 日韩在线观看免费高清完整版| 一区二区三区动漫| 欧美大成色www永久网站婷| 日韩在线激情视频| 97视频免费在线观看| 国产精品白丝jk喷水视频一区| 成人精品久久一区二区三区| 精品视频偷偷看在线观看| 欧美极品少妇与黑人| 亚洲成av人影院在线观看| 欧美巨大黑人极品精男| 国产成人精品a视频一区www| 久久精品国产电影| 在线成人激情视频| 久久成人精品一区二区三区| 欧美又大又粗又长| 国产成人97精品免费看片| 国产成人精品免高潮在线观看| 国产欧美精品在线播放| 另类色图亚洲色图| 久久精品国产视频| 国产精品久久久久一区二区| 亚洲二区中文字幕| 九九精品视频在线| 久久久精品亚洲|