成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入剖析CSS層疊與繼承的使用

開發 前端
本文向大家描述一下CSS層疊與繼承的概念和用法,文檔中的一個元素可能同時被多個CSS選擇器選中,每個選擇器都有一些CSS規則,這就是層疊。

你對CSS層疊和繼承的概念和用法你是否熟悉,這里和大家分享一下,文檔中的一個元素可能同時被多個CSS選擇器選中,每個選擇器都有一些CSS規則,這就是層疊,而所謂繼承,就是父元素的規則也會適用于子元素。

CSS技術理論:CSS層疊與繼承

一、CSS層疊

  我們知道文檔中的一個元素可能同時被多個CSS選擇器選中,每個選擇器都有一些CSS規則,這就是CSS層疊。這些規則有可能不矛盾的,自然這些規則將會同時起效,然而有些規則是相互沖突的,例如:

 Example Source Code

  1. <html xmlns="http://www.w3.org/1999/xhtml"> 
  2. <head> 
  3.     <title>CSS Cascadetitle> 
  4.     <style type="text/CSS"> 
  5.     h1{color:Red;}  
  6.     body h1{color:Blue;}  
  7.     style> 
  8. head> 
  9. <body> 
  10. <h1>Hello 52CSS.comh1> 
  11. body> 
  12. html> 
  13.  

   為此需要為每條規則制定特殊性,當發生沖突的時候必須選出一條***特殊性的規則來應用。CSS規則的特殊性可以用4個整數來表示,例如0,0,0,0.計算規則如下:

◆對于規則中的每個ID選擇符,特殊性加0,1,0,0

◆對于規則中每個類選擇符和屬性選擇符以及偽類,特殊性加0,0,1,0

◆對于規則中的每個元素名或者偽元素,特殊性加0,0,0,1

◆對于通配符,特殊性加0,0,0,0.

◆對于內聯規則,特殊性加 1,0,0,0

  最終得到結果就是這個規則的特殊性。兩個特殊性的比較類似字符串大小的比較,是從左往右依次比較,***個數字大的規則的特殊性高。上例中兩條規則的特殊性分別是0,0,0,1 和 0,0,0,2,顯然第二條勝出,因此最終字是藍色的。
  注意,通配符的特殊性0,0,0,0看起來沒有作用,實際上不是,還有一種沒有特殊性的規則,0,0,0,0要比沒有特殊性更特殊,下面會介紹。

  CSS還有一個!important標簽,用來改變CSS規則的特殊性。實際上,在解析CSS規則特殊性的時候,是將具有!important的規則和沒有此標簽的規則利用上述方法分別計算特殊性,分別選出特殊性***的規則。最終合并的時候,具有任何特殊性的帶有!important標記的規則勝出。#p#

二、CSS繼承

  所謂CSS繼承,就是父元素的規則也會適用于子元素。比如給body設置為color:Red;那么他內部的元素如果沒有其他的規則設置,也都會變成紅色。CSS繼承得來的規則沒有特殊性。下面看一個簡單的例子:

 Example Source Code

  1. <html xmlns="http://www.w3.org/1999/xhtml"> 
  2. <head> 
  3.     <title>CSS Cascadetitle> 
  4.     <style type="text/CSS">   
  5.      *{color:Blue;}  
  6.      div{color:Black;}  
  7.      .imp{color:Red !important;}  
  8.      #content{color:Green;}     
  9.     style> 
  10. head> 
  11. <body> 
  12.  <div>Hello <span>52CSS.comspan> div> 
  13.  <div id="content"> 
  14.     <p class="imp">Titlep> 
  15.     Content Goes Here.  
  16.  div> 
  17. body> 
  18. html>   

  注意,***行的CSS并沒有繼承div的黑色,這是因為通配符的緣故。通配符的特殊性雖然是全0,但是還是比繼承的特殊性要高。第二行展示了!important標記的作用。
  另外,一些明顯不應該繼承的屬性,比如border,margin,padding之類的是不會被CSS繼承的,具體可以參考CSS手冊。

