日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁西西教程DreamWeaver → 很糾結(jié)的瀏覽器兼容性問題--IE6、IE7、FF下CSS樣式設(shè)計

      很糾結(jié)的瀏覽器兼容性問題--IE6、IE7、FF下CSS樣式設(shè)計

      前往專題相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站整理時間:2010/11/9 9:29:14字體大。A-A+

      作者:佚名點擊:1327次評論:0次標(biāo)簽: 瀏覽器 CSS DIV

      07073游戲瀏覽器v2.0.1.6 官方正式版
      • 類型:瀏覽器類大。3.7M語言:中文 評分:6.4
      • 標(biāo)簽:
      立即下載
      在使用DIV+CSS網(wǎng)站設(shè)計的時候,應(yīng)該注意css樣式兼容不同瀏覽器問題,特別是對完全使用DIV+CSS設(shè)計的網(wǎng)頁,就應(yīng)該更注意IE6 IE7 FF對CSS樣式的兼容,不然,你的網(wǎng)頁可能亂的一塌糊涂!我經(jīng)常被這些東西整的焦頭爛額,于是在網(wǎng)上找了些資料,加上自己的理解和這些日子的經(jīng)驗,整理了一些資料,其中有一些我還沒用到的和還不能理解的,就直接從別的地方給粘了過來,不知道有沒有錯誤,等我以后用到的時候慢慢改吧,希望對大家有點幫助!

      什么是瀏覽器兼容:當(dāng)我們使用不同的瀏覽器(Firefox IE7 IE6)訪問同一個網(wǎng)站,或者頁面的時候,會出現(xiàn)一些不兼容的問題,在這種瀏覽器下顯示正常,在另一種下就亂了,我們在編寫CSS的時候會很惱火,剛修復(fù)了這個瀏覽器的問題,結(jié)果另外一個瀏覽器卻出了新問題。好吧,我服了行吧,那我就利用你們的不兼容各寫一段css,讓他們各執(zhí)行各的,這下總該你沒脾氣了吧,呵呵。

      好了,言歸正傳

      一、!important (功能有限)

      隨著IE7對!important的支持, !important 方法現(xiàn)在只針對IE6的兼容.(注意寫法.記得該聲明位置需要提前.)

      例如:

      #example {
      width: 100px !important; /* IE7+FF */
      width: 200px; /* IE6 */
      }
      二、CSS HACK的方法(新手可以看看,高手就當(dāng)路過吧)

      首先需要知道的是:

      (1) 所有瀏覽器 通用 height: 100px;

      (2) IE6 專用 _height: 100px;

      (3) IE7 專用 *+height: 100px;

      (4) IE6、IE7 共用 *height: 100px;

      (5) IE7、FF 共用 height: 100px !important;

      例如:

      #example { height:100px; } /* FF */
      * html #example { height:200px; } /* IE6 */
      *+html #example { height:300px; } /* IE7 */
      下面的這種方法比較簡單

      舉幾個例子

      1、IE6 - IE7+FF

      #example {
      height:100px; /* FF+IE7 */
      _height:200px; /* IE6 */
      }
      其實這個用上面說的第一種方法也可以

      #example {
      height:100px !important; /* FF+IE7 */
      height:200px; /* IE6 */
      }
      2、IE6+IE7 - FF

      #example {
      height:100px; /* FF */
      *height:200px; /* IE6+IE7 */
      }
      3、IE6+FF - IE7

      #example {
      height:100px; /* IE6+FF */
      *+height:200px; /* IE7 */
      }
      4、IE6 IE7 FF 各不相同

      #example {
      height:100px; /* FF */
      _height:200px; /* IE6 */
      *+height:300px; /* IE7 */
      }
      或:

      #example {
      height:100px; /* FF */
      *height:300px; /* IE7 */
      _height:200px; /* IE6 */
      }
      需要注意的是,代碼的順序一定不能顛倒了,要不又前功盡棄了。因為瀏覽器在解釋程序的時候,如果重名的話,會用后面的覆蓋前面的,就象給變量賦值一個道理,所以我們把通用的放前面,越專用的越放后面。

      解釋一下4的代碼:

      讀代碼的時候,第一行height:100px; 大家都通用,IE6 IE7 FF 都顯示100px,到了第二行*height:300px; FF不認(rèn)識這個屬性,IE6 IE7都認(rèn),所以FF還顯示100px,而IE6 IE7把第一行得到的height屬性給覆蓋了,都顯示300px,到了第三行_height:200px;只有IE6認(rèn)識,所以IE6就又覆蓋了在第二行得到的height,最終顯示200px,這樣,三個瀏覽器都有自己的height屬性了,各玩各的去吧。這樣說要是你還不明白,要么你去撞墻,要么我去!不過還是你去比較好。

      哦,差點忘了說了,*+html 對IE7的兼容 必須保證HTML頂部有如下聲明:

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

      三、使用IE專用的條件注釋

      <!--[if IE 7]>
      <!-- 適合于IE7 -->
      <link rel="stylesheet" type="text/css" href="ie7.css" />
      <![endif]-->
      <!--[if lte IE 6]>
      <!-- 適合于IE6及以下 -->
      <link rel="stylesheet" type="text/css" href="ie.css" />
      <![endif]-->
      貌似要編三套css,我還沒用過,先粘過來再說

      IE的if條件Hack

      1. <!--[if !IE]><!--> 除IE外都可識別 <!--<![endif]-->

      2. <!--[if IE]> 所有的IE可識別 <![endif]-->

      3. <!--[if IE 5.0]> 只有IE5.0可以識別 <![endif]-->

      4. <!--[if IE 5]> 僅IE5.0與IE5.5可以識別 <![endif]-->

      5. <!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以識別 <![endif]-->

      6. <!--[if IE 6]> 僅IE6可識別 <![endif]-->

      7. <!--[if lt IE 6]> IE6以及IE6以下版本可識別 <![endif]-->

      8. <!--[if gte IE 6]> IE6以及IE6以上版本可識別 <![endif]-->

      9. <!--[if IE 7]> 僅IE7可識別 <![endif]-->

      10. <!--[if lt IE 7]> IE7以及IE7以下版本可識別 <![endif]-->

      11. <!--[if gte IE 7]> IE7以及IE7以上版本可識別 <![endif]-->

      注:

      gt = Great Then 大于

      > = > 大于號

      lt = Less Then 小于

      < = < 小于號

      gte = Great Then or Equal 大于或等于

      lte = Less Then or Equal 小于或等于

      四、css filter的辦法(據(jù)作者稱是從國外某經(jīng)典網(wǎng)站翻譯過來的說)

      新建一個css樣式如下:

      #item {
      width: 200px;
      height: 200px;
      background: red;
      }
      新建一個div,并使用前面定義的css的樣式:

      <div >some text here</div>
      在body表現(xiàn)這里加入lang屬性,中文為zh:

      <body lang="en">
      現(xiàn)在對div元素再定義一個樣式:

      *:lang(en) #item{
      background:green !important;
      }
      這樣做是為了用!important覆蓋原來的css樣式,由于:lang選擇器ie7.0并不支持,所以對這句話不會有任何作用,于是也達到了ie6.0下同樣的效果,但是很不幸地的是,safari同樣不支持此屬性,所以需要加入以下css樣式:

      #item:empty {
      background: green !important;
      }
      :empty選擇器為css3的規(guī)范,盡管safari并不支持此規(guī)范,但是還是會選擇此元素,不管是否此元素存在,現(xiàn)在綠色會現(xiàn)在在除ie各版本以外的瀏覽器上。

      五、FLOAT閉合(clearing float)

      網(wǎng)頁在某些瀏覽器上顯示錯位很多時候都是因為使用了float浮動而沒有真正閉合,這也是div無法自適應(yīng)高度的一個原因。如果父div沒有設(shè)float而其子div卻設(shè)了float的話,父div無法包住整個子DIV,這種情況一般出現(xiàn)在一個父DIV下包含多個子DIV。解決辦法:

      1、給父DIV也設(shè)上float(不要罵我,我知道是廢話)

      2、在所有子DIV后新加一個空DIV(不推薦,有些瀏覽器可以看見空DIV產(chǎn)生的空隙)

      比如:

      .parent{width:100px;}
      .son1{float:left;width:20px;}
      .son2{float:left;width:80px;}
      .clear{clear:both;margin:0;parding0;height:0px;font-size:0px;}
      <div class="parent">
      <div class="son1"></div>
      <div class="son2"></div>
      <div class="clear"></div>
      </div>
      3、萬能 float 閉合

      將以下代碼加入Global CSS 中,給需要閉合的div加上 class=”clearfix” 即可,屢試不爽.
      代碼:

      <style>
      /* Clear Fix */
      .clearfix:after {
      content:".";
      display:block;
      height:0;
      clear:both;
      visibility:hidden;
      }
      .clearfix {
      display:inline-block;
      }
      /* Hide from IE Mac \*/
      .clearfix {display:block;}
      /* End hide from IE Mac */
      /* end of clearfix */
      </style>
      :after(偽對象),設(shè)置在對象后發(fā)生的內(nèi)容,通常和content配合使用,IE不支持此偽對象,非Ie 瀏覽器支持,所以并不影響到IE/WIN瀏覽器。這種的最麻煩。

      4、overflow:auto(剛看到的,極力推薦)

      只要在父DIV的CSS中加上overflow:auto就搞定。

      舉例:

      .parent{width:100px;overflow:auto}
      .son1{float:left;width:20px;}
      .son2{float:left;width:80px;}
      <div class="parent">
      <div class="son1"></div>
      <div class="son2"></div>
      </div>
      作者原話:原理是,外圍元素之所以不能很好的延伸,問題出在了overflow上,因為overflow不可見(見W3C的解釋),F(xiàn)在只要將給外圍元素添 加一個“overflow:auto”,就可以解決問題,結(jié)果是除了IE,真的可以解決。下來就要解決IE的問題了,再加上“_height:1%”,這個問題就完全解決了。

      我試了一下,其實不加"_height:1%“在IE下也行,留著吧。

      六、需要注意的一些兼容細(xì)節(jié)

      1, FF下給 div 設(shè)置 padding 后會導(dǎo)致 width 和 height 增加(DIV的實際寬度=DIV寬+Padding), 但IE不會.

      解決辦法:給DIV設(shè)定IE、FF兩個寬度,在IE的寬度前加上IE特有標(biāo)記" * "號。

      2, 頁面居中問題.

      body {TEXT-ALIGN: center;} 在IE下足夠了,但FF下失效。

      解決辦法:加上"MARGIN-RIGHT: auto; MARGIN-LEFT: auto; "

      3, 有的時候在IE6上看見一些奇怪的間隙,可我們高度明明設(shè)好了呀。

      解決辦法:試試在有空隙的DIV上加上"font-size:0px;"

      4, 關(guān)于手形光標(biāo). cursor: pointer. 而hand 只適用于 IE.

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

      #box{ float:left;
      width:100px;
      margin:0 0 0 100px;
      }
      這種情況之下IE6會產(chǎn)生200px的距離

      解決辦法:加上display:inline,使浮動忽略

      這里細(xì)說一下block,inline兩個元素,Block元素的特點是:總是在新行上開始,高度,寬度,行高,邊距都可以控制(塊元素);Inline元素的特點是:和其他元素在同一行上,…不可控制(內(nèi)嵌元素);

      #box{ display:block; //可以為內(nèi)嵌元素模擬為塊元素 display:inline; //實現(xiàn)同一行排列的的效果

      6、頁面的最小寬度

      min-width是個非常方便的CSS命令,它可以指定元素最小也不能小于某個寬度,這樣就能保證排版一直正確。但IE不認(rèn)得min-這個定義,但實際上它把正常的width和height當(dāng)作有min的情況來使。這樣問題就大了,如果只用寬度和高度,正常的瀏覽器里 這兩個值就不會變,如果只用min-width和min-height的話,IE下面根本等于沒有設(shè)置寬度和高度。比如要設(shè)置背景圖片,這個寬度是比較重 要的。

      解決辦法:為了讓這一命令在IE上也能用,可以把一個<div> 放到 <body> 標(biāo)簽下,然后為div指定一個類:

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

      #container{
      min-width: 600px;
      width:e­xpression(document.body.clientWidth < 600? “600px”: “auto” );
      }
      第一個min-width是正常的;但第2行的width使用了Javascript,這只有IE才認(rèn)得,這也會讓你的HTML文檔不太正規(guī)。它實際上通過Javascript的判斷來實現(xiàn)最小寬度。

      7、UL和FORM標(biāo)簽的padding與margin

      ul標(biāo)簽在FF中默認(rèn)是有padding值的,而在IE中只有margin默認(rèn)有值。FORM標(biāo)簽在IE中,將會自動margin一些邊距,而在FF中margin則是0;

      解決辦法:css中首先都使用這樣的樣式ul,form{margin:0;padding:0;}給定義死了,后面就不會為這個頭疼了.

      8、DIV浮動IE文本產(chǎn)生3象素的bug

      下面這段是我在網(wǎng)上粘過來的

      左邊對象浮動,右邊采用外補丁的左邊距來定位,右邊對象內(nèi)的文本會離左邊有3px的間距.

      #box{
      float:left;
      width:800px;}
      #left{
      float:left;
      width:50%;}
      #right{
      width:50%;
      }
      *html #left{
      margin-right:-3px;
      //這句是關(guān)鍵
      }
      HTML代碼

      <DIV id=box>
      <DIV id=left></DIV>
      <DIV id=right></DIV>
      </DIV>
      針對上面這段代碼,下面說一下我的理解:

      第一、只要right定義了width屬性,在FF下絕對就會兩行顯示

      第二、兩個width都定義為百分比的話,就算都為100%在IE下也會一行顯示。所以上面那句所謂“這句是關(guān)鍵”根本沒用,不加也在一行,除非你width定義的是數(shù)值才用得上。

      所以說上面這段代碼其實用處不大,至少在FF下不行。其實只要只定義left的width就行了,right不定義width就不管在IE還是FF下都能成功,但這樣的話父DIV BOX并沒有真正的包含LEFT和RIGHT兩子DIV,可以用我上面說的第5種辦法解決。最簡單的辦法就是在RIGHT中加上float:left就OK了,真磨嘰!

      9,截字省略號

      .hh { -o-text-overflow:ellipsis;
      text-overflow:ellipsis;
      white-space:nowrap;
      overflow:hidden;
      }
      這個是在越出長度后會自行的截掉多出部分的文字,并以省略號結(jié)尾。技術(shù)是好技術(shù),很多人都喜歡亂用,但注意Firefox并不支持。

      解決辦法:暫無!
        游戲瀏覽器
        (36)游戲瀏覽器
        西西軟件園提供最好用的游戲瀏覽器,游戲瀏覽器是專門針對網(wǎng)頁游戲而設(shè)計的專用瀏覽器,游戲瀏覽器能夠給玩家提供加速功能,還有各種輔助工具,最終要是支持快捷按鍵.網(wǎng)絡(luò)上有很多游戲瀏覽器,到底哪個游戲瀏覽器最好用呢西西小編就整理出了最好用的瀏覽器排行榜給大家選擇....更多>>

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)