IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁網(wǎng)絡(luò)編程DIVCSS → 常用CSS書寫技巧

常用CSS書寫技巧

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  不同的瀏覽器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,對CSS的解析認(rèn)識不一樣,因此會導(dǎo)致生成的頁面效果不一樣,得不到我們所需要的頁面效果。這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能夠同時兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。這個針對不同的瀏覽器寫不同的CSS code的過程,就叫CSS hack,也叫寫CSS hack。

  由于不同的瀏覽器對CSS的支持及解析結(jié)果不一樣,還由于CSS中的優(yōu)先級的關(guān)系。我們就可以根據(jù)這個來針對不同的瀏覽器來寫不同的CSS。

  比如 IE6能識別下劃線"_"和星號" * ",IE7能識別星號" * ",但不能識別下劃線"_",而firefox兩個都不能認(rèn)識。等等

  書寫順序,一般是將識別能力強的瀏覽器的CSS寫在后面。下面列舉常用的CSS hack方法

  1:!important

  !important作用是提高指定樣式規(guī)則的應(yīng)用優(yōu)先權(quán)。

  IE7以及所有標(biāo)準(zhǔn)瀏覽器能識別!important

  區(qū)別IE6與IE7與其他瀏覽器

.browserTest
{
    border:20px solid #60A179 !important;
    border:20px solid #00F;
}

  在Mozilla中或者IE7瀏覽時候,能夠理解!important的優(yōu)先級,因此顯示#60A179的顏色:

  在IE6中瀏覽時候,不能夠理解!important的優(yōu)先級,因此顯示#00F的顏色:

  2:*

  IE都能識別*;標(biāo)準(zhǔn)瀏覽器(如火狐)不能識別*

  區(qū)別IE6與火狐

.browserTest
{
    border:20px solid #60A179;
    *border:20px solid #00F;
}

  區(qū)別IE7與火狐

.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F;
}

  區(qū)別IE7,IE6與火狐

.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F !important;
   *border:20px solid ###;
}

  3:_

  IE6支持下劃線,IE7和firefox均不支持下劃線

  區(qū)別IE7,IE6與火狐

.browserTest
{
   border:20px solid #60A179;
   *border:20px solid #00F;
   _border:20px solid ###;
}

  /*不管是什么方法,書寫的順序都是firefox的寫在前面,IE7的寫在中間,IE6的寫在最后面*/

  4:*+html 與 *html

  *+html 與 *html 是IE特有的標(biāo)簽, firefox 暫不支持.而*+html 又為 IE7特有標(biāo)簽

  .browserTest { width: 120px; }      /* FireFox fixed */

  *html .browserTest { width: 80px;}  /* ie6 fixed */

  *+html .browserTest { width: 60px;} /* ie7 fixed */

  注意:

  *+html 對IE7的HACK 必須保證HTML頂部有如下聲明:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">

  /*****************************************************************************/

  /*****************************************************************************/

#p#副標(biāo)題#e#

  以下是一些常用的CSS兼容技巧

  1)火狐下給div設(shè)置padding后會導(dǎo)致width和height 增加, 但IE不會.(可用!important解決)

  2)垂直居中,將 line-height設(shè)置為當(dāng)前div相同的高度, 再通過vertical-align: middle;( 注意內(nèi)容不要換行)

  3)水平居中,margin:0 auto;(當(dāng)然不是萬能)

  4)若需給a標(biāo)簽內(nèi)內(nèi)容加上樣式, 需要設(shè)置 display: block;(常見于導(dǎo)航標(biāo)簽)

  5)浮動IE產(chǎn)生的雙倍距離

  在IE下,當(dāng)一個div設(shè)置了float后,然后給他設(shè)置margin,就會出現(xiàn)加倍的margin,解決的辦法是給div設(shè)置display:inline。

  <div id="float"></div>

  相應(yīng)的css為

#float
{
   float:left;
   margin:5px;/*IE下理解為10px*/
   display:inline;/*IE下再理解為5px*/
}

  Block元素的特點是:總是在新行上開始,高度,寬度,行高,邊距都可以控制(塊元素);Inline元素的特點是:和其他元素在同一行上,...不可控制(內(nèi)嵌元素);

  6)IE和FF對盒模型的解釋區(qū)別

  #browserTest{ width: 650px !important;width: 648px;padding-left:2px;background:#fff; } 

  browserTest顯示的寬度是650px;

  IE Box的總寬度是:width+padding+border+margin寬度總和;

  FF Box的總寬度就是:width的寬度,padding+border+margin的寬度在含在width內(nèi)。

  如果有BOX{WIDTH:"300"; PADDING:"5PX";}

  則BOX在IE的寬度應(yīng)該為:310

  而在FF的寬度則是300

  所以在BOX有填充的情況下應(yīng)該這樣使用

  BOX{WIDTH:"300" !IMPORTANT; WIDTH:"290";}

  7)ul標(biāo)簽在FF下面默認(rèn)有l(wèi)ist-style和padding, 最好事先聲明, 以避免不必要的麻煩;(常見于導(dǎo)航標(biāo)簽和內(nèi)容列表)

  8)作為外部wrapper的div不要定死高度, 最好還加上 overflow: hidden;以達到高度自適應(yīng);

  9)頁面的最小寬度

  min-width是個非常方便的CSS命令,它可以指定元素最小也不能小于某個寬度,這樣就能保證排版一直正確。但IE不認(rèn)得這個,

  而它實際上把width當(dāng)做最小寬度來使。為了讓這一命令在IE上也能用,可以把一個<div> 放到 <body> 標(biāo)簽下,然后為div指定一個類:

  然后CSS這樣設(shè)計:

  #container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}

  第一個min-width是正常的;但第2行的width使用了javascript,這只有IE才認(rèn)得,這也會讓你的HTML文檔不太正規(guī)。它實際上通過Javascript的判斷來實現(xiàn)最小寬度。

  10:萬能float閉合

  將以下代碼加入Global CSS 中,給需要閉合的div加上

<style>
/* Clear Fix */
.clearfix:after
{
   content:".";
   display:block;
   height:0;
   clear:both;
   visibility:hidden;
}
*html .clearfix{
   height:1%;
}
*+html .clearfix{
   height:1%;
}
.clearfix
{
   display:inline-block;
}
/* Hide from IE Mac */
.clearfix {display:block;}
/* End hide from IE Mac */
/* end of clearfix */
</style>
/**********************************************/
<div id="wrap">
   <div class="column_left">
     <h1>Float left</h1>
   </div>
   <div class="column_right">
     <h1>Float right</h1>
   </div>
</div>
#wrap{ border:6px #ccc solid; overflow:auto; _height:1%;}
.column_left{ float:left; width:20%; padding:10px;}
.column_right{ float:right; width:75%; padding:10px; border-left:6px #eee solid;}

關(guān)鍵詞標(biāo)簽:CSS

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 DIV+CSS網(wǎng)頁布局常用的一些基礎(chǔ)知識整理DIV+CSS網(wǎng)頁布局常用的一些基礎(chǔ)知識整理

相關(guān)下載

人氣排行 DIV CSS完美兼容IE6/IE7/FF的通用方法CSS實例:list-style-type在IE與FF中奇怪的現(xiàn)象解析-CSS布局實例CSS實例:通過定義漸變邊框給圖片加陰影CSS常用技巧之一 禁止文字自動換行解決用CSS控制DIV居中失效的問題網(wǎng)頁頁面設(shè)計中CSS十大注意css div設(shè)置float后高度不能自動增加讓CSS兼容IE和Firefox的技巧集合