摘要:兄弟選擇器和相鄰選擇器的區別是相鄰選擇器只能選擇前置元素后相鄰的一個匹配元素,兄弟選擇器能夠選擇前置元素后同級的所有匹配元素。分組選擇器選擇所有的元素其基本結構是選擇出用逗號分隔的所有匹配元素。
一、CSS基本選擇器
CSS基本選擇器包括了四類:標簽選擇器、類選擇器、id選擇器、通配選擇器 1、包含選擇器 第一個選擇符名表示:包含選擇符名稱 2、子選擇器 第一個選擇符名表示:父級選擇符名稱 3、相鄰選擇器 第一個選擇符名表示:“兄”選擇符名稱 4、兄弟選擇器 第一個選擇符名表示:“兄”選擇符名稱 5、分組選擇器 其基本結構是選擇出用逗號分隔的所有匹配元素。 1、只指定屬性名 2、指定屬性名,并指定屬性值 注意:屬性值必須完全匹配 3、指定屬性名,并具有該屬性值 4、指定屬性名,并屬性值是以value開頭的 5、指定屬性名,并且屬性值是以value結束的 6、指定屬性名,并且屬性值中包含了value 7、指定屬性名,并且屬性值是value或者以value-開頭的值 E表示:元素 偽類選擇器的分類 訪問一個鏈接的順序是:link-->visited-->hover-->active 2、結構偽類 3、否定偽類 4、UI狀態偽類 5、target偽類 以上為偽類,下面的是偽元素: 偽類:用于向某些選擇器添加特殊的效果
針對同一個標簽,通過這幾種方式定義的樣式的優先級分別是:
??????通配選擇器<標簽選擇器<類選擇器/*選擇div的所有后代中的span元素*/
div span{
font-size:12px;
}
第二個選擇符名表示:被包含選擇符名稱/*選擇div的所有孩子中的span元素(父子關系)*/
div>span{
font-size:12px;
}
第二個選擇符名表示:子級選擇符名稱/*選擇div的相鄰弟弟p元素(div之后緊接著是p元素,并且是同一級)*/
div+p{
font-size:12px;
}
第二個選擇符名表示:“弟”選擇符名稱
其結構是第一個選擇器指定前面相鄰元素,后面的選擇器指定相鄰元素/*選擇div標簽后面的所有同級的p元素*/
div~p{
font-size:12px;
}
第二個選擇符名表示:“弟”選擇符名稱
其基本結構是第一個選擇器指定同級前置元素,后面的選擇器指定其后同級所有匹配元素。兄弟選擇器和相鄰選擇器的區別是:相鄰選擇器只能選擇前置元素后相鄰的一個匹配元素,兄弟選擇器能夠選擇前置元素后同級的所有匹配元素。/*選擇所有的div、p、h1元素*/
div,p,h1{
font-size:12px;
}
/*形式:E[attr][attr]...:*/
.nav a[id]{
font-size:12px; /*選擇class為nav的元素的所有子元素中,具有id屬性的a元素*/
}
.nav a[id][title]{
font-size:12px; /*選擇class為nav的元素的所有子元素中,具有id屬性和title屬性的a元素*/
}
/*形式:E[attr="value"]...:*/
.nav a[id="one"]{
font-size:12px; /*選擇class為nav的元素的所有子元素中,id屬性值為one的a元素*/
}
.nav a[class="nav first"][title]{
font-size:12px; /*選擇class為nav的元素的所有子元素中,具有title屬性,并且class屬性值為nav first的a元素*/
}
與上面唯一的不同就是屬性值不一定要完全匹配,屬性值是一個詞列表(類似于class一樣可以有多個),只要詞列表中有一個值為value就可以。/*形式:E[attr~="value"]...:*/
.nav a[class="nav first"][title]{
font-size:12px; /*選擇class為nav的元素的所有子元素中,具有title屬性,并且class屬性值為nav或first或nav first的a元素*/
}
/*形式:E[attr^="value"]...:*/
.nav a[title^="https://"]{
font-size:12px; /*選擇class為nav的元素的所有子元素中,具有title屬性,并且title屬性值以https://開頭的a元素*/
}
/*形式:E[attr$="value"]...:*/
.nav a[href$="png"]{
font-size:12px; /*選擇class為nav的元素的所有子元素中,具有href屬性,并且href屬性值以png結尾的a元素*/
}
/*形式:E[attr*="value"]...:*/
.nav a[title*="mine"]{
font-size:12px; /*選擇class為nav的元素的所有子元素中,具有title屬性,并且title屬性值包含了mine的a元素*/
}
/*形式:E[attr|="value"]...:*/
.nav img[src|="img"]{
width:200px; /*選擇class為nav的元素的所有子元素中,具有src屬性,并且src屬性值為img或以img-開頭的a元素*/
}
四、偽類選擇器
/*偽類選擇器的形式:E:pseudo-class*/
a:hover{
color:"red"
}
pseudo-class表示:偽類名稱
1、動態偽類
錨點偽類:
???:link
???:visited
行為偽類:
???:hover
???:active
???:focus:first-child:選擇某個元素的第一個子元素
:last-child:選擇某個元素的最后一個子元素
:nth-child(n):選擇某個元素的第n個子元素
:nth-last-child(n):從后往前數,選擇某個元素的第n個子元素
:nth-of-type():選擇指定的元素,e.g: div:nth-of-type("p")
:nth-last-of-type():從后往前數,選擇指定的元素
:first-of-type():選擇一個上級元素下的第一個同類子元素
:last-of-type():選擇一個上級元素下的最后一個同類子元素
:only-child:選擇的元素是它的父元素的唯一一個子元素
:only-of-type:選擇一個元素是它的上級元素的唯一一個相同類型的子元素
:empty:選擇的元素里面沒有任何內容
:not():過濾掉特定元素 e.g: input:not([type="submit"]){}:enabled:被用來指定當元素處于可用狀態時的樣式
:disabled:被用來指定當元素處于不可用狀態時的樣式
:read-only:被用來指定當元素處于只讀狀態時的樣式
:read-write:被用來指定當元素處于非只讀狀態時的樣式
:cehcke:被用來指定當表單中的radio單選框或者是checkbox復選框處于選取狀態時的樣式
:required:元素具有required屬性
:target:匹配文檔(頁面)的URI中某個標志符的目標元素
偽元素:用于向某些選擇器設置特殊效果
上面的兩個概念看了之后肯定會一臉懵逼,這不還是一樣的嗎?下面介紹下兩者的區別:
1、偽類主要是為了給某些元素添加一些特殊效果,如a標簽的link、visited偽類等;而偽元素則是創建了一個虛擬容器,這個容器不包含任何DOM元素,但是可以包含內容,并設置其樣式。
2、可以同時使用多個偽類,而只能同時使用一個偽元素
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/113161.html
摘要:最基本的選擇器是元素選擇器比如選擇器比如還有類選擇器比如。選擇器和類選擇器在速度上的差異基本上沒有關系。現在我們回到討論開始的地方,哪類選擇器是最高效的哪個是會影響選擇器效率的關鍵選擇器寫代碼的時候,關鍵選擇器是能否高效的決定因素。 高效的CSS已經不是一個新的話題了,也不是我一個非得重拾的話題,但它卻是我在工作之時,所感興趣的,關注已久的話題。 有很多人都忘記了,或在簡單的說沒有意識...
摘要:最基本的選擇器是元素選擇器比如選擇器比如還有類選擇器比如。選擇器和類選擇器在速度上的差異基本上沒有關系。現在我們回到討論開始的地方,哪類選擇器是最高效的哪個是會影響選擇器效率的關鍵選擇器寫代碼的時候,關鍵選擇器是能否高效的決定因素。 高效的CSS已經不是一個新的話題了,也不是我一個非得重拾的話題,但它卻是我在工作之時,所感興趣的,關注已久的話題。 有很多人都忘記了,或在簡單的說沒有意識...
摘要:不要在編寫規則時用標簽名或類名不要在編寫規則時用標簽名把多層標簽選擇規則用規則替換,減少查找避免使用子選擇器后代選擇器在中是最昂貴的選擇器。如果你關心頁面性能的話,他們真不該被使用擴展閱讀前端面試題選擇器前端面試題優先級 一、CSS選擇符 CSS選擇符由一些初始化參數組成,這些參數指明了要應用這個CSS規則的頁面元素。 作為一個網站的前端開發工程師,應該避免編寫一些常見的開銷很大的CS...
摘要:不要在編寫規則時用標簽名或類名不要在編寫規則時用標簽名把多層標簽選擇規則用規則替換,減少查找避免使用子選擇器后代選擇器在中是最昂貴的選擇器。如果你關心頁面性能的話,他們真不該被使用擴展閱讀前端面試題選擇器前端面試題優先級 一、CSS選擇符 CSS選擇符由一些初始化參數組成,這些參數指明了要應用這個CSS規則的頁面元素。 作為一個網站的前端開發工程師,應該避免編寫一些常見的開銷很大的CS...
閱讀 2486·2021-10-19 11:45
閱讀 2464·2021-09-30 09:56
閱讀 1432·2021-09-30 09:47
閱讀 591·2019-08-30 15:53
閱讀 1834·2019-08-30 15:44
閱讀 584·2019-08-30 12:52
閱讀 1084·2019-08-30 11:16
閱讀 1605·2019-08-29 16:36