成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

CSS選擇器

vvpale / 3066人閱讀

摘要:五后代選擇器包含選擇器后代選擇器可以選擇作為某元素后代的元素。匹配下所有的元素匹配所有為的下所有的元素匹配成功匹配失敗注意有關(guān)后代選擇器有一個(gè)易被忽視的方面,即兩個(gè)元素之間的層次間隔可以是無限的。子元素選擇器,選擇其子元素。

CSS選擇器是學(xué)習(xí)CSS的一個(gè)核心部分,HTML頁面中的元素就是通過CSS選擇器來進(jìn)行控制的,熟練使用CSS選擇器能迅速根據(jù)文檔結(jié)構(gòu)對文檔樣式進(jìn)行一對一,一對多或者多對一的控制和調(diào)整。

一、CSS 元素選擇器(類型選擇器)

文檔的元素是最基本的選擇器也是最常見的選擇器,如果設(shè)置 HTML 的樣式,選擇器通常將是某個(gè) HTML 元素,比如 ph1、ema,甚至可以是 html 本身,如:

html {margin: 0; padding: 0;}
h1 {font-family: "華文楷體"; color:blue;}
a {font-size:16px; text-decoration: none;}

在 W3C 標(biāo)準(zhǔn)中,元素選擇器又稱為類型選擇器(type selector)。類型選擇器匹配文檔語言元素類型的名稱。類型選擇器匹配文檔樹中該元素類型的每一個(gè)實(shí)例,所以類似HTML, XML等標(biāo)記語言都可以通過類型選擇器來匹配,甚至一些自定義標(biāo)簽都會(huì)生效。

二、CSS 類選擇器

類選擇器允許以一種獨(dú)立于文檔元素的方式來指定樣式。該選擇器可以多帶帶使用,也可以與其他元素結(jié)合使用。

提示: 只有適當(dāng)?shù)貥?biāo)記文檔后(指定claess屬性),才能使用這些選擇器,所以使用這兩種選擇器通常需要先做一些構(gòu)想和計(jì)劃。要應(yīng)用樣式而不考慮具體設(shè)計(jì)的元素,最常用的方法就是使用類選擇器。

語法: 類選擇器前面有個(gè)"."。

/* 基本語法 */
.important {color:red;}
/* 結(jié)合通配符使用 */
*.important {color:red;}
/* 結(jié)合元素使用,解釋為:其 class 屬性值為 important 的所有 p 元素 */
p.important {color:red;}

CSS多類選擇器

HTML元素的class屬性可以包含一個(gè)詞列表,各個(gè)詞之間用空格分隔,詞的順序無關(guān)緊要。如:

This paragraph is a very important.

This paragraph is a very warning.

This paragraph is a very important warning.

設(shè)置class 為 important 的所有元素都是粗體,而 class 為 warning 的所有元素為斜體,class 中同時(shí)包含 important 和 warning 的所有元素還有一個(gè)銀色的背景 。就可以寫作:

.important {font-weight:bold;}
.warning {font-style:italic;}
/* 注意:在HTML元素的class屬性中的兩個(gè)詞需要用“空格”隔開,在CSS中不能用“空格”隔開 */
.important.warning {background:silver;}

注意: 把兩個(gè)類選擇器鏈接在一起,僅可以選擇同時(shí)包含這些類名的元素(類名的順序不限),如果一個(gè)多類選擇器包含類名列表中沒有的一個(gè)類名,匹配就會(huì)失敗。如:

p.important.urgent {background:silver;}

這個(gè)選擇器將只匹配 class 屬性中同時(shí)包含詞 important 和 urgent 的 p 元素。因此,如果一個(gè) p 元素的 class 屬性中只有詞 important 和 warning,將不能匹配。不過,它能匹配以下元素:


This paragraph is a very important.

This paragraph is a very important.

三、CSS ID選擇器

語法: ID選擇器前面有個(gè)"#"。

/* 基本語法 */
#intro {font-weight:bold;}
/* 配合通配符使用 */
*#intro {font-weight:bold;}

與Javascript的區(qū)別:

/* 在同一個(gè)頁面中能匹配所有 ID 為 mostImportant 的元素 */
#mostImportant {color:red; background:yellow;}
/* 在同一個(gè)頁面中只能獲取文檔中第一個(gè) ID 為 mostImportant 的內(nèi)容 */
document.getElementById("mostImportant").innerHTML;

This is important!

This is important!
    This is important!

與類選擇器的區(qū)別:

