域名注冊 網(wǎng)站制作
您現(xiàn)在的位置:首頁 >> 網(wǎng)站建設(shè) >> 內(nèi)容

IE6/IE7/IE8/Firefox火狐瀏覽器兼容性解決方法

時間:2015/2/26 11:15:26 點擊:244

摘要:最近遇到了瀏覽器兼容性的問題,在網(wǎng)上找的了很多不錯的方法,經(jīng)過試用確實有很不錯的效果,就把這些進行總結(jié)和摘錄了下來,可以解決我們平常所做網(wǎng)頁在瀏覽器上的一些兼容性問題,其中包括IE、FF不支持,浮動雙...
最近遇到了瀏覽器兼容性的問題,在網(wǎng)上找的了很多不錯的方法,經(jīng)過試用確實有很不錯的效果,就把這些進行總結(jié)和摘錄了下來,可以解決我們平常所做網(wǎng)頁在瀏覽器上的一些兼容性問題,其中包括IE、FF不支持,浮動雙倍,垂直水平居中,隱藏DIV,高度不適應等問題。

一、CSS HACK

1、!important

隨著IE7對 !important 的支持,現(xiàn)在 !important 只針對IE6 HACK。

<style type="text/css">

#syx{

width:100px; /* IE7+FF */

width:80px; /* IE6 */

}

</style>

2、IE6,IE7,FF分別定義

*HTML和*+html是IE特有的標簽,F(xiàn)F暫時不支持,而*+html又是IE7特有的標簽。

<style type="text/css">

#syx{ width:100px; } /* FF */

*html #syx{ width:80px; } /* IE6 */

*+html #syx{ width:60px;} /* IE7 */

//注意它們的順序

</style>

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

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

二、CSS萬能 float 閉合

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

<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>

三、CSS其它的一些兼容技巧

1、FF下給 div 設(shè)置 padding 后會導致 width 和 height 增加,但IE不會(可用!important解決)。

2、居中大小問題

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

(2)水平居中:margin: 0 auto;(當然不是萬能)。

(3)若需給 a 標簽內(nèi)內(nèi)容加上樣式,需要設(shè)置 display: block;(常見于導航標簽)。

(4)FF 和 IE 對 BOX 理解的差異導致相差 2px 的還有設(shè)為 float 的div在ie下 margin 加倍等問題,#box{ float:left; width:100px; margin:0 0 0 100px; (這種情況之下IE會產(chǎn)生200px的距離,可以加 display:inline; 使浮動忽略)。

(注意:block,inline 兩個元素,Block 元素的特點是:總是在新行上開始,高度,寬度,行高,邊距都可以控制(塊元素);inline 元素的特點是:和其他元素在同一行上,不可控制(內(nèi)嵌元素);#box{ display:block; //可以為內(nèi)嵌元素模擬為塊元素 display:inline; //實現(xiàn)同一行排列的的效果 diplay:table; })

(5)ul 標簽在 FF 下面默認有 list-style 和 padding , 最好事先聲明,以避免不必要的麻煩(常見于導航標簽和內(nèi)容列表)。

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

(7)關(guān)于手形光標 cursor: pointer ,而 hand 只適用于 IE。

(8)IE 與寬度和高度的問題:IE不認得min-這個定義,但實際上它把正常的 width 和 height 當作有min的情況來使,如果只用寬度和高度,正常的瀏覽器里這兩個值就不會變,如果只用 min-width 和 min-height 的話,IE 下面根本等于沒有設(shè)置寬度和高度。

如:要設(shè)置背景圖片,這個寬度是比較重要,要解決這個問題,可以這樣:#box{ width: 80px; height: 35px;} html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}

(9)頁面的最小寬度:min-width 是個非常方便的CSS命令,它可以指定元素最小也不能小于某個寬度,這樣就能保證排版一直正確,但IE不認得,而它實際上把 width 當做最小寬度來用,為了讓這一命令在IE上也能用,可以把一個 <div> 放到 <body> 標簽下,然后為div指定一個類。

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

(10)DIV 浮動 IE 文本產(chǎn)生3象素的bug:左邊對象浮動,右邊采用外補丁的左邊距來定位,右邊對象內(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>。

(11)IE 捉迷藏的問題:當 div 應用復雜的時候每個欄中又有一些鏈接,DIV等這個時候容易發(fā)生捉迷藏的問題。有些內(nèi)容顯示不出來,當鼠標選擇這個區(qū)域是發(fā)現(xiàn)內(nèi)容確實在頁面。解決辦法:對#layout使用line-height屬性或者給#layout使用固定高和寬。頁面結(jié)構(gòu)盡量簡單。

(12)高度不適應:高度不適應是當內(nèi)層對象的高度發(fā)生變化時外層高度不能自動進行調(diào)節(jié),特別是當內(nèi)層對象使用 margin 或 paddign 時。

如:<div id="box">p對象中的內(nèi)容</div> CSS:#box {background-color:#eee; } #box p {margin-top: 20px; margin-bottom: 20px; text-align:center; } 解決方法:在P對象上下各加2個空的 div 對象 CSS 代碼:.blank{height:0px;overflow:hidden;}或者為 DIV 加上 border 屬性。

轉(zhuǎn)載請保留原文地址: http://www.448gfe.cn/show-427.html

責編:王麗 作者:不詳 來源:網(wǎng)絡