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