區(qū)別 1:只能在文檔中使用一次
不同于類選擇器,在一個(gè) HTML 文檔中,ID 選擇器會(huì)使用一次,而且僅一次。

區(qū)別 2:不能使用 ID 詞列表
不同于類選擇器,ID 選擇器不能結(jié)合使用,因?yàn)?ID 屬性不允許有以空格分隔的詞列表。

注意:

關(guān)于命名:idclass屬性不要以數(shù)字開頭,數(shù)字開頭的ID在 Mozilla/Firefox 瀏覽器中不起作用;

關(guān)于大小寫:idclass在HTML和XHTML中是區(qū)分大小的。

四、CSS 屬性選擇器

CSS 2 引入了屬性選擇器。屬性選擇器可以根據(jù)元素的屬性屬性值來選擇元素。

簡單屬性選擇:

/* 通過單個(gè)屬性選擇 */
*[title] {color:red;}
a[href] {color:red;}

/* 通過多個(gè)屬性選擇,注意:匹配同時(shí)含有多個(gè)屬性的元素 */
a[href][title] {color:red;}
img[alt][title] {border: 5px solid red;}

根據(jù)完全匹配的屬性值選擇:

/* 通過單個(gè)屬性值選擇 */
a[] {color: red;}

/* 通過多個(gè)屬性值選擇 */
a[] {color: red;}

根據(jù)部分屬性值選擇

選擇器 描述
[attribute] 用于選取帶有指定屬性的元素。
[attribute = value] 用于選取帶有指定屬性和值的元素。
[attribute ~= value] 用于選取屬性值中包含指定詞匯的元素,該值匹配是沒有空格的字符串。
[attribute |= value] 用于選取帶有以指定值開頭的元素,該值匹配的是value或value-。
[attribute ^= value] 匹配屬性值以指定值開頭的每個(gè)元素,該值可以是任意值,推薦使用。
[attribute $= value] 匹配屬性值以指定值結(jié)尾的每個(gè)元素。
[attribute *= value] 匹配屬性值中包含指定值的每個(gè)元素,該值可以是任意值,推薦使用。
五、CSS 后代選擇器(包含選擇器)

后代選擇器可以選擇作為某元素后代的元素。

語法: 父元素和后代元素從左至右排列,中間用空格隔開。

/* 匹配 h1 下所有的 em 元素 */
h1 em {color:red;}

/* 匹配所有 class 為 "maincontent" 的 div下所有的 a 元素 */
div.maincontent a {color:blue;}

This is a important heading

This is a important paragraph.

注意: 有關(guān)后代選擇器有一個(gè)易被忽視的方面,即兩個(gè)元素之間的層次間隔可以是無限的。

例如,如果寫作 ul em,這個(gè)語法就會(huì)選擇從 ul 元素繼承的所有 em 元素,而不論 em 的嵌套層次多深。

因此,ul em 將會(huì)選擇以下標(biāo)記中的所有 em 元素:

    0
  • List item 1
    1. List item 1-1
    2. List item 1-2
    3. List item 1-3
      1. List item 1-3-1
      2. List item 1-3-2
      3. List item 1-3-3
    4. List item 1-4
  • List item 2
  • List item 3
六、CSS 子元素選擇器

與后代選擇器相比,子元素選擇器(Child selectors)只能選擇作為某元素子元素的元素。

如果你不希望選擇任意的后代元素,而是希望縮小范圍,只選擇某個(gè)元素的子元素,那就要使用子元素選擇器。

后代元素: 所有由其包裹的元素;

子代元素: 由其包裹,層級(jí)結(jié)構(gòu)只比其小一級(jí)的元素;

語法: 父元素和子元素從左至右排列,中間用 > 隔開。

/* 選擇只作為 h1 元素子元素的 strong 元素 */
h1 > strong {color:red;}

This is very very important.

This is really very important.

結(jié)合后臺(tái)選擇器和子選擇器

/* 選擇所有 class 為 "company" 的 table 的所有后代 td 的子元素 p */
table.company td > p
七、CSS 相鄰兄弟選擇器

可選擇緊接在另一元素后的元素,且二者有相同父元素。

語法:兄弟元素從左至右排列,中間用 + 隔開。

/* 選擇緊接在 h1 后(前面的元素不能匹配)的元素,而且二者有相同的父元素 */
h1 + p {color: red;}

第一個(gè)段落

標(biāo)題

第二個(gè)段落

第二個(gè)段落

總結(jié):

