一個(gè)針對(duì)IE7的CSS Hack
IE7 修復(fù)了很多 bug,也增加了對(duì)一些選擇符的支持,所以現(xiàn)在諸如 *html {} 和 html>body {} 等針對(duì) IE 隱藏或顯示的 hack 都會(huì)在 IE7 中失效。雖然 CSS Hack 不推薦使用,條件注釋才是萬(wàn)無(wú)一失的過(guò)濾器,但是條件注釋只能出現(xiàn)在 HTML 中,CSS Hack 還是有用武之地的。Nanobot 發(fā)現(xiàn)了一些針對(duì) IE7 的 CSS Hack,具體就是:
>body
html*
*+html
這三種寫法,其中前兩種都是不合法的 CSS 寫法,在標(biāo)準(zhǔn)兼容瀏覽器中被被忽略,但是 IE7 卻不這么認(rèn)為。對(duì)于 >body ,它會(huì)將缺失的選擇符用全局選擇符 * 代替,也就是將其處理成了 *>body,而且不光對(duì)于 > 選擇符,+,~ 選擇符中這個(gè)現(xiàn)象也存在。對(duì)于 html* ,由于 html 和 * 之間沒有空格,所以也是一種 CSS 語(yǔ)法錯(cuò)誤,但 IE7 不會(huì)忽略,而是錯(cuò)誤地認(rèn)為這里有一個(gè)空格。對(duì)于第三種 *+html,IE7 認(rèn)為 html 前面的 DTD 聲明也是一個(gè)元素,所以 html 會(huì)被選中,這三種方法中只有這一種方法是合法的 CSS 寫法,也就是說(shuō)可以通過(guò)校驗(yàn)器的驗(yàn)證,因此也是作者推薦的 hack 用法。
最后作者給出了最佳方式:
IE 6 and below
Use * html {} to select the html element.
IE 7 and below
Use *+html, * html {} to select the html element.
IE 7 only
Use *+html {} to select the html element.
IE 7 and modern browsers only
Use html>body {} to select the body element.
Modern browsers only (not IE 7)
Use html>/**/body {} to select the body element.
具體信息參考原文:Easy CSS hacks for IE7
相關(guān)文章
ul+li及css制作韓國(guó)風(fēng)格菜單代碼
ul+li及css制作韓國(guó)風(fēng)格菜單代碼...2007-11-11css創(chuàng)意ul+li實(shí)現(xiàn)的細(xì)線表格實(shí)現(xiàn)代碼
非常用創(chuàng)意的用ul+li實(shí)現(xiàn)的細(xì)線表格效果,不用table2008-08-08DIV CSS網(wǎng)頁(yè)布局 最小高度(min-height)的妙用
最小高度可以設(shè)定一個(gè)BOX的最小高度,當(dāng)其內(nèi)容較少時(shí)時(shí),也能保持BOX的高度為一定,超出就自動(dòng)向下延伸,但到目前為止,只有Opera 和 Mozilla 支持,IE7開始也支持了,但I(xiàn)E7處于測(cè)試階段,等正式版發(fā)布到普及需一段也許比較長(zhǎng)的時(shí)間,除非MS把它捆綁在某個(gè)操作系統(tǒng)上,如何在現(xiàn)有基礎(chǔ)上(IE6 80-90%),合理、妙用最小高度了?2008-11-11網(wǎng)頁(yè)設(shè)計(jì)布局基礎(chǔ)
網(wǎng)頁(yè)設(shè)計(jì)布局基礎(chǔ)...2007-02-02提高網(wǎng)頁(yè)的效率 Use YSlow to know why your web Slow
內(nèi)容再豐富的網(wǎng)站,如果慢到無(wú)法訪問也是毫無(wú)意義的; SEO做的再好的網(wǎng)站,如果搜索蜘蛛抓不到也是白搭(頁(yè)面效率和搜索蜘蛛之間的關(guān)系,需要進(jìn)一步的確認(rèn),此為和上篇保持統(tǒng)一); UE設(shè)計(jì)的再人性化的網(wǎng)站,如果用戶連看都看不到也是空談。2008-09-09line-block的運(yùn)用最小寬度的設(shè)置
line-block:本身是內(nèi)聯(lián)盒模型的存在,又具備塊狀盒模型的特性。很好很強(qiáng)大的東西啊~2008-05-05