三、其他

  雖然有4個整數來表示一個特殊性,仍然有可能出現兩條沖突的規則的特殊性完全一致的情況,此時就按照CSS規則出現的順序來確定,在樣式表中***一個出現的規則勝出。一般不會出現這樣的情況,只有一個情況例外,考慮如下樣式表:

 Example Source Code  

  1. :active{color:Red;}  
  2. :hover{color:Blue;}  
  3. :visited{color:Purple;}  
  4. :link{color:Green;}      
  5.  

  這樣頁面中的鏈接永遠也不會顯示紅色和藍色,因為一個鏈接要么被訪問過,要么沒有被訪問過。而這兩條規則在***,因此總會勝出。如果改成這樣:

 Example Source Code 

  1. :link{color:Green;}    
  2. :visited{color:Purple;}  
  3. :hover{color:Blue;}  
  4. :active{color:Red;}  
  5.  

  就能實現鼠標懸停和點擊的瞬間變色的效果。這樣的順序的首字母正好連成 “LoVe HA”,這樣的順序被約定俗成的叫做Love Ha 規則。特殊性規則從理論上講比較抽象和難懂,但在實踐中,只要樣式表是設計良好的,并不會有太多這方面的困擾,因此本文也不再做深究,更多的技術請參考51cto.com的文章更新!
 

【編輯推薦】

  1. CSS層疊與繼承用法手冊
  2. 解析Flex中CSS層疊樣式表的應用方法
  3. 全面解析CSS優先級規則
  4. 專家推薦 10款優秀CSS框架
  5. 實例解析清除CSS float浮動的三種方法

 

 

責任編輯:佚名 來源: 52css.com
相關推薦

2010-08-27 09:19:32

CSS層疊繼承

2010-08-31 10:17:52

CSSmargin邊界疊加

2010-09-06 12:32:10

CSS偽元素

2010-08-16 13:39:18

DIV+CSS

2010-09-13 13:21:29

CSS排版

2010-08-17 14:05:48

Div+CSS

2010-09-07 13:40:02

DIV標簽

2010-09-02 10:12:34

CSS導航

2025-02-24 08:00:00

線程池Java開發

2010-08-16 10:25:23

DIVSPAN

2010-09-06 09:22:26

CSS語法

2010-09-15 15:27:06

CSS hack

2010-10-08 14:19:34

JavaScript split()

2024-04-26 08:27:15

JavaScriptCSSHTML元素

2009-12-01 17:00:49

PHP變量

2015-10-09 09:43:28

CSS CSS3

2023-07-14 07:52:37

CSS優先級Design

2025-06-16 09:46:06

2010-01-14 19:34:09

云計算IBMRational

2010-09-13 09:17:27

DIV頁面
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品亚洲成在人线av网址 | 久久久久国产一区二区三区四区 | 日本又色又爽又黄又高潮 | 国产激情免费视频 | 国色天香综合网 | 国内91在线| 网站黄色在线 | 久久久2o19精品 | 国产激情视频网 | 国产精品永久 | 国产乱码精品一区二区三区五月婷 | 日韩和的一区二区 | 农村黄性色生活片 | 久久综合亚洲 | 高清人人天天夜夜曰狠狠狠狠 | 99精品久久久久久久 | 一区二区三区欧美在线观看 | 久久人人爽人人爽 | 亚洲国产专区 | 成人欧美在线 | 天天亚洲| 成人免费xxxxx在线视频 | 日韩中文在线 | 国产剧情一区 | 国产精品国产三级国产aⅴ原创 | 欧美一级二级视频 | 91视视频在线观看入口直接观看 | 亚欧午夜 | 国产一区二区免费 | www.亚洲成人网 | 一级欧美一级日韩片免费观看 | 先锋资源站 | 国产欧美日韩在线观看 | 久久久久久久久久久成人 | 日韩精品免费在线观看 | 国产激情偷乱视频一区二区三区 | 99国产视频 | 亚洲一级二级三级 | 久久久久久国产 | 日韩三级一区 | 婷婷久久综合 |