CSS選擇器

一、CSS選擇器常見(jiàn)的有幾種?

<p>
1. 基礎(chǔ)選擇器

選擇器 含義
* 選中所有的元素,一般使用的較少,像margin鸭轮、padding之類(lèi)的還偶爾可以用一下
#id id選擇器川无,用來(lái)匹配設(shè)定了的id的元素,它具有唯一性挪拟,一般在頁(yè)面大的區(qū)塊就會(huì)使用id選擇器
.class 類(lèi)選擇器择葡,用來(lái)匹配class包含的特定類(lèi)的元素紧武,不具有唯一性
element 適用于一般的標(biāo)簽選擇器

2. 組合選擇器

選擇器 含義
E,F 多元素選擇器,用 , 分隔敏储,同時(shí)匹配元素E或元素F
E F 后代選擇器脏里,用空格分隔,匹配E元素所有的后代(不只是子元素虹曙、子元素向下遞歸)元素F
E>F 子元素選擇器,用 > 分隔番舆,匹配E元素的所有直接子元素
E+F 直接相鄰選擇器酝碳,匹配E元素之后的相鄰的同級(jí)元素F
E~F 普通相鄰選擇器(弟弟選擇器),匹配E元素之后的同級(jí)元素F(無(wú)論直接相鄰與否)
.class1.class2 id和class選擇器和選擇器連寫(xiě)的時(shí)候中間沒(méi)有分隔符恨狈,.和 #本身充當(dāng)分隔符的元素
element#id id和class選擇器和選擇器連寫(xiě)的時(shí)候中間沒(méi)有分隔符疏哗,. 和 #本身充當(dāng)分隔符的元素

3. 屬性選擇器

選擇器 含義
E[attr] 匹配所有具有屬性attr的元素,div[id]就能取到所有有id屬性的div
E[attr = value] 匹配屬性attr值為value的元素禾怠,div[id=test],匹配id=test的div
E[attr ~= value] 匹配所有屬性attr具有多個(gè)空格分隔返奉、其中一個(gè)值等于value的元素
html:<span lang="en-us en-gb en-au en-nz">Hello World!</span>
css:span[lang~="en-us"] {color: blue;}
html:<a href="path/to/image.jpg" data-info="external image"> Click Me, Fool </a>
css:a[data-info~="external"] { color: red;} a[data-info~="image"] { border: 1px solid black; }
有了這樣適當(dāng)?shù)臉?biāo)記,通過(guò)使用 ~屬性選擇器的技巧吗氏,可以指向任何具有著兩種屬性的任何一種啦芽偏。
E[attr ^= value] 匹配屬性attr的值以value開(kāi)頭的元素
E[attr $= value] 匹配屬性attr的值以value結(jié)尾的元素
E[attr *= value] 匹配屬性attr的值包含value的元素
E[attr operator value i] 在帶有屬性值的屬性選型選擇器表達(dá)式的右括號(hào)(]括號(hào))前添加字母i(或I)可以忽略屬性值的大小寫(xiě)。
input[type="email" i] {border-color: blue;}

4. 偽元素

選擇器 含義
E:first-line 匹配E元素的第一行,改變每個(gè)段落的第一行文本的樣式
E:first-letter 匹配E元素的第一個(gè)字母,運(yùn)用于段落排版上多弦讽,比如說(shuō)首字下沉
p::first-letter {font-size: 56px;float:left;margin-right:3px;}
E:before 在E元素之前插入生成的內(nèi)容(用法見(jiàn)下圖)
E:after 在E元素之后插入生成的內(nèi)容(用法見(jiàn)下圖)
偽元素清除浮動(dòng)

偽元素箭頭

5. 與用戶(hù)界面有關(guān)的偽類(lèi)

選擇器 含義
E:enabled 匹配表單中激活的元素
E:disabled 匹配表單中禁用的元素
input[type="text"]:disabled { background:#ddd; }
E:checked 匹配表單中被選中的radio(單選框)或checkbox(復(fù)選框)元素
E::selection 匹配用戶(hù)當(dāng)前選中的元素(選擇文本)

參考:CSS ::Selection的用法

6. 動(dòng)態(tài)偽類(lèi)

選擇器 含義
E:link 匹配所有未被點(diǎn)擊的鏈接
E:visited 匹配所有已被點(diǎn)擊的鏈接
E:hover 匹配鼠標(biāo)懸停其上的E元素
E:active 匹配鼠標(biāo)已經(jīng)其上按下污尉、還沒(méi)有釋放的E元素,點(diǎn)擊元素那一下的效果
E:focus 匹配獲得當(dāng)前焦點(diǎn)的E元素往产,用于元素成為焦點(diǎn)被碗,這個(gè)經(jīng)常用在表單元素上
  • 對(duì)于這四個(gè)錨點(diǎn)偽類(lèi)的設(shè)置,有一點(diǎn)需要特別注意仿村,那就是他們的先后順序锐朴,要讓他們遵守一個(gè)
    愛(ài)恨原則LoVe/HAte,也就是Link--visited--hover--active

  • button可采用的樣式
    <pre>.form-submit {
    -moz-transition: border-color 0.218s ease 0s;
    -webkit-transition: border-color 0.218s ease 0s;
    -o-transition: border-color 0.218s ease 0s;
    -ms-transition: border-color 0.218s ease 0s;
    transition: border-color 0.218s ease 0s;
    background: none repeat scroll 0 0 #F5F5F5;
    border: 1px solid #DCDCDC;
    -moz-border-radius: 2px 2px 2px 2px;
    -webkit-border-radius: 2px 2px 2px 2px;
    border-radius: 2px 2px 2px 2px;
    color: #333333;
    font: 11px/27px arial,sans-serif;
    height: 27px;
    padding: 0 8px;
    text-align: center;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
    }
    .form-submit:hover {
    background-color: #F8F8F8;
    border-color: #C6C6C6;
    -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
    -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
    color: #333333;
    }
    .form-submit:active {
    border-color: #4D90FE;
    -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) inset;
    -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) inset;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) inset;
    color: #000000;
    }
    .form-submit:focus {
    border: 1px solid #4D90FE !important;
    }
    </pre>

