一(yī),CSS HACK
1,!important
隨(suí)著IE7對 !important 的支持(chí),現(xiàn)在 !important 隻針對IE6 HACK。
<style type="text/css">
#syx{
width:100px; /* IE7+FF */
width:80px; /* IE6 */
}
</style>
2,IE6,IE7,FF分別定(dìng)義
*HTML和(hé)*+html是IE特有的標(biāo)簽,FF暫(zàn)時(shí)不(bù)支(zhī)持,而*+html又是IE7特有的標(biāo)簽。
<style type="text/css">
#syx{ width:100px; } /* FF */
*html #syx{ width:80px; } /* IE6 */
*+html #syx{ width:60px;} /* IE7 */
//注意(yì)它們的順序
</style>
//注意:*+html 對IE7的HACK 必(bì)須保證(zhèng)HTML頂部有如下聲(shēng)明
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
二,CSS萬能(néng) float 閉(bì)合(hé)
將(jiāng)以(yǐ)下代(dài)碼加入Global CSS 中(zhōng),給需要閉(bì)合(hé)的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其(qí)它的一(yī)些兼(jiān)容(róng)技巧
1,FF下給 div 設置 padding 後會導(dǎo)致 width 和 height 增(zēng)加,但(dàn)IE不會(huì)(可(kě)用(yòng)!important解決)。
2,居中大(dà)小(xiǎo)問(wèn)題
(1)垂直居中(zhōng):將 line-height 設(shè)置為當(dāng)前 div 相同的(dí)高(gāo)度,再(zài)通過 vertical-align: middle(注(zhù)意內容不要(yào)換(huàn)行)。
(2)水平居中(zhōng):margin: 0 auto;(當(dāng)然不是(shì)萬能(néng))。
(3)若需(xū)給(gěi) a 標(biāo)簽內(nèi)內容加(jiā)上樣式,需要設(shè)置(zhì) display: block;(常見於導航標(biāo)簽(qiān))。
(4)FF 和 IE 對 BOX 理(lǐ)解的差異(yì)導致相(xiāng)差(chà) 2px 的(dí)還有(yǒu)設(shè)為 float 的(dí)div在ie下(xià) margin 加倍等問題,#box{ float:left; width:100px; margin:0 0 0 100px; (這種(zhǒng)情(qíng)況之下(xià)IE會(huì)產(chǎn)生200px的(dí)距離,可(kě)以加 display:inline; 使浮動忽略)。
(注(zhù)意(yì):block,inline 兩個元素,Block 元(yuán)素(sù)的特(tè)點(diǎn)是:總(zǒng)是在新(xīn)行上開始(shǐ),高(gāo)度,寬度,行(háng)高(gāo),邊(biān)距(jù)都(dū)可以(yǐ)控(kòng)製(zhì)(塊元(yuán)素);inline 元素的特點是:和其(qí)他(tā)元(yuán)素(sù)在同一行上,不可控製(內嵌(qiàn)元素);#box{ display:block; //可以(yǐ)為內嵌元(yuán)素模擬(nǐ)為塊元(yuán)素 display:inline; //實(shí)現同一行排(pái)列的的(dí)效(xiào)果 diplay:table; })
(5)ul 標簽在 FF 下麵默(mò)認有 list-style 和(hé) padding , 最(zuì)好(hǎo)事先聲(shēng)明(míng),以避免不(bù)必要的麻(má)煩(常(cháng)見於(yú)導航標簽和內(nèi)容列表(biǎo))。
(6)作(zuò)為(wéi)外部 wrapper 的(dí) div 不(bù)要(yào)定死(sǐ)高(gāo)度,最好還加上 overflow:hidden; 以達到(dào)高(gāo)度自適(shì)應(yīng)。
(7)關於手形(xíng)光(guāng)標 cursor: pointer ,而(ér) hand 隻適用(yòng)於(yú) IE。
(8)IE 與寬(kuān)度和高度的問(wèn)題:IE不認得min-這個(gè)定(dìng)義(yì),但實(shí)際(jì)上(shàng)它把正常的 width 和 height 當作(zuò)有(yǒu)min的情況來使,如果隻用寬度(dù)和(hé)高(gāo)度,正(zhèng)常(cháng)的瀏覽器裏(lǐ)這(zhè)兩個(gè)值就(jiù)不會變,如(rú)果隻用(yòng) min-width 和(hé) min-height 的話,IE 下麵根本等(děng)於(yú)沒有(yǒu)設置(zhì)寬度和(hé)高(gāo)度。
如:要(yào)設(shè)置(zhì)背景圖(tú)片,這(zhè)個(gè)寬(kuān)度(dù)是比(bǐ)較(jiào)重要,要(yào)解(jiě)決(jué)這(zhè)個問(wèn)題,可以這樣:#box{ width: 80px; height: 35px;} html>body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}
(9)頁麵(miàn)的(dí)最小(xiǎo)寬度(dù):min-width 是(shì)個非(fēi)常方(fāng)便的CSS命令,它可以(yǐ)指(zhǐ)定元(yuán)素最小也(yě)不能小於(yú)某個寬(kuān)度(dù),這(zhè)樣就能(néng)保(bǎo)證排版(bǎn)一(yī)直(zhí)正(zhèng)確(què),但(dàn)IE不認得,而它實際上把(bǎ) width 當做(zuò)最(zuì)小(xiǎo)寬度來用,為了(liǎo)讓這一(yī)命令在(zài)IE上也(yě)能用,可(kě)以(yǐ)把(bǎ)一個 <div> 放(fàng)到 <body> 標簽(qiān)下,然(rán)後為div指(zhǐ)定(dìng)一個類(lèi)。
如:#container{min-width: 600px; width:expression(document.body.clientWidth < 600 ? "600px" : "auto" );} (注(zhù):第一個 min-width 是(shì)正(zhèng)常(cháng)的;但(dàn)第2行(háng)的 width 使(shǐ)用(yòng)了(liǎo)Javascript,這隻有 IE 才(cái)認(rèn)得(dé),這(zhè)也(yě)會讓你的HTML文(wén)檔不太正規,它(tā)實際(jì)上通過 Javascript 的判斷來實現最(zuì)小(xiǎo)寬(kuān)度(dù))。
(10)DIV 浮(fú)動 IE 文本(běn)產(chǎn)生3象(xiàng)素(sù)的bug:左(zuǒ)邊對(duì)象浮(fú)動(dòng),右(yòu)邊采(cǎi)用外(wài)補(bǔ)丁的左邊距來(lái)定(dìng)位,右邊對象內(nèi)的文本會(huì)離左(zuǒ)邊有(yǒu)3px的間距。
如:#box{ float:left; width:800px;} #left{ float:left; width:50%;} #right{ width:50%;} *html #left{ margin-right:-3px; }//這句是(shì)關鍵(jiàn),HTML代(dài)碼<div id="box"> <div id="left"></div> <div id="right"></div></div>。
(11)IE 捉迷藏的問(wèn)題:當 div 應(yīng)用復(fù)雜(zá)的(dí)時候每(měi)個欄中又(yòu)有(yǒu)一些鏈接(jiē),DIV等(děng)這(zhè)個時候(hòu)容(róng)易發生捉(zhuō)迷藏的(dí)問題。有些(xiē)內(nèi)容顯示不(bù)出來,當(dāng)鼠(shǔ)標選擇(zé)這個(gè)區域(yù)是(shì)發(fā)現(xiàn)內(nèi)容確實在(zài)頁麵。解決辦法(fǎ):對(duì)#layout使用(yòng)line-height屬性或者(zhě)給(gěi)#layout使(shǐ)用(yòng)固定(dìng)高和(hé)寬(kuān)。頁(yè)麵結(jié)構盡量簡單。
(12)高(gāo)度(dù)不適(shì)應:高度不適應是當(dāng)內(nèi)層(céng)對象的高度發生變化時外層高度不(bù)能自動進(jìn)行調(tiáo)節(jié),特(tè)別是當內層對象(xiàng)使(shǐ)用(yòng) margin 或 paddign 時(shí)。
如(rú):<div id="box">p對(duì)象(xiàng)中的(dí)內(nèi)容</div> CSS:#box {background-color:#eee; } #box p {margin-top: 20px; margin-bottom: 20px; text-align:center; } 解決方法:在(zài)P對象(xiàng)上(shàng)下各加(jiā)2個空的 div 對象 CSS 代碼(mǎ):.blank{height:0px;overflow:hidden;}或者為(wéi) DIV 加(jiā)上 border 屬(shǔ)性(xìng)。
轉載(zǎi)請保留(liú)原文地(dì)址: https://antelcom.cn/show-427.html

