css3中的三種選擇器


  1. 選擇器:

    CSS3新增了許多靈活查找元素的方法,極大的提高了查找元素的效率和精准度。CSS3選擇器與jQuery中所提供的絕大部分選擇器兼容

    1. 一 屬性選擇器:

    a)     E[attribute] 表示存在attr屬性即可;

    div[class]

    b)     E[attr=val] 表示屬性值完全等於val;

    div[class=mydemo]

    c)      E[attr*=val] 表示的屬性值里包含val字符並且在“任意”位置;

    div[class*=mydemo]

    d)     E[attr^=val] 表示的屬性值里包含val字符並且在“開始”位置;

    div[class^=mydemo]

    e)     E[attr$=val] 表示的屬性值里包含val字符並且在“結束”位置;

    div[class$=demos]

  2. 二偽類選擇器-偽元素選擇器:

    a)     之前學習的:a:hover  a:link  a:active  a:visited

    b)     以某元素相對於其父元素或兄弟元素的位置來獲取無素的結構偽類

    f)      E:first-child:查找E這個元素的父元素的第一個子元素E

    g)     E:last-child:最后一個子元素

    h)     E:nth-child(n): 第n個子元素,計算方法是E元素的全部兄弟元素

    i)       E:nth-last-child(n): 同E:nth-child(n) 相似,只是倒着計算

    j)      E:nth-child(even): 所有的偶數

    k)     E:nth-child(odd): 所有的奇數

    l)       E:nth-of-type(n):指定類型

    m)    E:empty 選中沒有任何子節點的E元素,注意,空格也算子元素

    n)     E:target 結合錨點進行使用,處於當前錨點的元素會被選中

    • o)     重點說明:n遵循線性變化,其取值0、1、2、3、4、... 但是當n<=0時,選取無效

    p)     案例代碼:

    /*第一個li元素*/
    li:first-child{
        color: red;
    }
    /*最后一個元素*/
    li:last-child{
        color: green;
    }
    /*獲取第10個元素*/
    li:nth-child(10){
        color: orange;
    }
    /*獲取倒數第3個li元素*/
    li:nth-last-child(3){
        color: purple;
    }
    /*獲取索引順序為6的倍數的li元素*/
    li:nth-child(6n){
        text-decoration: underline;
        border: 1px solid red;
    }
    /*獲取所有索引為偶數的li元素*/
    li:nth-child(even){
        border: 1px solid black;
    }
    /*獲取前5個li元素*/
    li:nth-child(-n+5){
        background-color: #ddd;
    }

  3. /*獲取除了第一個外的元素*/
    li:nth-child(n+2){
       
    }

    c)      n可是多種形式:nth-child(2n)、nth-child(2n+1)、nth-child(-n+5)等

    三偽元素選擇器:

a)     重點:E::before、E::after

                          i.         是一個行內元素,需要轉換成塊:display:block   float:**  position:

                         ii.          必須添加content,哪怕不設置內容,也需要content:””

                        iii.          E:after、E:before 在舊版本里是偽類,在新版本里是偽元素,新版本下E:after、E:before會被自動識別為E::after、E::before,按偽元素來對待,這樣做的目的是用來做兼容處理

                        iv.          E::before: 定義在一個元素的內容之前插入content屬性定義的內容與樣式

                         v.         E::after: 定義在一個元素的內容之后插入content屬性定義的內容與樣式

                        vi.          注意:

  1. IE6、IE7與IE8(怪異模式Quirks mode)不支持此偽元素
  2. CSS2中 E:before或者E:after,是屬於偽類的,並且沒有偽元素的概念,CSS3提出偽元素的概念 E::before和E::after,並且歸屬到了偽元素當中,偽類里就不再存在E:before或者   E:after偽類

b)     E::first-letter文本的第一個字母或字(不是詞組)

c)      E::first-line 文本第一行

d)     E::selection 可改變選中文本的樣式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM