## CSS選擇器
# 標簽選擇器
# id選擇器
# 類選擇器
# 后代選擇器
# 子元素選擇器
# 交集選擇器
# 并集選擇器
# 兄弟選擇器(相鄰兄弟選擇器/通用兄弟選擇器)
# 序選擇器(CSS3中最具代表性)
# 屬性選擇器
# 通配符選擇器
# 偽元素選擇器
標簽選擇器
1.什么是標簽選擇器?
作用:根據指定的標簽名稱,在當前界面中找到所有該名稱的標簽,然后設置屬性
2.格式:
標簽名稱{
屬性: 值;
}
注意點:
1.標簽選擇器選中的是當前界面中所有的標簽,而不能單獨選中某一個標簽
2.標簽選擇器無論藏得多深都能被選中
3.只要是HTML中的標簽就可以作為標簽選擇器
id選擇器
1.什么是id選擇器?
作用:根據指定的id名稱找到對應的標簽,然后設置屬性
格式:
#id名稱{
屬性: 值;
}
注意點:
1.每個HTML標簽都有一個屬性叫做id,也就是說每個標簽都可以設置id
2.在同一個界面的id名稱是不可以重復的
3.在編寫id選擇器時一定要在id名稱前面加上#
4
id的名稱是有一定的規范的
4.1.if的名稱只能由字母/數字/下劃線組成
4.2.id名稱不能以數字開頭
4.3id名稱不能是HTML標簽的名稱
4.4在企業開發中一般情況下如果僅僅是為了設置樣式,我們不會使用id,因為前端開發中是留給js使用的
類選擇器
什么是類選擇器?
作用:根據指定的類名稱找到對應的標簽,然后設置屬性
格式:
.類名稱{
屬性: 值;
}
注意點:
1.每個HTML標簽都有一個屬性叫做class,也就是說每個標簽都可以設置class
2.在同一個界面的class名稱是可以重復的
3.在編寫class選擇器時一定要在class名稱前面加上.
4.類名的命名規范和id名稱的命名規范一樣
5.類名解釋專門用來給某個特定的標簽設置樣式的
6.在HTML中每個標簽可以同時綁定多個類名
格式:
<標簽名稱 class=“類名1 類名2 類名3”>
錯誤寫法
id和class的區別?
1.1
id相當于人的身份證不可以重復
class相當于人的名稱可以重復
1.2
一個HTML標簽只能綁定一個id名稱
一個HTML表圈可以綁定多個class名稱
2.id選擇器是以#開頭
class選擇器以.開頭
3.在企業開發中到底使用id選擇器還是用class選擇器
id選擇器一般是給js用的,除非特殊情況,否則不要用id去設置樣式
4.在企業開發中一個開發人員對類的使用可以看出這個開發人員的技術水平
后代選擇器
什么是后代選擇器?
-作用:找到指定標簽的所有特定的后代標簽,設置屬性
-格式:
標簽名稱1 標簽名稱2{
屬性: 值;
}
先找到名稱叫做標簽名稱1的標簽,然后再在這個標簽下面去查找所有名稱叫做標簽名稱2的標簽,然后再設置屬性
-注意點:
1.后代選擇器必須用空格隔開
2.后代不僅僅是兒子,也包括孫子/重孫子.只要最終是放到指定標簽中的都是后代
3.后代選擇器不僅僅可以使用標簽名稱還可以使用其他選擇器
子元素選擇器
什么是子元素選擇器?
-作用:找到所有標簽中特定的直接子元素,然后設置屬性
-格式:
標簽名稱1>標簽名稱2{
屬性: 值;
}
先找到名稱叫做”標簽名稱1”的標簽,然后再這個標簽中找到所有的直接子元素名稱叫做”標簽名稱2”的元素
-注意點:
1.子元素選擇器只會查找兒子,不會查找其他被嵌套的標簽
2.子元素選擇器,之間需要用>連接,而且不能有空格
3.子元素選擇器不僅僅可以使用標簽名稱還可以用其他選擇器
4.子元素選擇器可以通過>符號一直延續下去
1.后代選擇器和子元素選擇器之間的區別?
1.1
后代選擇器使用空格作為連接符號
子元素選擇器使用>作為連接符號
1.2
后代選擇器會選中指定標簽中,所有的特定后代標簽
子元素選擇器只會選中指定標簽中,所有的特定直接標簽
2.后代選擇器和子元素選擇器之間的共同點
2.1
后代選擇器和子元素選擇器都可以使用標簽名稱/id名稱/class名稱來作為選擇器
2.2
后代選擇器和子元素選擇器都可以通過各自的連接符號一直延續下去
3.在企業開發中如何選擇
交集選擇器
什么是交集選擇器?
-作用:給所有選擇器選中的標簽中,相交的那部分標簽設置屬性
-格式:
選擇器1選擇器2{
屬性: 值;
}
-注意點:
1.選擇器1和選擇器2之間沒有任何的連接符號
2.選擇器可以使用標簽的名稱/id名稱/class名稱
3.交集選擇器僅僅作為了解,企業開發中用的并不多
并集選擇器
什么是并集選擇器?
-作用:給所有選擇器選中的標簽設置屬性
格式:
選擇器1,選擇器2{
屬性: 值;
}
注意點:
1.并集選擇器必須使用,來連接
2.2.選擇器可以使用標簽的名稱/id名稱/class名稱
兄弟選擇器
1.相鄰兄弟選擇器 CSS2
-作用:給指定選擇器后面[緊跟]的那個選擇器選中的標簽設置屬性
格式:
選擇器1+選擇器2{
屬性: 值;
}
注意點:
1.相鄰兄弟選擇器必須通過+連接
2.相鄰兄弟選擇器只能選中緊跟其后面的那個標簽,不能選中被隔開的標簽
2.通用兄弟選擇器 CSS3
-作用:給指定的選擇器后面的所有選擇器選中的所有標簽都設置屬性
-格式:
選擇器1~選擇器2{
屬性: 值;
}
-注意點:
1.通用兄弟選擇器必須用~連接
2.通用兄弟選擇器選中的是指定選擇器后面某個選擇器選中的標簽后面的所有標簽
序選擇器(CSS3中新增的選擇器中最具代表性)
1.同級別的第幾個
:first-child 選中同級別中的第一個標簽
:last-child 選中同級別中的最后一個標簽
:nth-child(n) 選中同級別中的第n個標簽
:nth-last-child(n) 選中同級別中的倒數第n個標簽
:only-child 選中父元素中唯一的子元素
:nth-child(odd) 奇數 選中同級別中的所有奇數個標簽
:nth-child(even) 偶數 選中同級別中的所有偶數個標簽
:nth-child(xn+y) 選中同級別中的所有的用戶自定義的(xn+y)個標簽
x和y是用戶自定義的,而n是一個計數器,從0開始遞增 有多少個標簽n就遞增多少次
注意點:不區分類型
2.同類型的第幾個
:first-of-type 選中同級別中同類型的第一個標簽
:last-of-type 選中同級別中同類型的最后一個
:nth-of-type(n) 選中同級別中同類型的第n個標簽
:nth-last-of-type(n) 選中同級別中同類型的倒數第n個標簽
:only-of-type 選中父元素中唯一類型的某個標簽
屬性選擇器
什么是屬性選擇器?
作用: 根據指定的屬性名稱找到對應標簽,然后設置屬性
格式:
[attribute]
作用:根據指定的屬性名稱找到對應的標簽,然后設置屬性
[attribute=value]
作用:找到有指定屬性,并且屬性的取值等于value的標簽,然后設置屬性
最常見的應用場景,就是用于區分input屬性
1.屬性的取值是以什么開頭的
[attribute|=value] CSS2
[attribute^=value] CSS3
兩者之間的區別:
CSS2中的只能找到value開頭并以-和其他內容隔開的標簽,而CSS3可以找到以value開頭的所有標簽
2.屬性的取值是以什么結尾的
[attribute$=value]? CSS3
3.屬性的取值是否包含某個特定的值的
[attribute~=value] CSS2
[attribute*=value] CSS3
兩者之間的區別:
CSS2中的只能找到獨立的單詞,也就是說value用空格和其他內容隔開的標簽,而CSS3可以找到包含value的所有標簽
通配符選擇器
什么是通配符選擇器?
-作用:給當前界面上所有的標簽設置屬性
-格式:
*{
屬性: 值;
}
-注意點:
由于通配符是設置界面上所有的標簽的屬性,所以在設置前會遍歷所有的標簽,如果當前界面上的標簽比較多,那么性能會比較差,所以企業開發中一般不會使用通配符選擇器
1.什么是偽元素選擇器?
偽元素選擇器作用就是給指定標簽的內容前面添加一個子元素或者給指定標簽的內容后面添加一個子元素
格式:
給指定標簽的內容前面添加一個子元素
標簽名稱::before {
屬性名稱:值;
}
給指定標簽的內容后面添加一個子元素
標簽名稱::before {
屬性名稱:值;
}