7.結(jié)構(gòu)性偽類(lèi)

選擇器 含義
E:root 匹配文檔的根元素蔼囊,對(duì)于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()作用類(lèi)似娩嚼,但是僅匹配使用同種標(biāo)簽的元素
E:nth-last-of-type(n) 與:nth-last-child() 作用類(lèi)似蘑险,但是僅匹配使用同種標(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)也被看作子元素

參考:偽類(lèi)選擇器之E:first-child系列和E:first-of-type系列

注意:

  • child:子元素
  • of-type:元素類(lèi)型

8.反選偽類(lèi)

選擇器 含義
E:not(s) 匹配不符合當(dāng)前選擇器的任何元素
input:not([type="submit"]) {border: 1px solid red;}

9.目標(biāo)偽類(lèi)

選擇器 含義
E:target 匹配文檔中特定"id"點(diǎn)擊后的效果

用法:

  • 當(dāng)用戶(hù)訪問(wèn)一個(gè)頁(yè)面時(shí)滔灶,如果他的URI片段標(biāo)識(shí)符為hello,與section的id屬性相同普碎,通過(guò)使用:target偽類(lèi),section就會(huì)被應(yīng)用樣式录平。如果URI片段標(biāo)識(shí)符變更麻车,且匹配某元素的id屬性,通過(guò)使用:target偽類(lèi)斗这,這個(gè)元素就會(huì)被應(yīng)用樣式动猬。
    css:
    section:target {...}
    html:
    <section id="hello">...</section>

參考:
30個(gè)你必須記住的CSS選擇符
HTML和CSS高級(jí)指南之三——豐富多彩的選擇器
:target的應(yīng)用(創(chuàng)建一個(gè)純CSS的 "lightbox")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市表箭,隨后出現(xiàn)的幾起案子赁咙,更是在濱河造成了極大的恐慌,老刑警劉巖免钻,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彼水,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡极舔,警方通過(guò)查閱死者的電腦和手機(jī)凤覆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)拆魏,“玉大人叛赚,你說(shuō)我怎么就攤上這事』遥” “怎么了俺附?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)溪掀。 經(jīng)常有香客問(wèn)我事镣,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任璃哟,我火速辦了婚禮氛琢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘随闪。我一直安慰自己阳似,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布铐伴。 她就那樣靜靜地躺著撮奏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪当宴。 梳的紋絲不亂的頭發(fā)上畜吊,一...
    開(kāi)封第一講書(shū)人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音户矢,去河邊找鬼玲献。 笑死,一個(gè)胖子當(dāng)著我的面吹牛梯浪,可吹牛的內(nèi)容都是我干的捌年。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼挂洛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼礼预!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起抹锄,我...
    開(kāi)封第一講書(shū)人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎荠藤,沒(méi)想到半個(gè)月后伙单,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哈肖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年吻育,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淤井。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡布疼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出币狠,到底是詐尸還是另有隱情游两,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布漩绵,位于F島的核電站贱案,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏止吐。R本人自食惡果不足惜宝踪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一侨糟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘩燥,春花似錦秕重、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至站蝠,卻和暖如春汰具,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菱魔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工留荔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人澜倦。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓聚蝶,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親藻治。 傳聞我的和親對(duì)象是個(gè)殘疾皇子碘勉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 1、垂直對(duì)齊 如果你用CSS桩卵,則你會(huì)有困惑:我該怎么垂直對(duì)齊容器中的元素验靡?現(xiàn)在,利用CSS3的Transform雏节,...
    kiddings閱讀 3,154評(píng)論 0 11
  • W3C標(biāo)準(zhǔn)中對(duì)css3的transition這是樣描述的:“css的transition允許css的屬性值在一定的...
    青春前行閱讀 1,410評(píng)論 0 5
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color胜嗓,font栅受,text-align亥贸,li...
    wzhiq896閱讀 1,736評(píng)論 0 2
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color,font砸琅,text-align寥粹,li...
    love2013閱讀 2,306評(píng)論 0 11
  • 我在感恩節(jié)的第二天收到了來(lái)自秋天的前程似錦的閃電 信封上的郵票已被夢(mèng)的口水弄臟 我還是像往常一樣沒(méi)有在乎地吻了你的...
    第五殿閱讀 829評(píng)論 3 3