一、ie6最小盒子問(wèn)題
第一晓折,IE6惑朦,不支持小于12px的盒子,任何小于12px的盒子漓概,在IE6中看都大
解決辦法很簡(jiǎn)單漾月,就是將盒子的字號(hào),設(shè)置形刚洹(小于盒子的高)梁肿,比如0px。
height: 4px; _font-size: 0px;
我們現(xiàn)在介紹一下瀏覽器hack觅彰。hack就是“黑客”吩蔑,就是使用瀏覽器提供的后門,針對(duì)某一種瀏覽器做兼容填抬。
IE6留了一個(gè)后門烛芬,就是只要給css屬性之前,加上下劃線飒责,這個(gè)屬性就是IE6認(rèn)識(shí)的專有屬性
二赘娄、清除浮動(dòng)的方法
IE6不支持用overflow:hidden;來(lái)清除浮動(dòng)的
解決辦法,以毒攻毒宏蛉。追加一條
完整寫(xiě)法:
overflow: hidden; _zoom:1;
三遣臼、關(guān)于margin的IE6兼容問(wèn)題(雙邊距)
IE6雙倍margin bug
問(wèn)題:當(dāng)出現(xiàn)連續(xù)浮動(dòng)的元素,攜帶和浮動(dòng)方向相同的margin時(shí)檐晕,隊(duì)首的元素暑诸,會(huì)雙倍marign。
1 <ul> 2 <li></li> 3 <li></li> 4 <li></li> 5 </ul>
解決方案:
1.使浮動(dòng)的方向和margin的方向辟灰,相反个榕。所以,你就會(huì)發(fā)現(xiàn)芥喇,我們特別喜歡西采,浮動(dòng)的方向和margin的方向相反。并且继控,前端開(kāi)發(fā)工程師械馆,把這個(gè)當(dāng)做習(xí)慣了胖眷。
float: left; margin-right: 40px;
2.使用hack(沒(méi)必要,別慣著這個(gè)IE6)單獨(dú)給隊(duì)首的元素霹崎,寫(xiě)一個(gè)一半的margin
` <li class="no1"></li>
ul li.no1{
_margin-left:20px;3 }
`
四珊搀、IE6的3px bug
解決辦法:
不用管,因?yàn)?strong>根本就不允許用兒子踹父親尾菇。所以境析,如果你出現(xiàn)了3px bug,說(shuō)明你的代碼不標(biāo)準(zhǔn)(給父親padding代替兒子margin)
五派诬、font屬性
網(wǎng)頁(yè)中不是所有字體都能用哦劳淆,因?yàn)檫@個(gè)字體要看用戶的電腦里面裝沒(méi)裝
頁(yè)面中,中文我們只使用: 微軟雅黑默赂、宋體沛鸵、黑體。 如果頁(yè)面中
英語(yǔ):Arial 缆八、 Times New Roman
需要其他的字體曲掰,那么需要切圖。
為了防止用戶電腦里面耀里,沒(méi)有微軟雅黑這個(gè)字體蜈缤。就要用英語(yǔ)的逗號(hào),隔開(kāi)備選字體冯挎,就是說(shuō)如果用戶電腦里面,沒(méi)有安裝微軟雅黑字體咙鞍,那么就是宋體:
font-family: "微軟雅黑","宋體";
備選字體可以有無(wú)數(shù)個(gè)房官,用逗號(hào)隔開(kāi)。
我們要將英語(yǔ)字體续滋,放在最前面翰守,這樣所有的中文,就不能匹配英語(yǔ)字體疲酌,就自動(dòng)的變?yōu)楹竺娴闹形淖煮w:
font-family: "Times New Roman","微軟雅黑","宋體";
行高可以用百分比蜡峰,表示字號(hào)的百分之多少。一般來(lái)說(shuō)朗恳,都是大于100%的湿颅,因?yàn)樾懈咭欢ㄒ笥谧痔?hào)。
六粥诫、a鏈接的偽類樣式
偽類
也就是說(shuō)油航,同一個(gè)標(biāo)簽,根據(jù)用戶的某種狀態(tài)不同怀浆,有不同的樣式谊囚。這就叫做“偽類”怕享。
類就是工程師加的,比如div屬于box類镰踏,很明確函筋,就是屬于box類。但是a屬于什么類奠伪?不明確跌帐。因?yàn)橐从脩粲袥](méi)有點(diǎn)擊、有沒(méi)有觸碰芳来。所以含末,就叫做“偽類”。
偽類用冒號(hào)來(lái)表示即舌。
a標(biāo)簽有4種偽類佣盒,要求背誦
:link 表示, 用戶沒(méi)有點(diǎn)擊過(guò)這個(gè)鏈接的樣式顽聂。 是英語(yǔ)“鏈接”的意思肥惭。 :visited 表示, 用戶訪問(wèn)過(guò)了這個(gè)鏈接的樣式紊搪。 是英語(yǔ)“訪問(wèn)過(guò)的”的意思蜜葱。 :hover 表示, 用戶鼠標(biāo)懸停的時(shí)候鏈接的樣式耀石。 是英語(yǔ)“懸颓6冢”的意思。 :active 表示滞伟, 用戶用鼠標(biāo)點(diǎn)擊這個(gè)鏈接揭鳞,但是不松手,此刻的樣式梆奈。 是英語(yǔ)“激活”的意思野崇。
記住,這四種狀態(tài)亩钟,在css中乓梨,必須按照固定的順序?qū)懀?br> a:link 、a:visited 清酥、a:hover 扶镀、a:active
如果不按照順序,那么將失效总处”繁梗“愛(ài)恨準(zhǔn)則”love hate。必須先愛(ài),后恨胧谈。
記住忆肾,所有的a在設(shè)置了text/font后就不繼承text、font這些東西菱肖。因?yàn)閍自己有一個(gè)偽類的權(quán)重客冈。
最標(biāo)準(zhǔn)的,就是把link稳强、visited场仲、hover都要寫(xiě)。但是前端開(kāi)發(fā)工程師在大量的實(shí)踐中退疫,發(fā)現(xiàn)不寫(xiě)link渠缕、visited瀏覽器也挺兼容(原因是給a設(shè)置了顏色字體大小等,link和visited就顯示了默認(rèn)的a的樣式)褒繁。所以這些“老油條”們亦鳞,就把a(bǔ)標(biāo)簽簡(jiǎn)化了
a:link、a:visited都是可以省略的棒坏,簡(jiǎn)寫(xiě)在a標(biāo)簽里面燕差。也就是說(shuō),a標(biāo)簽涵蓋了link坝冕、visited的狀態(tài)徒探。 1 .nav ul li a{ 2 display: block; 3 width: 120px; 4 height: 50px; 5 text-decoration: none; 6 background-color: purple; 7 color:white; 8 } 9 .nav ul li a:hover{ 10 background-color: orange; 11 } 12 .nav ul li a:visited{ 13 color:red; 14 }
七 IE56 中盒子模型的問(wèn)題
問(wèn)題:在IE56 中盒子模型的寬度(width)的計(jì)算是:border+padding+contentWidth的。與box-sizing:border-box類似喂窟。
而其他瀏覽器盒子模型默認(rèn)是:content-box(也就是說(shuō)你給一個(gè)盒子width是指的是內(nèi)容的寬测暗,盒子實(shí)際的寬是width+padding+border)
上下外邊距合并問(wèn)題
外邊距合并指的是,當(dāng)兩個(gè)垂直外邊距相遇時(shí)磨澡,它們將形成一個(gè)外邊距偷溺。
合并后的外邊距的高度等于兩個(gè)發(fā)生合并的外邊距的高度中的較大者。
只有標(biāo)準(zhǔn)文檔流中塊框的垂直外邊距才會(huì)發(fā)生外邊距合并钱贯。行內(nèi)元素、浮動(dòng)元素或行內(nèi)塊元素或絕對(duì)定位之間的外邊距不會(huì)合并
當(dāng)一個(gè)元素出現(xiàn)在另一個(gè)元素上面時(shí)侦另,第一個(gè)元素的下外邊距與第二個(gè)元素的上外邊距會(huì)發(fā)生合并秩命。請(qǐng)看下圖:
當(dāng)一個(gè)元素包含在另一個(gè)元素中時(shí)(假設(shè)沒(méi)有內(nèi)邊距或邊框把外邊距分隔開(kāi))悯许,它們的上和/或下外邊距也會(huì)發(fā)生合并氯析。請(qǐng)看下圖:
盡管看上去有些奇怪,但是外邊距甚至可以與自身發(fā)生合并担败。
假設(shè)有一個(gè)空元素殿托,它有外邊距霹菊,但是沒(méi)有邊框或填充。在這種情況下,上外邊距與下外邊距就碰到了一起旋廷,它們會(huì)發(fā)生合并:
8.IE5中margin:0 auto;失效
在IE5中對(duì)塊元素存在一個(gè)外邊距處理BUG鸠按。塊元素有時(shí)會(huì)被視作行內(nèi)元素。所以margin:0 auto;失效饶碘。
兼容ie5的做法:
要居中的元素設(shè)置margin:0 auto;
在元素的父元素或者給該居中元素包裹一層div目尖,給這個(gè)div或者父元素設(shè)置:text-align:center;
IE678不支持opacity屬性
兼容方法:
opacity:1.0; filter:alpha(opacity=100); /* For IE8 and earlier */
orient/strip%7CimageView2/2/w/1240)