【前端學習】-粗談選擇器

對於一個前端er,選擇器是平常生活中必須接觸的部分,這篇文章主要探討一下選擇其的分類及一些小技巧。html

【分類】
1.基礎選擇器
2.結構選擇器
3.僞類選擇器
4.僞元素
5.屬性選擇器前端

【描述】
1.基礎選擇器(瀏覽器都兼容)瀏覽器

* 通配符 (能夠匹配元素中全部的html元素)
    如:*{color:#000;}則表明將頁面所有元素添加屬性爲#000的顏色值;
E 元素選擇器(匹配特定的標籤)
    如:a{text-decoration:underline;}則表明將頁面全部的a標籤設置下劃線;
#id ID選擇器(匹配頁面特定的id)
    如:#my{color:#000}則表明將頁面id爲my的元素添加屬性爲#000的顏色值;
.class 類選擇器(匹配頁面特定的class)
    如:.my{color:#000}則表明將頁面class爲my的元素添加屬性爲#000的顏色值;
S1,S2 羣組選擇器(匹配包含S1,包含S2元素,匹配一個便可)
    如:.my,.you{color:#000}則表明將頁面class爲my和class爲you的元素添加屬性爲#000的顏色值;
S1S2 合併選擇器(匹配包含S1及S2的元素,該元素同時必須包含S1及S2)
    如:.my.you{color:#000}則表明將頁面class有my及you的元素添加屬性爲#000的顏色值;

2.結構選擇器dom

S1 S2 後代選擇器(S1全部的後代S2)
S1>S2 子選擇器(S1的子元素S2 IE7+)
S1+S2 相鄰兄弟選擇器(S1後面的相鄰兄弟元素S2 IE7+)
S1~S2 通用兄弟選擇器(S1後面的全部兄弟元素S2,IE7+)

【舉例圖示】
a.區分S1 S2及S1,S2及S1S2三類選擇器;ui

<div class="you me">
        you and me
    </div>
    <div class="you">
        you
    </div>
    <div class="me">
        me
        <span class="you">
            you
        </span>
    </div>
.me,.you{
        color: deeppink;
    }
    .you.me{
        background: #eee;
    }
    .me .you{
        color: #0f0;
    }

添加如上結構及樣式,可獲得下面的效果:spa

clipboard.png

能夠看出來.me,.you羣組選擇器即只要包含了任意一個便可生效;.me .you後代選擇是隻有.me的後代.you纔會生效,.me.you合併選擇器,是須要兩個選擇器都包含纔會生效。code

b.區分各種兄弟選擇器htm

<div class="parent">
        <div class="son son1">son1</div>
        <div class="son">son2</div>
        <div class="son">son3</div>
        <div class="son">son4</div>
    </div>
    <div class="son">
        son other
    </div>
.parent >.son{
        color: #0f0;
    }
    .son1 + .son{
        text-align: center;
    }
    .son1 ~ .son{
        background: #eee;
    }

添加如上結構及樣式,可獲得下面的效果:
圖片描述圖片

3.僞類選擇器ip

動態僞類選擇器
    :link
    :visited
    :acitve(IE8+)
    :hover
    :focus(IE8+)
目標僞類選擇器
    :target(IE9+)
語言僞類選擇器
   :lang(language)
ui元素狀態僞類選擇器(IE9+)
    :checked  選中態
    :enabled    啓用態
    :disabled    禁用態
結構僞類選擇器(IE9+)
    :first-child
    :last-child
    :root
    :nth-child(n) odd even
    :nth-last-child(n)
    :nth-of-type(n)
    :nth-last-of-type(n)
    :first-of-type
    :last-of-type
    :only-child
    :only-of-type
    :empty

    n的場景 n n*length n+length -n+length n*length+b odd even

否認僞類選擇器
    :not (IE9+)

【舉例圖示】
以上僞類選擇器,結構僞類選擇器在平常效果中應用最爲普遍,應用恰當能夠獲得不少意想不到的效果。【具體效果會另開文章再更新】

4.僞元素

::first-letter 第一個字母
::first-line 第一行文本
::before 在元素前插入內容,但不會生成dom,能夠設置樣式【會在下篇文章補充說明】
::after 在元素後插入內容,但不會生成dom,能夠設置樣式,經常使用於清除浮動【會在下篇文章補充說明】

5.屬性選擇器【IE7+】

E[attr] 匹配具備屬性attr的元素E
E[attr=val] 匹配屬性attr爲val的元素E
E[attr|=val] 以val 或者val-開頭
E[attr~=val] 屬性值要包含val這個屬性
E[attr*=val] 屬性值中有val這個字符串就能夠
E[attr^=val] 以val開頭
E[attr$=val] 以val結束
相關文章
相關標籤/搜索