通配選擇符(*) 一般不建議使用通配選擇符,由於它會遍歷並命中文檔中全部的元素,出於性能考慮,需酌情使用
相鄰選擇器(+)會選擇相鄰的下一個的元素(不包括本身)
兄弟選擇器(~)會選擇相鄰的後面的全部兄弟元素(不包括本身)
屬性選擇器
E[att] { sRules } 選擇具備att屬性的E元素。E[att="val"] { sRules } 選擇具備att屬性且屬性值等於val的E元素E[att~="val"] { sRules }選擇具備att屬性且屬性值爲一用空格分隔的字詞列表,其中一個等於val的E元素(包含只有一個值且該值等於val的狀況)。 E[att^="val"] { sRules } 選擇具備att屬性且屬性值爲以val開頭的字符串的E元素;(包括),若是有多個值,則寫在開頭的一個包括val則能夠;
E[att$="val"] { sRules } 選擇具備att屬性且屬性值爲以val結尾的字符串的E元素。 (包括該字符串),若是有多個屬性值,則不能夠!
E[att*="val"] { sRules } 選擇具備att屬性且屬性值有val字母的字符串的E元素。若是屬性有多個屬性值,但屬性值中包含有val的字符串,也能夠。
E[att|="val"] { sRules } 選擇具備att屬性,其值是以val開頭並用鏈接符"-"分隔的字符串的E元素;若是值僅爲val,也將被選擇。 這樣理解會更簡單:若是元素E擁有att屬性,而且值爲val,或者值是以val-開頭的,那麼E將會被選擇。(若是屬性有多個屬性值,則不能夠)
僞類選擇器
E:link(未訪問)
E:visited(已訪問)
E:hover(鼠標移上去),E:active(選定時)(它們之間有順序)
E:focus獲取焦點設置對象在成爲輸入焦點(該對象的onfocus事件發生)時的樣式。 webkit內核瀏覽器會默認給:focus狀態的元素加上outline的樣式。
E:not(選擇器)匹配不含有s選擇符的元素E。
E:first-child { sRules }/寫在子孩子(而且父元素是第一個孩子),要使該屬性生效,E元素必須是某個元素的子元素,E的父元素最高是body,即E能夠是body的子元素
E:last-child { sRules }/寫在子孩子(而且父元素d是最後一個孩子);匹配父元素的最後一個子元素E。 要使該屬性生效,E元素必須是某個元素的子元素,E的父元素最高是body,即E能夠是body的子元素 E:last-child選擇符,E必須是它的兄弟元素中的最後一個元素,換言之,E必須是父元素的最後一個子元素。與之相似的僞類還有E:first-child,只不過狀況正好相反,須要它是第一個子元素。
E:first-of-type/寫在子孩子/子孩子中第一個出現該類型的元素匹配父元素下第一個類型爲E的子元素。
首先,該選擇符要匹配的是類型爲E的子元素,這意味着E元素必須做爲某個元素的子元素存在(E元素的父元素最高是html,也就是說E 元素自己最高只能是body,這表示任何非html的元素都符合這個約束,由於html元素是根元素。) 其次,該選擇符要匹配的是父元素 第一個類型爲E的子元素,這意味着被命中的元素不必定是父元素的第一個子元素(由於排在父元素首位的不必定是E元素,E元素可能 在子元素列表中的任何位置)。
E:last-of-type(匹配父元素下的全部E子元素中的倒數第一個)寫在子孩子/子孩子中最後一個出現該類型的元素;首先,由於匹配的是父元素的子元素,這意味着E元素必須做爲某個元素的子元素存在(E元素的父元素最高是html,也就是說E元素最高是body,這表示任何非html的元素都符合這個約束,由於html元素是根元素。) 其次,匹配的是父元素的第一個E子元素(要注意:被命中的不必定是父元素的第一個子元素,由於排在子元素首位的不必定是E元素,它可能在子元素列表中的任何位置)
E:only-child選擇父元素只有一個元素的;要使該屬性生效,E元素必須是某個元素的子元素,E的父元素最高是body,即E能夠是body的子元素
E:nth-child(表達式/even(偶數)/odd(奇數)/數字)(eg:隔行變色)/寫在子元素/而且是該類型/而且是父元素的第n個孩子;E:nth-child(n)會選擇父元素的第n個子元素E,若是第n個子元素不是E類型,則是無效選擇符,但n會遞增(初始值是0,仍是1,看具體的狀況)(li:nth-child(2n)偶數個(n的取值,看具體的問題)//用於找規律的題;百度題:有一堆數據,數據每三列顯示,求第一列的左邊的距離,第三列的右邊的距離;)
E:nth-last-child;匹配父元素的倒數第n個子元素e,假設該子元素不是e,則選擇符無效。 匹配父元素的倒數第n個子元素E,假設該子元素不是E,則選擇符無效。 要使該屬性生效,E元素必須是某個元素的子元素,E的父元素最高是body,即E能夠是body的子元素 ;該選擇符容許使用一個乘法因子(n)來做爲換算方式,好比咱們想選中倒數第一個子元素E,那麼選擇符能夠寫成:E:nth-last-child(1)
E:only-of-type匹配父元素的全部子元素中惟一的那個子元素E。 首先,由於匹配的是父元素的子元素,這意味着E元素必須做爲某個元素的子元素存在(E元素的父元素最高是html,也就是說E元素最高是body,這表示任何非html的元素都符合這個約束,由於html元素是根元素)。 其次,父元素能夠有多個子元素,但其中的子元素E必須是惟一的,不能出現多個。
E:nth-of-type(n)匹配父元素的第n個子元素E。 首先,由於匹配的是父元素的子元素,這意味着E元素必須做爲某個元素的子元素存在(E元素的 父元素最高是html,也就是說E元素最高是body,這表示任何非html的元素都符合這個約束,因 爲html元素是根元素。) 其次,匹配的是父元素的第n個爲E的子元素(被命中的不必定是第n個子元素,由於匹配的不是第n個子元素,而是第n個爲E的子元素)
E:nth-last-of-type(n)匹配父元素的倒數第n個子元素E。 首先,由於匹配的是父元素的子元素,這意味着E元素必須做爲某個元素的子元素存在(E元素的父元素最高是html,也就是說E元素最高是body,這表示任何非html的元素都符合這個約束,由於html元素是根元素。) ;其次,匹配的是父元素的倒數第n個爲E的子元素(被命中的不必定是倒數第n個子元素,由於匹配的不是倒數第n個子元素,而是倒數第n個爲E的子元素)
E:empty 匹配沒有任何子元素(包括text節點)的元素e。
E:checked//匹配用戶界面上處於選中狀態的元素E,。(用於input type爲radio與checkbox時)
E:enabled//匹配用戶界面上處於可用狀態的元素E。
E:disabled 匹配用戶界面上處於禁用狀態的元素e
E:target// url後面跟錨點#,指向文檔內某個具體的元素。這個被連接的元素,:target選擇器用於選取當前活動的目標元素。
僞對象選擇器
E::first-letter/第一個字
此僞對象僅做用於塊對象。內聯對象要使用該僞對象,必須先將其設置爲塊級對象。 該僞類常被用來配合font-size屬性和float屬性製做首字下沉效果。 IE6在使用該選擇符時有個顯式的BUG:選擇符與包含規則的花括號之間不能緊挨着,需留有空格或換行。同時還存在該BUG的選擇符包括:E:first-line CSS3將僞對象選擇符(Pseudo-Element Selectors)前面的單個冒號(:)修改成雙冒號(::)用以區別僞類選擇符(Pseudo-Classes Selectors),但之前的寫法仍然有效。即E:first-letter可轉化爲E::first-letter
E::first-line/E:first-line第一行元素
此僞對象僅做用於塊對象。內聯對象要使用該僞對象,必須先將其設置爲塊級對象。 IE6在使用該選擇符時有個顯式的BUG:選擇符與包含規則的花括號之間不能緊挨着,需留有空格或換行。同時還存在該BUG的選擇符包括:E:first-letter ;CSS3將僞對象選擇符(Pseudo-Element Selectors)前面的單個冒號(:)修改成雙冒號(::)用以區別僞類選擇符(Pseudo-Classes Selectors),但之前的寫法仍然有效。即E:first-line可轉化爲E::first-line
E::before設置在對象前(依據對象樹的邏輯結構)發生的內容。用來和content屬性一塊兒使用,而且必須定義content屬性
E::after設置在對象後(依據對象樹的邏輯結構)發生的內容。用來和content屬性一塊兒使用,而且必須定義content屬性
E::selection//選中的元素;設置對象被選擇時的樣式。 須要注意的是,::selection只能定義被選擇時的background-color,color及text-shadow(IE11尚不支持定義該屬性)。
E::placeholder//表單中的提示信息;設置對象文字佔位符的樣式。 ::placeholder 僞元素用於控制表單輸入框佔位符的外觀,它容許開發者/設計師改變文字佔位符的樣式,默認的文字佔位符爲淺灰色。 當表單背景色爲相似的顏色時它可能效果並非很明顯,那麼就可使用這個僞元素來改變文字佔位符的顏色。 須要注意的是,除了Firefox是 ::[prefix]placeholder,其餘瀏覽器都是使用 ::[prefix]input-placeholder;Firefox支持該僞元素使用text-overflow屬性來處理溢出問題。
test:hover::after//點擊test是顯示after加的內容