浏览器
双核浏览器
游戏浏览器
高速浏览器
视频浏览器
IE浏览器
浏览器周边
手机浏览器
安卓游戏
音乐舞蹈
养成游戏
儿童游戏
仙侠手游
角色扮演
策略塔防
休闲益智
动作冒险
飞行射击
模拟经营
体育运动
赛车竞速
网络游戏
安卓软件
资讯阅读
生活服务
影音播放
购物理财
效率办公
趣味娱乐
交通出行
学习教育
摄影图像
在线音乐
系统工具
网络购物
聊天工具
安全杀毒
图片编辑
新闻资讯
软件资讯
游戏资讯
手机教程
手游攻略
游戏攻略
软件教程
IE专区
安卓专题
文章合集
电脑软件专题
安全软件
杀毒软件
系统安全
加密解密
防火墙
远程控制
木马查杀
影音软件
网络电视
视频播放
音乐播放
视频制作
音频编辑
录音录像
教育学习
外语学习
教育管理
早教启蒙
在线课堂
成人教育
资格考试
聊天社交
即时通讯
视频聊天
在线交友
变声器
表情包
办公软件
线上会议
文档管理
行业管理
考勤打卡
应用工具
输入法
下载工具
时钟日历
记事本
文件管理
计算器
编程开发
编程工具
JAVA相关
加壳脱壳
编程控件
数据库
网页源码
软件开发
补丁制作
系统美化
桌面制作
壁纸大全
系统主题
屏幕保护
桌面辅助
系统软件
系统优化
备份还原
系统检测
U盘工具
磁盘工具
驱动补丁
图文处理
图片素材
图像处理
图片制作
图片压缩
电子相册
抓图工具
其他软件
电子书籍
模拟器
辅助工具
交通出行
手机管理
其他工具
素材下载
字体素材
PPT素材
专区
文章合集
软件
游戏
浏览器
安卓专题
软件
游戏
浏览器
IEfans/ IE专区/ IE修复 /如何解决IE6/IE7不识别display:inline-block属性

如何解决IE6/IE7不识别display:inline-block属性

2023-06-14 16:30:01 编辑:匿名

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 /
titledisplay-block/title
style
span {
width:200px;
height:50px;
margin:10px;
padding:20px;
background:#ccc;
zoom:1;
/style
/head
body
spanspan 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代码如下:

复制代码代码如下:
li span style="font-family:宋体,微软雅黑,Verdana,Helvetica"{/span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"display:inline-block; /* firefox等标准浏览器识别*/ /span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"*display:inline; /* 只有ie6和ie7识别*/zoom:1; /* 触发ie6和ie7下的haslayout */ /span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"width:80px; /span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"height:20px; /span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"margin:10px; /span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"padding:10px; /span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"text-align:center; /span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"background:#cfc; /span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"}/span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px" 让标准浏览器识别display:inline-block;让ie6,7识别display:inline;来覆盖上面的display:inline-block;(我为什么要说覆盖?)。然后通过zoom:1;来触发haslayout让inline元素在ie中表现得和inline-block元素一样。/span
/span
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"html xmlns=http://www.w3.org/1999/xhtml /prepre name="code" class="html"head /prepre name="code" class="html"meta http-equiv=Content-Type content=text/html; charset=utf-8 / /prepre name="code" class="html"titledisplay-block/title /prepre name="code" class="html"style /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"ul {/pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"background:#ccc;/pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"padding:0;/pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"margin:0;/pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"list-style:none;/pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"} /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"li {/pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"display:inline-block; /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"*display:inline; /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"zoom:1; /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"width:80px; /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"height:20px; /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"margin:10px; /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"padding:10px; /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"text-align:center; /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"background:#cfc;/pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html" } /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"/style /prepre name="code" class="html"/head /prepre name="code" class="html"body /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"ul /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"li测试/li /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"li测试/li /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"li测试/li /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"li测试/li /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"/ul /pre
span style="font-family:宋体,微软雅黑,Verdana,Helvetica"span style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"/span/spanpre name="code" class="html"/body /prepre name="code" class="html"/html/prespan style="color:rgb(17,17,17); font-family:宋体,微软雅黑,Verdana,Helvetica; font-size:14px; line-height:25px"可以看到,现在在各浏览器里面的显示已经一致了。li元素都显示在同一行。/span

span style="font-family:宋体,微软雅黑,Verdana,Helvetica"a target="_blank" href="http://www.poluoluo.com/jzxy/201206/167493.html"http://www.poluoluo.com/jzxy/201206/167493.html/a
/span

相关推荐

浏览器更新