總結現在的互聯網前端三層:
HTML???? 超文本標記語言??? 從語義的角度描述頁面結構。
CSS??????? 層疊式樣式表?????? 從審美的角度負責頁面樣式。
JS?????????? JavaScript???????????? 從交互的角度描述頁面行為。
一、CSS基本語法
CSS: cascading style sheet:層疊式樣式表
css可以寫在單獨的文件里,也可以寫在style標簽里(head中)。
<style type=”text/css”>
? ? ? xx{
? ? ? ? ? color:red;
? ? ? ? ? font-size:14px;
? ? ? }
</style>
二、CSS常見屬性
字符顏色:color? 可以是red\blue等自帶屬性,也可以是rgb,16進制等。? sublime快捷生成:c
字號大小:font-size 單位:像素? ?sublime快捷生成:fos
背景顏色:background-color? sublime快捷生成:bgc
加粗/不加粗: font-weight:bold/normal? ?sublime快捷生成:fwb/fwn
斜體/不斜體;font-style:italic/normla??sublime快捷生成:fsi/fsn
下劃線/無下劃線:text-decoration:underline/none? sublime快捷生成:tdu/tdn
三、基礎選擇器
3.1 標簽選擇器
所有的標簽都可以是選擇器,例如ul\li\label\dt\dl\input,并且全局通用,即選擇的是頁面上所有這種類型的標簽,用于描述該類標簽的共性。
3.2 id選擇器
任何的html標簽都可以有id屬性,表示這個標簽的唯一標識。命名遵循命名法,一個html頁面不能出現相同的id
一個標簽可以被多個css選擇器選擇,這就是“層疊式“的第一層含義
3.3 類名選擇器
class 屬性與id屬性非常相似,區別就是class屬性可以重復,即多個標簽可以屬于一個類。代表對一整類的標簽進行統一修改,css中用 “.”來表示類
一個標簽 可能同時屬于多個類,用空格隔開。
要用公共類的思想設計類。盡可能的用class極特殊情況用id(id會與后臺交互時產生溝通成本,因為類關聯樣式,id關聯行為)
四、高級選擇器
4.1 后代選擇器
表示一個父標簽內 所有子標簽的共性。
? <styletype="text/css">
? ? ? ? ?.div1 p{? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? color:red;
? ? ? ? ? }??????
</style>
<divclass="div1">
<ul>
? ? ?<li>
? ? ? ? ?<p>段落</p>
? ? ? ? <p>段落</p>
? ? ? ? <p>段落</p>
? ? ?</li>
</ul>??????
</div>
其中 空格可以多次出現。例如:
.div1 .li2 p{
? ? ? ? color:red;?????? ?????
}
后代選擇器,描述的是一種祖先結構。就是一種平衡:共性、特性的平衡。當要把某一個部分的所有的什么,進行樣式改變,就要想到后代選擇器。
4.2 交集選擇器
交集選擇器,意思就是一個選擇器可以設置在兩個標簽的交集標簽中。這個寫法是IE7開始兼容的
?h3.special{
? ? ? ? ? ?color:red;
}
交集選擇器可以取連續交集(一般不要這么寫)
h3.special.zhongyao{
? ? ? ? color:red;
}
交集選擇器,我們一般都是以標簽名開頭,比如div.haha? 比如p.special。
4.3 并集選擇器?
用逗號表示
h3,li{
? ? ? ? color:red;
}
4.4 通配符
* 表示所有元素,效率不高,標簽多的情況下基本上沒什么效率了,所以基本不可能這么用
*{
? ? ?color:red;
}
五、其他選擇器(CSS3選擇器)
5.1 兒子選擇器
父標簽的直屬標簽可用。IE7開始兼容,IE6不兼容。
div>p{
? ? ? ? ?color:red;
}
5.2 序選擇器
選擇某一組標簽中的某個標簽。IE8開始兼容
例子:選擇ul下的li中第一個
?<styletype="text/css">
? ? ? ? ?ul li:first-child{
? ? ? ? ? ? ? ? ? color:red;
? ? ? ? ?}??????
</style>
5.3 下一個兄弟選擇器
+,表示下一個兄弟。IE7開始兼容
<styletype="text/css">??
? ? ? ? ?h3+p{
? ? ? ? ? ? ? ? ?color:red;
? ? ? ? ? ? ? ? }??????
</style>
六、CSS的繼承性和層疊性
6.1 繼承性
當給父標簽設置某些屬性后,后代所有標簽都繼承了這些屬性,這就是繼承性。
可繼承屬性:
color、text開頭、line開頭的、font開頭 等關于文字樣式的
6.2 層疊性
層疊性:CSS處理沖突的一種能力。
CSS中是有先后順序的,先表明的屬性值會被后表明的屬性層疊掉,也就是說被覆蓋了。
當不同選擇器作用在同一個標簽上時(選中到標簽時),優先權重為:id選擇器數量 > 類選擇器數量 > 標簽選擇器數量,若權重相同,則按先后順序表明,當使用并集選擇器時需要拆開計算 不能合起來計算權重。
通過繼承來的時候(不直接選中某個元素),權重是0,當大家都是0時 遵循就近原則:誰描述的近聽誰的、
特例:當兩個權重都是0,且根據就近原則一樣近時,則繼續比較權重,若權重一樣則繼續按先后順序。
當使用!important標記時,來給一個屬性提高權重:k:v !important
一般來說不允許使用,因為會讓CSS寫的很亂。
注意:
1.!important提升的是一個屬性 而不是一個選擇器。
2.!important無法提升繼承的權重,原本是0則還是0
3.!important當權重都是0時,無法影響就近原則。