css選擇器

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

<ol>
<li>id選擇器
#div1{ }
<li>class選擇器
<li>屬性選擇器

 {
 } ```
<li>分組選擇器  (節省代碼)
``<style>
      h1,p1{
        color:red;
      }
</style>``
<li>派生選擇器(子元素選擇器)</li>
```<html><style>
    mod-box h1 {
      color:red;
    }
</style>
讓mod-box里的h1變色,外面的h1不變,選擇mod-box中所有的h1``
``<style>
    mod-box > h1 {
      color:red;
    }
</style>
讓mod-box里的h1變色,但是只在這一層級,若是里面再有一層則不選擇</html>```
***
##2.選擇器的優先級是怎樣的?
在屬性后面使用 !important
會覆蓋頁面內任何位置定義的元素樣式

作為style屬性寫在元素標簽上的內聯樣式

1.id選擇器

2.類選擇器

3.偽類選擇器

4.屬性選擇器

5.標簽選擇器

6.通配符選擇器

7.瀏覽器自定義
在一些復雜的情況下,我們會依靠權重計算。id選擇器的權值為1000,class選擇器為100,標簽選擇器為10,如果兩個選擇器權值相同則后面的樣式覆蓋前面的樣式,例如寫了兩個相同的class,給color定義了不同的顏色,會采用后面的class。
***
##3.class 和 id 的使用場景是什么?
id具有唯一性,一個頁面只能使用一次,優先級較高。
class可以普遍使用,把一些特定樣式放到一個class類中,需要此樣式的標簽,可以在添加此類。 
***
##4.使用CSS選擇器時為什么要劃定適當的命名空間?
1.提高代碼可讀性;
2.便于維護管理;
3.保持代碼的可拓展性;
4.避免結構沖突。
***
##5. 以下選擇器分別是什么意思?
```<html>
#header{ /*id選擇器,定義header的樣式*/
}
.header{/*class選擇器,定義header下所有class的樣式*/
}
.header .logo{ /*定義header下logo的樣式*/
}
.header.mobile{/*定義同時有header和mobile元素的樣式*/
}
.header p, .header h3{/*定義header下p的樣式和header下h3的樣式*/
}
#header .nav>li{/*定義header下 nav里li同層級的樣式*/
}
#header a:hover{/*定義id  header中a鏈接的偽類*/
}```
***
##6.列出部分偽類選擇器
<ul><li>E:first-child   匹配元素E的第一個子元素
<li>E:active    匹配鼠標已經其上按下、還沒有釋放的E元素
<li>E:hover 匹配鼠標懸停其上的E元素
<li>E:hover 匹配鼠標懸停其上的E元素
<li>E:disabled  匹配表單中禁用的元素
<li>E:checked   匹配表單中被選中的radio或checkbox元素
<li>E:nth-child(n)  匹配其父元素的第n個子元素,第一個編號為1
<li>E:first-of-type 匹配父元素下使用同種標簽的第一個子元素,等同于:nth-of-type(1)
<li>E:last-of-type  匹配父元素下使用同種標簽的最后一個子元素,等同于:nth-last-of-type(1)</li></ul>
***
##7.:first-child和:first-of-type的作用和區別
<ul><li>:first-child選擇器是css2中定義的選擇器,從字面意思上來看也很好理解,就是第一個子元素。比如有段代碼:
![](http://upload-images.jianshu.io/upload_images/2399926-fa735a4fad2272c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
p:first-child  匹配到的是p元素,因為p元素是div的第一個子元素;
h1:first-child  匹配不到任何元素,因為在這里h1是div的第二個子元素,而不是第一個;
span:first-child  匹配不到任何元素,因為在這里兩個span元素都不是div的第一個子元素;
<li>:first-of-type是css3中的選擇器,相同的一段代碼:
![](http://upload-images.jianshu.io/upload_images/2399926-e0e2edb8be5e969d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
p:first-of-type  匹配到的是p元素,因為p是div的所有類型為p的子元素中的第一個;
h1:first-of-type  匹配到的是h1元素,因為h1是div的所有類型為h1的子元素中的第一個;
span:first-of-type  匹配到的是第三個子元素span。這里div有兩個為span的子元素,匹配到的是它們中的第一個。
所以,可以得出結論:
**:first-child** 匹配的是某父元素的第一個子元素,可以說是結構上的第一個子元素。
**:first-of-type** 匹配的是某父元素下相同類型子元素中的第一個,比如 p:first-of-type,就是指所有類型為p的子元素中的第一個。這里不再限制是第一個子元素了,只要是該類型元素的第一個就行了。
同樣類型的選擇器 :last-child  和 :last-of-type、:nth-child(n)  和  :nth-of-type(n) 也可以這樣去理解。</ul>
***
##8.運行如下代碼,解析下輸出樣式的原因。

![代碼](http://upload-images.jianshu.io/upload_images/2399926-c7fb5cc29bd02437.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![運行頁面](http://upload-images.jianshu.io/upload_images/2399926-5e98b3028c614041.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
第一行的aa顯示為紅色,是因為``<p class="item1">aa</p>``這行代碼是``<div class="ct">``這個類中的第一個元素,所以    
``  .item1:first-child {color: red;}``對其起作用。
"aa"和"bb"背景色為藍色,因為它們分別是"p"和"h3"的第一個元素,而"cc"是h3的第二個元素,所以此元素沒有背景色效果。
***
##9.text-align: center的作用是什么,作用在什么元素上?能讓什么元素水平居中
text-align: center
作用是使元素水平居中,作用在塊級元素上,讓塊級元素內部的行內元素水平居中。
一般用在標題里    如:   ``<h1 style="text-align:center>標題</h1>``
***
##10.如果遇到一個屬性想知道兼容性,在哪查看?
使用<a >Caniuse</a>查詢
***
**本文版權歸本人和饑人谷所有,轉載請注明來源**
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.class 和 id 的使用場景? id適用于特定的標簽,同時也可以用作lable的for屬性值 class可...
    向前沖沖的蝸牛閱讀 382評論 0 0
  • 1.class 和 id 的使用場景? class:類選擇器,一個標簽可以有多個類且同一個類可以用到不同的標簽上,...
    饑人谷_兔子君閱讀 1,211評論 0 0
  • 一,class 和 id 的使用場景? id選擇器,匹配特定id的元素。class是類選擇器,匹配class包含(...
    DeeJay_Y閱讀 381評論 0 0
  • 一、CSS選擇器常見的有幾種? 基本選擇器 通配選擇器~選擇文檔中所有的html元素,用一個*表示 元素選擇器~選...
    dengpan閱讀 977評論 0 3
  • class 和 id 的使用場景? class屬性: 指定標簽的類名,CSS操作中,把一些特定的樣式放到一個類中,...
    我要認真學前端閱讀 1,037評論 0 0