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

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

時(shí)間:2015/2/26 11:15:26 點(diǎn)擊:270

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

一、CSS HACK

1、!important

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

<style type="text/css">

#syx{

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

width:80px; /* IE6 */

}

</style>

2、IE6,IE7,FF分別定義

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

<style type="text/css">

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

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

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

//注意它們的順序

</style>

//注意:*+html 對(duì)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 后會(huì)導(dǎo)致 width 和 height 增加,但I(xiàn)E不會(huì)(可用!important解決)。

2、居中大小問題

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

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

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

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

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

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

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

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

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

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

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

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

(10)DIV 浮動(dòng) IE 文本產(chǎn)生3象素的bug:左邊對(duì)象浮動(dòng),右邊采用外補(bǔ)丁的左邊距來定位,右邊對(duì)象內(nèi)的文本會(huì)離左邊有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 捉迷藏的問題:當(dāng) div 應(yīng)用復(fù)雜的時(shí)候每個(gè)欄中又有一些鏈接,DIV等這個(gè)時(shí)候容易發(fā)生捉迷藏的問題。有些內(nèi)容顯示不出來,當(dāng)鼠標(biāo)選擇這個(gè)區(qū)域是發(fā)現(xiàn)內(nèi)容確實(shí)在頁面。解決辦法:對(duì)#layout使用line-height屬性或者給#layout使用固定高和寬。頁面結(jié)構(gòu)盡量簡單。

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

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

轉(zhuǎn)載請(qǐng)保留原文地址: http://m.onedealspecials.com/show-427.html

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