css選擇器

1.CSS選擇器常見的有幾種?

  • 基礎(chǔ)選擇器
* {
    font-family: '微軟雅黑';
}

#id-selector{
    color: #333;
}

.class-selector{
    background: #f1f1f1;
}

p {
    height: 50px;
    line-height: 50px;
}
  • 組合選擇器
  • 屬性選擇器
    屬性選擇器可以根據(jù)某個(gè)屬性是否存在或?qū)傩缘闹祵ふ以?,以此來?shí)現(xiàn)功能
    例如:input[type='text'],設(shè)置input標(biāo)簽的樣式,不用另外增加class名

  • 偽類選擇器
    有時(shí)候,我們需要根據(jù)文檔結(jié)構(gòu)之外的其他條件對(duì)元素應(yīng)用樣式,例如表單元素或鏈接的狀態(tài),此時(shí)使用偽類選擇器完成

  • 偽元素選擇器

偽類和偽元素的根本區(qū)別在于:它們是否創(chuàng)造了新的元素(抽象)。從我們模仿其意義的角度來看,如果需要添加新元素加以標(biāo)識(shí)的,就是偽元素,反之,如果只需要在既有元素上添加類別的,就是偽類。而這也是為什么,標(biāo)準(zhǔn)精確地使用 “create” 一詞來解釋偽元素,而使用 “classify” 一詞來解釋偽類的原因。一個(gè)描述的是新創(chuàng)建出來的“幽靈”元素,另一個(gè)則是描述已經(jīng)存在的符合“幽靈”類別的元素。

偽類一開始單單只是用來表示一些元素的動(dòng)態(tài)狀態(tài),典型的就是鏈接的各個(gè)狀態(tài)(LVHA)。隨后CSS2標(biāo)準(zhǔn)擴(kuò)展了其概念范圍,使其成為了所有邏輯上存在但在文檔樹中卻無須標(biāo)識(shí)的“幽靈”分類。
偽元素則代表了某個(gè)元素的子元素,這個(gè)子元素雖然在邏輯上存在,但卻并不實(shí)際存在于文檔樹中。

2.選擇器的優(yōu)先級(jí)是怎樣的?

具有更特殊選擇器的規(guī)則優(yōu)先于具有一般選擇器的規(guī)則,如果兩個(gè)規(guī)則特殊性相同,那么后定義的規(guī)則優(yōu)先。

  • 從高到低分別是
    1.在屬性后面使用!important會(huì)覆蓋頁面內(nèi)任何位置定義的元素樣式
    2.作為style屬性寫在元素標(biāo)簽上的內(nèi)聯(lián)樣式
    3.id選擇器
    4.類選擇器
    5.偽類選擇器
    6.屬性選擇器
    7.標(biāo)簽選擇器
    8.通配符選擇器
    9.瀏覽器自定義

3.class 和 id 的使用場(chǎng)景?

使用class標(biāo)簽標(biāo)示頁面類型,使用ID標(biāo)示特定頁面,可以靈活控制站點(diǎn)的設(shè)計(jì)和布局

4.使用CSS選擇器時(shí)為什么要?jiǎng)澏ㄟm當(dāng)?shù)拿臻g?

主要是為了使自己定義的樣式只對(duì)當(dāng)前區(qū)塊生效,避免與他人產(chǎn)生沖突

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

1.#header{} ——選取id=header的標(biāo)簽為其添加樣式
2..header{}——選取class=header的標(biāo)簽為其添加樣式
3..header .logo{}——選取class=header的標(biāo)簽后代中 class="logo"的標(biāo)簽為其添加樣式
4..header.mobile{}——選擇class=header和mobile的元素
5..header p, .header h3{}——選擇class=header標(biāo)簽中后代為p和h3的元素
6.#header .nav>li{}——選取id=header的元素后代中class為nav元素的直接后代li元素
7.#header a:hover{}——選取id=header的元素后代中a元素為其添加鼠標(biāo)懸停時(shí)的樣式.

6.列出你知道的偽類選擇器

E:first-child ——匹配元素E的第一個(gè)子元素
E:link ——匹配所有未被點(diǎn)擊的鏈接
E:visited ——匹配所有已被點(diǎn)擊的鏈接
E:active ——匹配鼠標(biāo)已經(jīng)其上按下、還沒有釋放的E元素
E:hover ——匹配鼠標(biāo)懸停其上的E元素
E:focus ——匹配獲得當(dāng)前焦點(diǎn)的E元素
E:checked ——匹配表單中被選中的radio或checkbox元素
E:first-of-type ——匹配父元素下使用同種標(biāo)簽的第一個(gè)子元素,等同于:nth-of-type(1)
E:last-of-type ——匹配父元素下使用同種標(biāo)簽的最后一個(gè)子元素,等同于:nth-last-of-type(1)

7.:first-child和:first-of-type的作用和區(qū)別

  • :first-child匹配的是某父元素的第一個(gè)子元素,可以說是結(jié)構(gòu)上的第一個(gè)子元素,示例中顯示,即使是嵌套關(guān)系下的第一個(gè)子元素,也是會(huì)被匹配。
  • :first-of-type匹配的是某父元素下相同類型子元素中的第一個(gè),不限制是第一個(gè)子元素,只要是該類型元素的第一個(gè)就可以。

8.運(yùn)行如下代碼,解析下輸出樣式的原因。

<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>


輸出結(jié)果如上圖
.item1:first-child匹配父元素的第一個(gè)子元素,即p標(biāo)簽,aa樣式變?yōu)榧t色
.item1:first-of-type匹配父元素的第一個(gè)類型元素,p標(biāo)簽和第一個(gè)h3標(biāo)簽都被修改了樣式,加上藍(lán)色的背景顏色,第二個(gè)h3標(biāo)簽沒有改變

9.text-align: center的作用是什么,作用在什么元素上?能讓什么元素水平居中

text-align: center——讓塊級(jí)元素內(nèi)部的行內(nèi)元素(如文本和圖片)水平居中。

10.如果遇到一個(gè)屬性想知道兼容性,在哪查看?

caniuse上查看

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

相關(guān)閱讀更多精彩內(nèi)容

  • 1.class 和 id 的使用場(chǎng)景? class:類選擇器,一個(gè)標(biāo)簽可以有多個(gè)類且同一個(gè)類可以用到不同的標(biāo)簽上,...
    饑人谷_兔子君閱讀 1,278評(píng)論 0 0
  • 1,class 和 id 的使用場(chǎng)景? 1.class是類選擇器,用.class定義,定位到頁面中有相同特征的一類...
    _思銘閱讀 434評(píng)論 0 0
  • class和id的使用場(chǎng)景 class指定標(biāo)簽的類名,屬性值可出現(xiàn)在多個(gè)標(biāo)簽中。id指定標(biāo)簽的唯一標(biāo)識(shí),為某一元素...
    饑人谷_saybye閱讀 513評(píng)論 0 0
  • class 和 id 的使用場(chǎng)景? id:id選擇器,使用#name命名,一個(gè)標(biāo)簽只能有一個(gè)id且每個(gè)id只能使用...
    jamesXiao_閱讀 262評(píng)論 0 0
  • 1.class 和 id 的使用場(chǎng)景?#### class是類選擇器,選擇的是同一個(gè)類的元素;id選擇器選擇的是有...
    zhaonu閱讀 345評(píng)論 0 0

友情鏈接更多精彩內(nèi)容