欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

css選擇器優(yōu)先級深入理解

  發(fā)布時間:2012-12-04 10:44:13   作者:佚名   我要評論
css基礎(chǔ)選擇器有標(biāo)簽選擇器、類選擇器、id選擇器、通用選擇器,本文將深入介紹css選擇器優(yōu)先級,這會給正在解決優(yōu)先級問題的朋友,帶來些許幫助
 一、基礎(chǔ)選擇器
css基礎(chǔ)選擇器有標(biāo)簽選擇器、類選擇器、id選擇器、通用選擇器

1.標(biāo)簽選擇器
每個html頁面都由很多個標(biāo)簽組成,通過標(biāo)簽選擇器可以對某類標(biāo)簽應(yīng)用相應(yīng)的樣式,如對p標(biāo)簽應(yīng)用下面的樣式,則頁面中所有的p標(biāo)簽都會生效

復(fù)制代碼
代碼如下:

p{ font-size:12px; color:red; background:blue; }


2.類選擇器
類選擇器是css非常常用的選擇器,在html中可以為某個標(biāo)簽增加class屬性,如

復(fù)制代碼
代碼如下:

<div class="error"> </div>

則可以為對應(yīng)的class設(shè)置樣式

復(fù)制代碼
代碼如下:

error{ width:200px; padding:5px; color:red;}

類選擇器可以復(fù)用,如對頁面中的p標(biāo)簽也可以應(yīng)用此樣式

復(fù)制代碼
代碼如下:

This is a test!

另外,一個標(biāo)簽可以有多個類選擇器,不同的值用空格隔開,這樣多個樣式便可以應(yīng)用的一個標(biāo)簽上。

3.id選擇器
id選擇器和類選擇器一樣,用的也很頻繁,但是id在每個html頁面的值必須是唯一的,所以它不可以復(fù)用,如:

復(fù)制代碼
代碼如下:

<div id="content"> </div>

這里補(bǔ)充說明下id與class的命名規(guī)范,命名時盡可能的保持名稱與表現(xiàn)形式無關(guān),如 某段提示文字顯示為紅色,可以命名為red,但是若日后改成藍(lán)色,則red名與之不對應(yīng),更好的選擇如error或tips。所以應(yīng)該根據(jù)它是什么來命名 而不是 根據(jù) 它的外觀如何來命名。

4.通用選擇器
不同于上面的三種選擇器,通用選擇器要強(qiáng)大的多,它可以對頁面中的所有html標(biāo)簽應(yīng)用樣式,當(dāng)然也正是因?yàn)槿绱藦?qiáng)大,反而限制了它的靈活性,在實(shí)際應(yīng)用中用的較少。一般簡單的css reset會用到,如:

復(fù)制代碼
代碼如下:

*{ margin:0; padding:0;}

二、組合選擇器
1.群主選擇器
在使用選擇器時,有的元素樣式是一樣的,每次都為不同的選擇器單獨(dú)定義樣式的話太繁瑣,這時我們便可以使用群主選擇器集中定義樣式。不同標(biāo)簽或類以逗號隔開。如:

復(fù)制代碼
代碼如下:

div, h2, .error{ font-size:14px; color:red;}

這樣我們便同時給div, h2, .error一起定義了樣式。
2.子選擇器
當(dāng)我們想讓父元素下的某個子元素表現(xiàn)為特定的樣式時,我們可以用子選擇器,如

復(fù)制代碼
代碼如下:

div>a{ color:blue; text-decoration:none;}

此時,div下的子元素a都將變成藍(lán)色字體,無下劃線。
3.后代選擇器
在上面的例子中,利用子選擇器,只可以設(shè)置div下的子元素a,但是若想改變div下的所有a標(biāo)簽的樣式,就需要用到后代選擇器。代碼如下:

復(fù)制代碼
代碼如下:

div a{ color:blue; text-decoration:none;}

4.同胞選擇器
除了上面的子選擇器與后代選擇器,我們可能還希望找到兄弟兩個當(dāng)中的一個,如一個標(biāo)題h1元素后面緊跟了兩個段落p元素,我們想定位第一個段落p元素,對它應(yīng)用樣式。我們就可以使用相鄰?fù)x擇器??聪旅娴拇a:

復(fù)制代碼
代碼如下:

