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

首頁 > 開發 > CSS > 正文

如何解決IE6/IE7不識別display:inline-block屬性

2024-07-11 08:28:20
字體:
來源:轉載
供稿:網友
ie6,ie7的haslayout屬性是個讓人頭疼的問題。在做導航條的時候,一般會用到ul li結構,大多數時候我們是把li設置為浮動,讓其并排顯示在同一行。還有一種方法就是設置li為display:inline;這樣可以達到同樣的效果,但是問題是inline元素的特性:默認無法設置寬度,高度,以及上下margin,(關于padding,情況有點特殊,在ie6,7中 inline元素是無法設置上下padding的,但是在標準瀏覽器里面是可以設置上下padding的)。

鑒于inline元素的這種特性,如果我們不浮動并且想讓li顯示在一行,而且可以設置高度,寬度以及上下margin,上下padding等屬性,應該怎么辦呢?你一定會想到一個屬性display:inline-block;對!”inline- block”就是干這個事的,讓一個元素既不換行又具有block元素的特性。不過有點小問題.

在IE6、IE7中不識別display:inline-block屬性,加不加display:inline-block;對于它們完全沒有任何影響。那么讓我們來想辦法解決這個問題,這就涉及到ie6,7中的haslayout屬性了。ie6,7中的inline元素有個特殊的情況,就是觸發了ie的hasLayout屬性以后就擁有了layout。此時inline元素的表現和標準瀏覽器里面的inline-block元素基本相同。

看下面這個例子,我們用ie的私有屬性zoom來觸發hasLayout,然后看看inline元素的表現。

復制代碼
代碼如下:
<html xmlns=”http://www.w3.org/1999/xhtml”> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>display-block</title>
<style>
span {
width:200px;
height:50px;
margin:10px;
padding:20px;
background:#ccc;
zoom:1;
</style>
</head>
<body>
<span><span style="font-family:宋體,微軟雅黑,Verdana,Helvetica">span</span> </span>
<span style="font-family:宋體,微軟雅黑,Verdana,Helvetica"></body> </span>
<span style="font-family:宋體,微軟雅黑,Verdana,Helvetica"></html></span>

可以看到在ie6,7中inline元素span已經表現得和一個display:inline-block元素一摸一樣了,但是在標準瀏覽器中span仍然是行內元素(寬高以及上下margin都無效)。
如果聲明了不正確DTD,導致ie6在quirks 模式下解析,那么ie6會自動觸發inline元素的haslayout,不過這里只討論正常情況下的解析,所以加了個zoom:1來觸發haslayout;zoom的值設置為除了auto外的任何值都會觸發haslayout,之所以經常用zoom:1;是因為zoom這個屬性本身是ie的縮放屬性,設置為其他值會導致元素在ie下變形,設置為1既是保持原形不縮放。
了解了上面的情況,我們就可以來解決之前那個問題了。可以改原先的css代碼如下:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六安市| 新泰市| 汝南县| 阿鲁科尔沁旗| 修水县| 保康县| 阳高县| 凤山县| 广水市| 固安县| 南乐县| 贵德县| 五常市| 桐乡市| 祁东县| 卫辉市| 鄢陵县| 东港市| 万荣县| 杭锦后旗| 佛冈县| 梁山县| 和硕县| 渑池县| 皋兰县| 玉林市| 迁安市| 电白县| 中西区| 营口市| 临汾市| 邹平县| 尼木县| 三都| 石柱| 淮南市| 鄂温| 株洲市| 阿瓦提县| 丰城市| 滨州市|