CSS通過選擇符來選擇某個對象,并對其進行修飾。
選擇符的類別很多朴译,我們究竟應該在編寫程序時如何篩選,我之前在這里列舉了幾條基本需要注意的事項属铁。
-
元素選擇符
作用的范圍是html標記
a{……}
div{……}
p{……}
-
類選擇符
可以作用于一個或多個元素眠寿,使得這些元素有相同的樣式。
.red{……}
.blink{……}
.but1{……}
使用前提焦蘑,需要為html元素進行標記class屬性
<a class="red" src="……">……</a> -
id選擇符
作用于網(wǎng)頁中具有唯一標識的元素盯拱。
#red{……}
#blink{……}
#but1{……}
使用前提,需要為html元素進行標記id屬性
<a id="red" src="……">……</a>
—總結(jié):以上三個是最基本的選擇符例嘱,其作用的優(yōu)先級是:
id>類>tag標簽
但是這三個都小于內(nèi)聯(lián)樣式<a style="……" id="red" src="……">……</a>
—注意:id本身是唯一標識的狡逢,class是將一個樣式作用于很對對象。
但是在區(qū)分意識不強的情況下拼卵,有些人可能會這樣
按照理論來說奢浑,瀏覽器應該只識別第一個標識id的,但是剛剛的代碼腋腮,我在瀏覽器內(nèi)分別作了測試后雀彼,發(fā)現(xiàn)瀏覽器對這兩個元素均進行了渲染,但是當我在js內(nèi)寫腳本
document.getelementByID('q').style
進行設置時即寡,發(fā)現(xiàn)js解釋器只找到了第一個徊哑。
通配選擇符
作用于所有html標簽,缺點呢聪富,這里寫過实柠,不贅述啦
*{……}
—注意:
//使用通配符,會改變<h1>的大小
*{font-size: 14px;}
<body><h2>dddd</h2></div>
//在body內(nèi)定義善涨,雖然會繼承窒盐,不會改變<h1>的大小
body{font-size: 14px;}
<body><h2>dddd</h2></div>后代選擇符
<div>111<p>11<span>1</span></p></div>
div span{……}
發(fā)現(xiàn)div與span內(nèi)有一個或多個空格,span并不是div的直接子元素钢拧,而是孫子輩的蟹漓。當時不是不接受兒子輩的。子元素選擇符
<div>111<p>11<span>1</span></p></div>
div span{……}
div>p{……}//子元素選擇器
對比后代元素選擇器源内,通過>
號來制定父子關系
—注意:推薦使用子元素選擇符葡粒,原因份殿,猛戳這里
選擇符分組
將每個選擇符用,
分隔開,{}內(nèi)的樣式作用于前面的每個選擇器的選擇結(jié)果
p,.red,h1{……}標簽制定式選擇符
p.red{……}//類為red中的p標簽組合選擇符
p .red #big{……}
仔細看之間沒有逗號嗽交,只是空格卿嘲,意思是為id為big,且他包含在類為red的元素內(nèi)夫壁,并且這個類也包含在p標簽內(nèi)拾枣。偽類選擇符
a:hover{……}
這里有詳細的介紹偽類。
—總結(jié):以上是用的比較多的選擇器盒让。相鄰兄弟選擇符
選擇緊鄰在另一個元素后的元素梅肤,而且二者有相同的父元素,可以使用相鄰兄弟選擇器邑茄。
h1 + p {margin-top:50px;}//中間是加好姨蝴,不太好記
意思是選擇一個段落p,且緊鄰他的上級兄弟元素為h1偽元素選擇符
:first-line 偽元素
用于向文本的首行設置特殊樣式肺缕。
p:first-line {color:#ff0000; }:first-letter 偽元素
用于向文本的首字母設置特殊樣式,作用于塊級元素左医。
p:first-letter {color:#ff0000; }
偽元素可以與其他偽元素綜合使用,也可以和其他選擇器一起使用同木。
以上文本修飾的文元素的優(yōu)先級還是挺高的炒辉,大于id度液、大于內(nèi)聯(lián)拥峦。而且二者相比,-letter又大于-line觉壶。:before 偽元素
在元素的內(nèi)容前面插入新內(nèi)容:after偽元素:
在元素的內(nèi)容后面插入新內(nèi)容
h1:before
{
content:url(logo.gif);
}
這個的前后面指的是這樣的
<h1><img src="" />是在我內(nèi)容的前面插入</h1>屬性選擇符
選擇有某個屬性的元素斩萌。
[title]{color:red;}
標簽內(nèi)具有屬性的title的元素缝裤。