h1 + p{font-size:14px; background:#ccc; }

三、屬性選擇器說明:以下提到的E表示元素,attr表示屬性,val表示屬性的值
1.E[attr]選擇器
匹配所有具有attr屬性的E元素,不考慮它的值。如以下代碼可以匹配所有含有title屬性的p元素。

復(fù)制代碼
代碼如下:

p[title]{font-size:12px; color:#666;}

2.E[attr=val]
匹配所有attr屬性值為val的E元素。如匹配所有class值為test的p元素

復(fù)制代碼
代碼如下:

p[class="test"]{color:red;}

3.E[attr~=val]
匹配具有attr屬性且屬性值為用空格分隔的字符列表,其中一個值等于val的E元素。如:

復(fù)制代碼
代碼如下:

p[class~="name"]{font-size:12px; color:red;}


復(fù)制代碼
代碼如下:

<div class="test name">111111</div><div class="name">111111</div>

則第一個div會應(yīng)用上面的樣式。
4.E[attr|=val]
匹配具有attr屬性且屬性值為用連接符分隔的字符串,并以val開頭的E元素。

復(fù)制代碼
代碼如下:

p[class|="test"]{font-size:12px; color:red;}
<div class="test">111111</div><div class="test-123">111111</div>

則第二個div會應(yīng)用上面的樣式。
最后不得不提的是IE6不支持子選擇器、同胞選擇器和屬性選擇器,因此使用時需注意。
css優(yōu)先級
優(yōu)先級算是css中的一個非常重要的知識點(diǎn),也是筆試面試中經(jīng)常會考到的知識點(diǎn)。
一、什么是css優(yōu)先級
css優(yōu)先級,即是指CSS樣式在瀏覽器中被解析的先后順序。
二、css優(yōu)先級規(guī)則
比較簡單易記的一種方法就是給不同選擇器分配不同的值:
1.id選擇器默認(rèn)優(yōu)先級最高,其權(quán)值為100
2.class選擇器、屬性選擇器和偽類選擇器的權(quán)值為10
3.標(biāo)簽選擇器的優(yōu)先級較低,其權(quán)值為1
所以在比較樣式的優(yōu)先級時,只需統(tǒng)計選擇符中的id、class、標(biāo)簽名個數(shù),然后把對應(yīng)的權(quán)值相加即可。根據(jù)結(jié)果便可得出優(yōu)先級高低。
1.結(jié)果較大的優(yōu)先級較高
2.結(jié)果相同,則后定義的樣式優(yōu)先級較高
3.如果樣式值中含有!important,則該值優(yōu)先級最高
舉例

復(fù)制代碼
代碼如下:

h2{color:blue;}//其權(quán)值為1
#content{color:#666;}//其權(quán)值為100p
.test{color:#ccc;}//其權(quán)值為1+10=11
#main div .test{color:red;}//其權(quán)值為100+1+10=111div
#main .left #nav{color:#000}//其權(quán)值為1+100+10+100=211

相關(guān)文章

  • CSS選擇器種類、優(yōu)先級與匹配原理詳解

    作為一個Web開發(fā)者,掌握必要的前臺技術(shù)也是很重要的特別是CSS選擇器的優(yōu)先級問題,為了廣大web愛好者可以更好的解決問題,這里就CSS選擇器的優(yōu)先級問題做了一些總結(jié)
    2013-08-01
  • CSS控制樣式的三種方式(優(yōu)先級對比驗(yàn)證)

    大家都知道,CSS的中文名叫做層疊樣式表,而CSS在控制樣式的時候,有三種引入方式,這里簡單介紹下CSS控制樣式的三種方式
    2013-07-22
  • CSS優(yōu)先級的相關(guān)知識詳細(xì)介紹

    所謂CSS優(yōu)先級,即是指CSS樣式在瀏覽器中被解析的先后順序,既然樣式有優(yōu)先級,那么就會有一個規(guī)則來約定這個優(yōu)先級,而這個“規(guī)則”就是本次所需要講的重點(diǎn)
    2013-04-22
  • 網(wǎng)頁css優(yōu)先級為您詳細(xì)解讀

    所謂CSS優(yōu)先級,即是指CSS樣式在瀏覽器中被解析的先后順序,CSS是層疊樣式表(Cascading Style Sheets)的簡稱,我們能通過CSS為文檔設(shè)置豐富且易于修改的外觀
    2013-04-19
  • css樣式優(yōu)先級及層疊的順序排序探討

    css樣式優(yōu)先級是按照樣式表中出現(xiàn)順序還是按照元素中class或者id值的聲明順序呢,這個問題貌似一直存在我們身邊卻一直無從選擇,接下來用實(shí)例為大家說明下,到底哪個高點(diǎn),
    2013-03-14
  • CSS層疊樣式表之CSS解析機(jī)制的優(yōu)先級及樣式覆蓋問題探討

    多重樣式(Multiple Styles): 如果外部樣式、內(nèi)部樣式和內(nèi)聯(lián)樣式同時應(yīng)用于同一個元素,就是使多重樣式的情況.有個例外的情況,就是如果外部樣式放在內(nèi)部樣式的后面,則
    2013-02-01
  • CSS優(yōu)先級和!important與IE6的BUG討論及解決方案

    本來我對他誰的ie6不支持!important也沒什么異議,可是正好在前幾天正好用個這個!important屬性解決了一個樣式優(yōu)先級的問題,而且是支持ie6的,這是為什么呢?到底ie6支不
    2013-01-23
  • IE6下CSS多類選擇符優(yōu)先級不起作用的bug分析及解決方法

    IE6,這個前端開發(fā)的夢魘總是在你不經(jīng)意的時候給你捅一刀,在ie6環(huán)境下CSS多類選擇符優(yōu)先級不起作用,多么的令人氣憤啊,經(jīng)過測試:IE6下這種類組合的優(yōu)先級不如單個類, 感
    2013-01-23
  • css樣式的優(yōu)先級究竟龐雜到什么程度

    css樣式的優(yōu)先級是一個龐雜的知識點(diǎn),我甚至覺得它的龐雜可以與“浮動”以及“框模型”相提并論,今天就利用點(diǎn)時間把我所了解的寫下來,大家共同進(jìn)步
    2013-01-11
  • 同級情況下CSS的優(yōu)先級探討

    CSS的調(diào)用方式一共有4種,分別是:行內(nèi)樣式,內(nèi)嵌式,link鏈接式,@import導(dǎo)入式,在同級的前提下,我們可以按樣就近原則來理解他們的優(yōu)先級,則越前定義的樣式,會被后面
    2010-07-23

最新評論