免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
CSS中!important的作用

CSS中!important的作用

 

 {*rule !important}這個css規(guī)則當今在網(wǎng)頁制作的時候的普及已經(jīng)非常流行了,以前我對它的理解就停留在‘瀏覽器是否識別階段’ 而沒有真正去研究過,可是現(xiàn)在發(fā)生了變化。眾所周知,!important這個規(guī)則對Ie6.0,Ie7.0和Firefox能寫hack,現(xiàn)在就來講解這是什么原理:
        *對于Ie系列瀏覽器都能夠識別, firefox 瀏覽器則不能識別;
         !important只有Ie7.0和firefox可以識別,但是Ie6.0不能成功應(yīng)用.

     (1)區(qū)別ie與firefox的hack為:border:2px solid #f00;*border:1px solid #f00;
     (2)區(qū)別Ie6.0 與Ie7.0、firefox的hack為:border:1px solid #f00!important;border:2px solid #f00;

     在(1)中,之所以把*放在后面是因為ff不識別*而導致只對它設(shè)置了一次border;而ie 系列進行了兩次
     border設(shè)置后,后一個屬性覆蓋了前一個屬性,故為一像素的邊框。

     在(2)中,之所以把!important放在第一個border 設(shè)置,是因為它把這次border的優(yōu)先級提高了,即使
     后面在一次甚至在N次設(shè)置border 也無效,但是Ie6.0對這個規(guī)則不接受,而導致它應(yīng)用了第二次的
     border 設(shè)置,也就是第二次覆蓋了第一次的這一原理, 并不是它不識別!important;所以它的border
     為2 像素的紅框.

這是一個簡單的應(yīng)用:
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
<style type="text/css">
div{
width:800px;
height:250px;
background-color:yellow!important;/*提升指定樣式規(guī)則的應(yīng)用優(yōu)先權(quán)*/
background-color:red;
border:3px solid #000!important;/*firefox*/
*border:5px solid #f00!important;/*Ie7.0*/
border:1px solid #000;/*Ie6.0*/
}
</style>
</head>

例一:

CSS

#box {
     color:red !important;
     color:blue;
}

HTML

<div id="Box"> 在不同的瀏覽器下,這行字的色應(yīng)該不同!</div>

          這個例子應(yīng)該是大家經(jīng)常見到的important的用法了,在IE環(huán)境下,這行字是藍色,在firefox下,為紅色,其用法不再多說了,看下一個例子。


例二:
CSS

1 #box div{
     color:red;
}
2 .important_false{
     color:blue;
}
3.important_true{
     color:blue !important;
}

HTML

<div id="Box">

    
<div class="important_false">這一行末使用important</div>
    
<div class="important_true">這一行使用了important</div>
</div>

        例二中,CSS代碼第一行設(shè)定了box里面所有div中字體色為紅色,第二行和第三行都用class重新定義了自身div的字體色為藍色,不同的是,第二行末使用important,而第三行使用了!

        默認情況下,class的優(yōu)先級小于id,所以,第二行中即使用class重定義了自身樣式,也無法生效,所以繼承父級屬性,這行字還是紅色!

        但是,第三行中,用了important提升優(yōu)先級(或看成強制重定義),所以這里的css得以生效,這行字變?yōu)榱怂{色!

        從這個例子,得以證明,
ie對important的并不是不支持!

       
那么為什么很多人都說ie不認識它呢?我想應(yīng)該是大家實戰(zhàn)中可能都沒有遇到例子中的情況:
當你想提升class的優(yōu)先級時怎么辦?

        也就是說大家可能都忽略了它的這一作用,只了解在命名為同一個元素的CSS代碼塊中,用它來提升排列順序相對靠前的代碼的優(yōu)先級(例一)!

        通過上邊兩個例子,得以總結(jié):
        important對 一個良好(或者是標準)的瀏覽器來說,不僅僅是從順序上提升代碼的優(yōu)先級,還可以用來提升class的優(yōu)先級(比如firefox),但是從IE對前者的不支持可以看出,這只是IE的一大BUG,而不能說它“不認識、不支持”!

        然而,不管怎么樣,IE的這一大BUG幫助我們解決了很多兼容性問題,這顯然不是件壞事!

        在IE中對盒模型(box-model)的解釋是有BUG的,IE6.0之前的版本會把某元素的邊框值和填充值包含在寬度之內(nèi)(而不是加在寬度值上)。例如,你可能會使用以下css來指定某個容器的尺寸:
  #box
  {
   width:100px;
   border:5px;
   padding:20px;
  }
  然后在html中應(yīng)用:
盒的總寬度在幾乎所有瀏覽器中為150像素(100像素寬度+兩條5像素的邊框+兩個20像素的填充),唯獨在IE6之前版本的瀏覽器中仍然為100像素(邊框值和填充值包含在寬度值中),使用盒模型的hack可以解決這一問題,
  #box
  {
   width:150px;        //這個是錯誤的width,所有瀏覽器都讀到了
   voice-family: \}\;      //IE5.X/win忽略了\}\后的內(nèi)容
   voice-family:inherit;
   width:100px;        //包括IE6/win在內(nèi)的部分瀏覽器讀到這句,新的數(shù)值(300px)覆蓋掉了舊的
  }
       還有更簡單的辦法如下:
  CSS:
  #box { width:150px; }
  #box div { border:5px; padding:20px; }
  HTML:
  ...

       這樣一來在任何瀏覽器中盒的總寬度都將是150像素。
  但是即使是到了最新的IE6.0依然存在浮動模型(Float-model)的問題,值得慶幸(還是悲哀?)的是我們可以用IE中一直都不支持的!important來解決這個問題。
  !important是CSS1就定義的語法,作用是提高指定樣式規(guī)則的應(yīng)用優(yōu)先權(quán)(參見:W3.org的解釋)。語法格式{ sRule!important },即寫在定義的最后面,例如:box{color:red !important;}
  假如我們定義一個這樣的樣式:
     #box{background-color: #ffffff !important; background-color: #000000;}
  那么在支持該語法的瀏覽器,如Firefox、Opera中,能夠理解!important的優(yōu)先級,背景顯示#ffffff顏色,而在IE中則顯示#000000.

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
高手總結(jié)CSS書寫技巧
div+css - Firefox和IE瀏覽器兼容問題 - 用CSS實現(xiàn)cellSpacing屬性效果
IE 7,IE6,mozilla 瀏覽器的一些兼容問題
轉(zhuǎn)收集ie7、ie6、firefox多瀏覽器css兼容收藏
收藏一個CSS書寫順序建議及CSS HACK(FF&IE兼容)
IE FireFox對CSS的不同解釋收集
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服