国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > CSS > 正文

總結(jié)CSS中火狐瀏覽器與IE瀏覽器的兼容代碼

2020-03-24 16:54:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
如何讓你寫(xiě)的代碼更兼容火狐和IE兩大主流瀏覽器?本文將總結(jié)總結(jié)CSS中火狐瀏覽器與IE瀏覽器的兼容代碼,兼容你兼容主要是語(yǔ)法規(guī)范問(wèn)題,你寫(xiě)CSS寫(xiě)規(guī)范了,就都兼容了,其他的就是一些瀏覽器的BUG了,發(fā)一些技巧給你看看,或許有用。
CSS技巧
1、div的垂直居中問(wèn)題 vertical-align:middle; 將行距增加到和整個(gè)DIV一樣高 line-height:200px; 然后插入文字,就垂直居中了。缺點(diǎn)是要控制內(nèi)容不要換行 2、margin加倍的問(wèn)題 設(shè)置為float的div在ie下設(shè)置的margin會(huì)加倍。這是一個(gè)ie6都存在的bug。解決方案是在這個(gè)div里面加上display:inline;
例如:
#div id=”imfloat”
相應(yīng)的css為
#IamFloat{
float:left;
margin:5px;/*IE下理解為10px*/
display:inline;/*IE下再理解為5px*/} 3、浮動(dòng)ie產(chǎn)生的雙倍距離 #box{ float:left; width:100px; margin:0 0 0 100px; //這種情況之下IE會(huì)產(chǎn)生200px的距離 display:inline; //使浮動(dòng)忽略}
這里細(xì)說(shuō)一下block與inline兩個(gè)元素:block元素的特點(diǎn)是,總是在新行上開(kāi)始,高度,寬度,行高,邊距都可以控制(塊元素);Inline元素的特點(diǎn)是,和其他元素在同一行上,不可控制(內(nèi)嵌元素);
#box{ display:block; //可以為內(nèi)嵌元素模擬為塊元素 display:inline; //實(shí)現(xiàn)同一行排列的效果 diplay:table; 4、IE與寬度和高度的問(wèn)題 IE 不認(rèn)得min-這個(gè)定義,但實(shí)際上它把正常的width和height當(dāng)作有min的情況來(lái)使。這樣問(wèn)題就大了,如果只用寬度和高度,正常的瀏覽器里這兩 個(gè)值就不會(huì)變,如果只用min-width和min-height的話,IE下面根本等于沒(méi)有設(shè)置寬度和高度。
比如要設(shè)置背景圖片,這個(gè)寬度是比較重要的。要解決這個(gè)問(wèn)題,可以這樣:
#box{ width: 80px; height: 35px;}html body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;} 5、頁(yè)面的最小寬度 min -width是個(gè)非常方便的CSS命令,它可以指定元素最小也不能小于某個(gè)寬度,這樣就能保證排版一直正確。但I(xiàn)E不認(rèn)得這個(gè),而它實(shí)際上把width當(dāng) 做最小寬度來(lái)使。為了讓這一命令在IE上也能用,可以把一個(gè) div 放到 body 標(biāo)簽下,然后為div指定一個(gè)類, 然后CSS這樣設(shè)計(jì):
#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í)際上通過(guò)Javascript的判斷來(lái)實(shí)現(xiàn)最小寬度。 6、DIV浮動(dòng)IE文本產(chǎn)生3象素的bug 左邊對(duì)象浮動(dòng),右邊采用外補(bǔ)丁的左邊距來(lái)定位,右邊對(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)鍵}
div id="box"
div id="left" /div
div id="right" /div
/div 7、IE捉迷藏的問(wèn)題 當(dāng)div應(yīng)用復(fù)雜的時(shí)候每個(gè)欄中又有一些鏈接,DIV等這個(gè)時(shí)候容易發(fā)生捉迷藏的問(wèn)題。
有些內(nèi)容顯示不出來(lái),當(dāng)鼠標(biāo)選擇這個(gè)區(qū)域是發(fā)現(xiàn)內(nèi)容確實(shí)在頁(yè)面。 解決辦法:對(duì)#layout使用line-height屬性 或者給#layout使用固定高和寬。頁(yè)面結(jié)構(gòu)盡量簡(jiǎn)單
8、float的div閉合;清除浮動(dòng);自適應(yīng)高度; ① 例如: #div id=”floatA” #div id=”floatB” #div id=” NOTfloatC” 這里的NOTfloatC并不希望繼續(xù)平移,而是希望往下排。(其中floatA、floatB的屬性已經(jīng)設(shè)置為 float:left
這段代碼在IE中毫無(wú)問(wèn)題,問(wèn)題出在FF。原因是NOTfloatC并非float標(biāo)簽,必須將float標(biāo)簽 閉合。在 #div > ②作為外部 wrapper 的 div 不要定死高度,為了讓高度能自動(dòng)適應(yīng),要在wrapper里面加上overflow:hidden; 當(dāng)包含float的 box的時(shí)候,高度自動(dòng)適應(yīng)在IE下無(wú)效,這時(shí)候應(yīng)該觸發(fā)IE的layout私有屬性(萬(wàn)惡的IE??!)用zoom:1;可以做到,這樣就達(dá)到了兼容。
例如某一個(gè)wrapper如下定義:
.colwrapper{ overflow:hidden; zoom:1; margin:5px auto;} ③對(duì)于排版,我們用得最多的css描述可能就是float:left.有的時(shí)候我們需要在n欄的float div后面做一個(gè)統(tǒng)一的背景,譬如:
div id=”page”
div id=”left” /div
div id=”center” /div
div id=”right” /div
/div
比如我們要將page的背景設(shè)置成藍(lán)色,以達(dá)到所有三欄的背景顏色是藍(lán)色的目的,但是我們會(huì)發(fā)現(xiàn)隨著left center right的向下拉長(zhǎng),而 page居然保存高度不變,問(wèn)題來(lái)了,原因在于page不是float屬性,而我們的page由于要居中,不能設(shè)置成float,所以我們應(yīng)該這樣解決
div id=”page”
div id=”bg” > div id=”left” /div
div id=”center” /div
div id=”right” /div
/div
/div
再嵌入一個(gè)float left而寬度是100%的DIV解決之 ④萬(wàn)能float 閉合(非常重要!)
關(guān)于clear float 的原理可參見(jiàn) [How To Clear Floats Without Structural Markup],將以下 代碼加入Global CSS 中,給需要閉合的div加上 即可,屢試不爽.
/* 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 */
或者這樣設(shè)置:.hackbox{ display:table; //將對(duì)象作為塊元素級(jí)的表格顯示} 11、高度不適應(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í)。
例:
#box {background-color:#eee; }
#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }
div id="box"
p p對(duì)象中的內(nèi)容 /p
/div
解決方法:在P對(duì)象上下各加2個(gè)空的div對(duì)象CSS代碼:.1{height:0px;overflow:hidden;}或者為DIV加上border屬性。 12、IE6下為什么圖片下有空隙產(chǎn)生 解決這個(gè)BUG的方法也有很多,可以是改變html的排版,或者設(shè)置img 為display:block 或者設(shè)置vertical-align 屬性為 vertical-align:top | bottom |middle |text-bottom 都可以解決. 13、如何對(duì)齊文本與文本輸入框 加上 vertical-align:middle;
style type="text/css"
!--
input {
width:200px;
height:30px;
border:1px solid red;
vertical-align:middle;
}
--
/style 14、web標(biāo)準(zhǔn)中定義id與class有什么區(qū)別嗎 一.web標(biāo)準(zhǔn)中是不容許重復(fù)ID的,比如 div id="aa" 不容許重復(fù)2次,而class 定義的是類,理論上可以無(wú)限重復(fù), 這樣需要多次引用的定義便可以使用他. 二.屬性的優(yōu)先級(jí)問(wèn)題
ID 的優(yōu)先級(jí)要高于class,看上面的例子 三.方便JS等客戶端腳本,如果在頁(yè)面中要對(duì)某個(gè)對(duì)象進(jìn)行腳本操作,那么可以給他定義一個(gè)ID,否則只能利用遍歷頁(yè)面元素加上指定特定屬性來(lái)找到它,這是相對(duì)浪費(fèi)時(shí)間資源,遠(yuǎn)遠(yuǎn)不如一個(gè)ID來(lái)得簡(jiǎn)單
15、LI中內(nèi)容超過(guò)長(zhǎng)度后以省略號(hào)顯示的方法 此方法適用與IE與OP瀏覽器 style type="text/css"
!--
li {
width:200px;
white-space:nowrap;
text-overflow:ellipsis;
-o-text-overflow:ellipsis;
overflow: hidden;
} --
/style 16、為什么web標(biāo)準(zhǔn)中IE無(wú)法設(shè)置滾動(dòng)條顏色了 解決辦法是將body換成html
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
meta http-equiv="Content-Type" c /
style type="text/css"
!--
html {
scrollbar-face-color:#f6f6f6;
scrollbar-highlight-color:#fff;
scrollbar-shadow-color:#eeeeee;
scrollbar-3dlight-color:#eeeeee;
scrollbar-arrow-color:#000;
scrollbar-track-color:#fff;
scrollbar-darkshadow-color:#fff;
}
--
/style 17、為什么無(wú)法定義1px左右高度的容器 IE6下這個(gè)問(wèn)題是因?yàn)槟J(rèn)的行高造成的,解決的方法也有很多,例如:overflow:hidden | zoom:0.08 | line-height:1px 18、怎么樣才能讓層顯示在FLASH之上呢 解決的辦法是給FLASH設(shè)置透明
param name="wmode" value="transparent" / 19、怎樣使一個(gè)層垂直居中于瀏覽器中 這里我們使用百分比絕對(duì)定位,與外補(bǔ)丁負(fù)值的方法,負(fù)值的大小為其自身寬度高度除以二
style type="text/css"
!--
div {
position:absolute;
top:50%;
lef:50%;
margin:-100px 0 0 -100px;
width:200px;
height:200px;
border:1px solid red;
}
--
/style
html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 荆州市| 香河县| 凉城县| 闽清县| 巴东县| 舟山市| 香河县| 桐城市| 哈巴河县| 嘉鱼县| 吉木乃县| 金乡县| 五指山市| 名山县| 柳江县| 皋兰县| 伊川县| 吉林市| 福贡县| 馆陶县| 招远市| 麻城市| 广西| 兴文县| 琼结县| 周至县| 靖江市| 邓州市| 资阳市| 合川市| 东兰县| 宣汉县| 宣城市| 伊宁县| 永仁县| 大英县| 津南区| 乌拉特前旗| 开化县| 廉江市| 赤水市|