CSS選擇器

class 和 id 的使用場景?

當我們需要將某些元素歸為一類并賦予它們相同的樣式時采用class;
當我們希望標記某一個元素且賦予它獨有的樣式時采用id。

CSS選擇器常見的有幾種?

1、基礎選擇器;
2、組合選擇器;
3、屬性選擇器;
4、偽類選擇器;
5、偽元素選擇器。

選擇器的優(yōu)先級是怎樣的?對于復雜場景如何計算優(yōu)先級?

!important(盡可能避免使用) > 行間樣式 > id選擇器 > 類選擇器(class) > 偽類選擇器 > 屬性選擇器 > 標簽選擇器 > 通配符選擇器(*) > 瀏覽器自定義樣式

在較復雜的場景下,可以簡化為對選擇器優(yōu)先級和數(shù)量的加權,我們設:
行內樣式為a
id選擇器為b
class選擇器、屬性選擇器和偽類選擇器為c
標簽選擇器、偽元素選擇器為d
先對比a類選擇器的數(shù)量,數(shù)量較多的則優(yōu)先級高。若a類數(shù)量相等,再對比b類,以此類推。

a:link, a:hover, a:active, a:visited 的順序是怎樣的? 為什么?

a:hover必須寫在a:link和a:visited之后,a:active必須寫在其它三者之后。

因為它們都屬于偽類選擇器,優(yōu)先級是一樣的,所以誰在后面,就可以覆蓋前面的樣式。當鼠標懸停在元素上時,hover的樣式會覆蓋link和visited的樣式,而當鼠標按下時,active的樣式則會覆蓋其它三者的樣式。

以下選擇器分別是什么意思?

#header{
} //匹配某個id=header的元素

.header{
} //匹配所有class=header的元素

.header .logo{
} //匹配所有class=header的元素后代中class=logo的元素

.header.mobile{
} //匹配所有class=header且class=mobile的元素

.header p, .header h3{
} //匹配所有class=header的元素后代中所有<p>標簽內的元素和<h3>標簽內的元素

#header .nav>li{
} //匹配某個id=header的元素后代中class=nav的元素的直接子元素中所有<li>標簽內的元素

#header a:hover{
} //當鼠標懸停在某個id=header的元素后代中任意一個<a>標簽內的元素上時這個元素的樣式

#header .logo~p{
} //匹配某個id=header的元素后代中所有位于class=logo的元素之后的同級<p>標簽內的元素

#header input[type="text"]{
} //匹配某個id=header的元素后代中所有type="text"的<input>標簽內的元素

列出你知道的偽類選擇器

link //匹配未點擊的鏈接
visited //匹配點擊過的鏈接
hover //匹配鼠標懸停時的元素
active //匹配鼠標按下尚未釋放時的元素
focus //匹配獲得焦點的元素
selection //匹配用戶當前選中的元素

first-child //匹配第一個子元素
nth-child(n) //匹配第n個子元素
first-of-type //匹配使用同種標簽的第一個子元素
nth-of-type(n) //匹配使用同種標簽的第n個子元素

div:first-child、div:first-of-type、div :first-child和div :first-of-type的作用和區(qū)別 (注意空格的作用)

div:first-child
//匹配父級元素下第一個且為div的子元素

div:first-of-type
//匹配所有同級元素中的第一個div元素

div :first-child
//匹配所有div元素下的第一個子元素

div :first-of-type
//匹配所有div元素下的第一個div子元素

運行如下代碼,解析下輸出樣式的原因。

<style>
.item1:first-child{
color: red;
}
.item1:first-of-type{
background: blue;
}
</style>
<div class="ct">
<p class="item1">aa</p>
<h3 class="item1">bb</h3>
<h3 class="item1">ccc</h3>
</div>

在<style>標簽內,第一個選擇器.item1:first-child代表父級元素下第一個且class=item1的子元素,所以aa的顏色為red;第二個選擇器.item1:first-of-type代表父級元素下每個標簽類型中的第一個元素,因此aa和bb的背景顏色為blue。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.class 和 id 的使用場景? class:類選擇器,一個標簽可以有多個類且同一個類可以用到不同的標簽上,...
    饑人谷_兔子君閱讀 1,273評論 0 0
  • class 和 id 的使用場景? class寫專門的class通用和私有模塊命名,id具有唯一性且優(yōu)先級太高,用...
    好好頑閱讀 483評論 0 0
  • 1,class 和 id 的使用場景? 1.class是類選擇器,用.class定義,定位到頁面中有相同特征的一類...
    _思銘閱讀 433評論 0 0
  • class 和 id 的使用場景? id:id選擇器,使用#name命名,一個標簽只能有一個id且每個id只能使用...
    jamesXiao_閱讀 261評論 0 0
  • class 和 id 的使用場景?class指定標簽的類名, 把需要相同樣式的元素歸類于一個name下,需要此樣式...
    饑人谷_CCCLARITY閱讀 324評論 0 0

友情鏈接更多精彩內容