最常用的選擇器類型是類型選擇器和后代選擇器.類型選擇器用來尋找特定類型的元素,比如段落或者標(biāo)題元素.有時(shí)候也被稱為元素選擇器或簡(jiǎn)單選擇器.
p{color:black}
h1{font-weight:bold}
后代選擇器可用了來尋找特定元素或元素組的后代.另外還有ID選擇器和類選擇器.ID選擇器用#替代,類選擇器用.替代.
#id{}
<p><span id="id">Harry Knowles</span></p>
.class{}
<p><span class="class">Harry Knowles</span></p>
通用選擇器
可能是所有選擇器中最強(qiáng)大卻最少使用的.作用就像通配符,它匹配所有的元素.用型號(hào)代替.最常用的操作就是去除瀏覽器的padding和margin
*{
margin: 0px;
padding: 0px;
}
子選擇器
后代選擇器可以選擇一個(gè)元素的所有后代,而子選擇器只選擇元素的直接后代,即子元素.
<div id="mu">
<p>Harry Knowles</p>
<div>
<p>Harry Knowles</p>
</div>
</div>
//對(duì)于以上的代碼,寫成子選擇器則最終背景顏色變化的只有第一個(gè)p標(biāo)簽.
#mu>p{
margin-top: 10px;
background-color: #cccc00;
}
//但是寫成這樣,也就是后代選擇器,兩個(gè)都有效
#mu p{
margin-top: 10px;
background-color: #cccc00;
}
相鄰?fù)x擇器 可以定位同一個(gè)父元素下某個(gè)元素之后的元素
直接看代碼理解
<h2>這是一個(gè)標(biāo)題</h2>
<p>Harry Knowles</p>
<p>Harry Knowles</p>
對(duì)于以上的代碼如何用相鄰?fù)x擇器讓第一個(gè)p標(biāo)簽變色呢.
h2 + p{
margin-top: 10px;
background-color: #cccc00;
}
屬性選擇器
根據(jù)某個(gè)屬性是否存在或者屬性的值來尋找元素.如果屬性有多個(gè)值,用空格分開
<h2 title="標(biāo)題">這是一個(gè)標(biāo)題</h2>
//使用屬性選擇器改變h2的背景顏色
h2[title]{
background-color: #cccc00;
}
-----------------------------------------------------華麗的分割線-----------------------------------------------------------------
第二章能看的東西就這么多.我覺得內(nèi)容太少了就把我看視頻的筆記拿出來給大家看看
下面給出屬性選擇器另外一些寫法.
*= 包含XXX
^= 首字母為xxx
$= 結(jié)束字符xxx
一個(gè)示例
<h2 title="a">這是一個(gè)標(biāo)題</h2>
<h2 title="bba">這是一個(gè)標(biāo)題</h2>
<h2 title="ab">這是一個(gè)標(biāo)題</h2>
//比如這個(gè)會(huì)使第一個(gè)h2的標(biāo)簽背景變色,其他不變,另外兩個(gè)可以試一下
h2[title~="a"]{
background-color: #cccc00;
}
結(jié)構(gòu)性偽類選擇器
first-line 某個(gè)元素的第一行
first-letter:某個(gè)元素首個(gè)字母
<p>這是第一行的內(nèi)容<br/>這是第二行</p>
//這里p元素的第一個(gè)標(biāo)簽背景會(huì)改變,第二個(gè)不變
p:first-line{
background-color: #cccc00;
}
//這里第一個(gè)p元素的第一個(gè)字符會(huì)變成紅色
p:first-letter{
color: #dc143c;
}
x:before{ //在某元素之前添加
content:
}
<ul>
<li>列表1</li>
<li>列表2</li>
<li>列表3</li>
</ul>
//這里將會(huì)在ul列表的上方添加一個(gè)"加的內(nèi)容"的文字
ul:before{
content: "加的內(nèi)容";
}
其他一些選擇器
root:綁定到頁(yè)面的根元素中 如果設(shè)置了root,那么body的作用域就只有內(nèi)容區(qū)域,反之body沾滿全屏()
not:如果想對(duì)某個(gè)結(jié)構(gòu)元素使用樣式,但想排除這個(gè)結(jié)構(gòu)下面的子結(jié)構(gòu)元素
empty:指定當(dāng)前元素中內(nèi)容為空白時(shí)使用的樣式
x代表元素名稱
x:first-child{}
x:last-child{}
x:nth-child(position){} 從上往下數(shù) 包括父級(jí)和子級(jí) position可以是數(shù)字也可以是奇偶數(shù)等等可以表示位置的詞語(yǔ)奇數(shù)(odd) 偶數(shù)(even)
x:nth-of-type(){}
x:nth-last-child(position){}從下往上數(shù)
nth-last-of-type 同上類似
這里寫出root,not,x中的第三個(gè),第四個(gè)示例.其他的一看便知.
root:
//以下的代碼將會(huì)看到整個(gè)屏幕背景是黃色,body所設(shè)置的圖片背景只會(huì)作用在<div>所占的空間
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
:root{
background-color: fuchsia;
}
</style>
</head>
<body background="1.jpg">
<div>哈嘍,root</div>
</body>
</html>
not
<div><p>哈嘍,root</p></div>
<div><h1>哈嘍,root</h1></div>
<div><h2>哈嘍,root</h2></div>
//以下代碼將會(huì)使除了p標(biāo)簽之外的其他標(biāo)簽變色
div *:not(p){
color: fuchsia;
}
**x:nth-child(position){} **
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
//以下代碼將會(huì)使第二個(gè)li標(biāo)簽也就是2的文字變色.
//PS:一開始我以為X的部分要寫ul,并且position從0開始.這里并不是,鎖著這里是有先決條件的.必須是同一個(gè)父元素下.
li:nth-child(2){
color: fuchsia;
}
x:nth-of-type(){}
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
//以下代碼將會(huì)使li標(biāo)簽中奇數(shù)li標(biāo)簽字體變色.偶數(shù)為even.這里括號(hào)的條件并不局限于奇數(shù)和偶數(shù)
li:nth-of-type(odd){
color: fuchsia;
}
選擇器的內(nèi)容大概就這些.