選擇器 描述
h1 p 后代選擇器,選擇所有的后代元素。
h1 , p 多元素選擇器,用","分隔,同時(shí)匹配元素h1或元素p。
h1 > p 子元素選擇器,選擇其子元素。
h1 + p 相鄰兄弟選擇器,選擇其后面相鄰的兄弟元素(有相同的父元素)。
h1 ~ p 一般兄弟選擇器,選擇其后面所有的兄弟元素(有相同的父元素)。
八、CSS 偽類

用于向某些選擇器添加特殊的效果。

語法: 選擇器和偽類之間通過 : 隔開。

/* 選擇器 : 偽類 */
selector : pseudo-class {property: value}
/* CSS 類也可與偽類搭配使用 */
selector.class : pseudo-class {property: value}

錨偽類

a:link {color: #FF0000}        /* 未訪問的鏈接 */
a:visited {color: #00FF00}    /* 已訪問的鏈接 */
a:hover {color: #FF00FF}    /* 鼠標(biāo)移動(dòng)到鏈接上 */
a:active {color: #0000FF}    /* 選定的鏈接 */

在 CSS 定義中,a:hover 必須被置于 a:link 和 a:visited 之后,才是有效的。

在 CSS 定義中,a:active 必須被置于 a:hover 之后,才是有效的。

偽類名稱對大小寫不敏感。

:first-child 偽類和:laft-child偽類

可以使用 :first-child 偽類來選擇元素的第一個(gè)子元素。

These are the necessary steps:

  • Intert Key
  • Turn key clockwise
  • Push accelerator

Do not push the brake at the same time as the accelerator.

/* 選擇的就是第一個(gè) p 元素,而不是 p 元素的第一個(gè)子元素 */
p:first-child {font-weight: bold;}
/* 選擇的就是最后一個(gè) p 元素,而不是 p 元素的最后一個(gè)子元素 */
p:last-child {font-weight: bold;}
/* 選擇的就是第一個(gè) li 元素,而不是 li 元素的第一個(gè)子元素 */
li:first-child {text-transform: uppercase;}
/* 通過CSS設(shè)置字母的大小寫 */
li:first-child {text-transform: lowercase;}

偽類匯總

選擇器 含義
E:first-child 匹配元素E的第一個(gè)子元素
E:link 匹配所有未被點(diǎn)擊的鏈接
E:visited 匹配所有已被點(diǎn)擊的鏈接
E:active 匹配鼠標(biāo)已經(jīng)其上按下、還沒有釋放的E元素
E:hover 匹配鼠標(biāo)懸停其上的E元素
E:focus 匹配獲得當(dāng)前焦點(diǎn)的E元素
E:lang(c) 匹配lang屬性等于c的E元素
E:enabled 匹配表單中可用的元素
E:disabled 匹配表單中禁用的元素
E:checked 匹配表單中被選中的radio或checkbox元素
E::selection 匹配用戶當(dāng)前選中的元素
E:root 匹配文檔的根元素,對于HTML文檔,就是HTML元素
E:nth-child(n) 匹配其父元素的第n個(gè)子元素,第一個(gè)編號(hào)為1
E:nth-last-child(n) 匹配其父元素的倒數(shù)第n個(gè)子元素,第一個(gè)編號(hào)為1
E:nth-of-type(n) 與:nth-child()作用類似,但是僅匹配使用同種標(biāo)簽的元素
E:nth-last-of-type(n) 與:nth-last-child() 作用類似,但是僅匹配使用同種標(biāo)簽的元素
E:last-child 匹配父元素的最后一個(gè)子元素,等同于:nth-last-child(1)
E:first-of-type 匹配父元素下使用同種標(biāo)簽的第一個(gè)子元素,等同于:nth-of-type(1)
E:last-of-type 匹配父元素下使用同種標(biāo)簽的最后一個(gè)子元素,等同于:nth-last-of-type(1)
E:only-child 匹配父元素下僅有的一個(gè)子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)
E:only-of-type 匹配父元素下使用同種標(biāo)簽的唯一一個(gè)子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)
E:empty 匹配一個(gè)不包含任何子元素的元素,文本節(jié)點(diǎn)也被看作子元素
E:not(selector) 匹配不符合當(dāng)前選擇器的任何元素

偽元素

偽元素可用于定位文檔中包含的文本,為與偽類進(jìn)行區(qū)分,偽元素使用雙冒號(hào) :: 定義,但單冒號(hào) : 也能被識(shí)別。

屬性 描述
::first-letter 向文本的第一個(gè)字母添加特殊樣式。
::first-line 向文本的首行添加特殊樣式。
::before 在元素之前添加內(nèi)容。
::after 在元素之后添加內(nèi)容。
::focue 在元素之后添加內(nèi)容。
九、參考資料

W3School CSS 選擇器

CSS選擇器詳解

十分鐘搞定CSS選擇器

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/112385.html

相關(guān)文章

  • WEB前端 CSS

    摘要:后代選擇器,兒子選擇器,毗鄰選擇器,弟弟選擇器。后代選擇器后代選擇器標(biāo)簽選擇器后跟標(biāo)簽后代,無論直屬還是間接直屬,直接后代毗鄰后代中最近的一個(gè)弟弟,找到和自己同級(jí)的標(biāo)簽如通過多個(gè)選擇器好到具體的標(biāo)簽。目錄 WEB前端 CSS WEB前端 CSS TOC CSS簡介 CSS引入方式 CSS結(jié)構(gòu) CSS選擇器 標(biāo)簽選擇...

    darry 評論0 收藏0
  • 編寫高效的 CSS 選擇CSS魔法

    摘要:最基本的選擇器是元素選擇器比如選擇器比如還有類選擇器比如。選擇器和類選擇器在速度上的差異基本上沒有關(guān)系?,F(xiàn)在我們回到討論開始的地方,哪類選擇器是最高效的哪個(gè)是會(huì)影響選擇器效率的關(guān)鍵選擇器寫代碼的時(shí)候,關(guān)鍵選擇器是能否高效的決定因素。 高效的CSS已經(jīng)不是一個(gè)新的話題了,也不是我一個(gè)非得重拾的話題,但它卻是我在工作之時(shí),所感興趣的,關(guān)注已久的話題。 有很多人都忘記了,或在簡單的說沒有意識(shí)...

    forrest23 評論0 收藏0
  • 編寫高效的 CSS 選擇CSS魔法

    摘要:最基本的選擇器是元素選擇器比如選擇器比如還有類選擇器比如。選擇器和類選擇器在速度上的差異基本上沒有關(guān)系。現(xiàn)在我們回到討論開始的地方,哪類選擇器是最高效的哪個(gè)是會(huì)影響選擇器效率的關(guān)鍵選擇器寫代碼的時(shí)候,關(guān)鍵選擇器是能否高效的決定因素。 高效的CSS已經(jīng)不是一個(gè)新的話題了,也不是我一個(gè)非得重拾的話題,但它卻是我在工作之時(shí),所感興趣的,關(guān)注已久的話題。 有很多人都忘記了,或在簡單的說沒有意識(shí)...

    hyuan 評論0 收藏0
  • 前端面試題-CSS選擇性能優(yōu)化

    摘要:不要在編寫規(guī)則時(shí)用標(biāo)簽名或類名不要在編寫規(guī)則時(shí)用標(biāo)簽名把多層標(biāo)簽選擇規(guī)則用規(guī)則替換,減少查找避免使用子選擇器后代選擇器在中是最昂貴的選擇器。如果你關(guān)心頁面性能的話,他們真不該被使用擴(kuò)展閱讀前端面試題選擇器前端面試題優(yōu)先級(jí) 一、CSS選擇符 CSS選擇符由一些初始化參數(shù)組成,這些參數(shù)指明了要應(yīng)用這個(gè)CSS規(guī)則的頁面元素。 作為一個(gè)網(wǎng)站的前端開發(fā)工程師,應(yīng)該避免編寫一些常見的開銷很大的CS...

    Scott 評論0 收藏0
  • 前端面試題-CSS選擇性能優(yōu)化

    摘要:不要在編寫規(guī)則時(shí)用標(biāo)簽名或類名不要在編寫規(guī)則時(shí)用標(biāo)簽名把多層標(biāo)簽選擇規(guī)則用規(guī)則替換,減少查找避免使用子選擇器后代選擇器在中是最昂貴的選擇器。如果你關(guān)心頁面性能的話,他們真不該被使用擴(kuò)展閱讀前端面試題選擇器前端面試題優(yōu)先級(jí) 一、CSS選擇符 CSS選擇符由一些初始化參數(shù)組成,這些參數(shù)指明了要應(yīng)用這個(gè)CSS規(guī)則的頁面元素。 作為一個(gè)網(wǎng)站的前端開發(fā)工程師,應(yīng)該避免編寫一些常見的開銷很大的CS...

    XGBCCC 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<