ie6、ie7真的不支持inline-block吗?
本来今天想出JavaScript继承的博文的,由于也才刚学习不久,以及工作比较忙,所以暂推两天写JavaScript的继承,喜欢的童鞋们关注我的博客哟!
okay,言归正传。之前在接触前端的时候,处理各种浏览器的兼容问题,现在也有了一定的积累,对IE系列的CSSbug也写了一篇博文,喜欢的童鞋可以点击此处查看。
inline-block是CSS2.1属性,而大家经常会这么处理ie6、7下的inline-block
.selector {
display: inline-block;
*display: inline;
*zoom:;
}
这样来说处理ie6、7的兼容就不会有问题,久而久之大家也就习惯了,觉得是ie6、7不支持inline-block属性而需要写个hack来改变他的显示方式,然而真的是这样吗?其实早在ie5.5就已经开始支持inline-block了,只是支持的并不是那么完善。可参考MSDN:http://msdn.microsoft.com/zh-cn/library/ie/ms530751(v=vs.85).aspx。接下来,作者将带大家来证明一下ie5.5以上的浏览器是否真的支持inline-block。
首先大家看下面这个例子:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
html, body, div, span {margin:; padding:}
.wrapper span {
display: inline-block;
width: 100px;
height: 100px;
border: 1px solid #000;
}
</style>
</head>
<body>
<div class="wrapper">
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</body>
</html>
可以看到,我为行元素<span>设置了display: inline-block;属性,结果如何呢?(由于作者的IETester出了点问题,IE5.5和IE7不能打开,因此我使用IETester打开IE6,用IE10的浏览器模式切换至IE7)
可以看到,身为行元素的<span>在IE6及IE7下神奇的可以设置宽高了,并且是在同一行(废话)。看来行元素在ie6、7是可以设置inline-block的,那么块元素呢?
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
html, body, div, span {margin:; padding:}
.wrapper div {
display: inline-block;
width: 100px;
height: 100px;
border: 1px solid #000; }
</style>
</head>
<body>
<div class="wrapper">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</body>
</html>
可以看到块元素在IE6、7下是无法设置inline-block的,因此可以得出结论,IE6、IE7实际上是支持inline-block的,只是支持不那么全面。至于列表元素大家可以下去尝试一下<li>。因为我们才使用如下代码对块元素在IE6、7下使用inline-block做兼容处理。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
html, body, div, span {margin:; padding:}
.wrapper div {
display: inline-block;
*display: inline;
*zoom:;
width: 100px;
height: 100px;
border: 1px solid #000;
}
</style>
</head>
<body>
<div class="wrapper">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</body>
</html>
而此代码对行元素同样实用,因此不管三七二十一,上来直接display: inline-block; *display: inline; *zoom: 1; 肯定不会有问题。这也导致了大家认为IE6、7是不支持inilne-block的一个误解。而实际上对于行元素,可以直接设置display: inline-block;不用再设置*zoom: 1;
其实细心的童鞋会发现设置inline-block后,其它浏览器会有几像素的缝隙,而在ie6、7下却没有,这是因为其它浏览器将回车或空格当成了一个空格,而形成了元素之前有空隙,可以将元素写在同一行就可解决此问题,有童鞋会说使用float: left;既然使用inline-block就已经解决了块元素在同一行,或行元素无法设置宽高的问题了就不要在使用float: left了,我记得w3c标准上也有说 display: inline-block不要和float: left同时使用。
ie6、ie7真的不支持inline-block吗?的更多相关文章
- 如何让低版本的IE浏览器(IE6/IE7/IE8)支持HTML5 header等新标签
html5提供的一些新标签(article,aside,dialog,footer,header,section,footer,nav,figure,menu)使用起来非常的方便,但是低版本的IE浏览 ...
- IE(IE6/IE7/IE8)支持HTML5标签
让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个j ...
- IE(IE6/IE7/IE8)支持HTML5标签--20150216
让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个j ...
- 解决IE6/IE7/IE8不支持before,after问题
对从事web开发的朋友来讲,低版本的IE永远是一个痛点,不支持最新技术(如css3,html5). 在现在web开发中使用图标字体已经很广泛,如Font Awesome,Bootstrap等,字体图片 ...
- 让IE6/IE7/IE8浏览器支持CSS3属性
让IE6/IE7/IE8浏览器支持CSS3属性 一.下载 您可以狠狠地点击这里:ie-css3.htc,这个玩意儿是让IE浏览器支持CSS3表现的关键东东. 二.上面的是什么东西 首先说说.htc文件 ...
- IE6/IE7浏览器不支持display: inline-block;的解决方法
display: inline-block;在IE6与IE7中存在bug. 1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的disp ...
- (转)让IE6/IE7/IE8浏览器支持CSS3属性
原文链接 http://blog.csdn.net/h5_queenstyle12/article/details/50437442 一.下载 搜索下载:ie-css3.htc,它是让IE浏览器支持C ...
- 让IE6/IE7/IE8支持HTML5标签的js代码
让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个j ...
- 让IE6/IE7/IE8支持CSS3属性的8种方法介绍
我们都知道,IE浏览器暂不支持CSS3的一些属性.国外的工程师们,不安于此现状,他们总是尽量使用一些手段使IE浏览器也能支持CSS3属性,我觉得这些都是很有意义,很有价值的工作,可以推动整个技术领域的 ...
随机推荐
- java 工厂的变形模拟的各种应用
工厂模式是在项目开发中使用效率高,意一个接口,该定义用于创建对象.让子类来决定哪一个类实例. 这就是一个工厂类的示意图 接着来一个简单的样例: 如上图所看到的,我们首先定义我们的产品抽象类接口,也能够 ...
- 使用jprobe建设镜面层叠的原则和见解
忽然想起的回忆,那是2007上周五在冬季,我看我的老湿调试Linux堆IP层,只看到他改变路由查找的逻辑,然后直接make install上的立竿见影的效果有点,我只知道,,这种逻辑必须再次更改编译内 ...
- WCF分布式事务(EF)
才说分布式事务,首先,了解一下什么是交易. 事务有四个特性:ACID A是Atomicity,原子性.一个事务往往涉及到很多的子操作,原子性则保证这些子操作要么都做,要么都不做,而不至于出现事务的部分 ...
- hibernate 多对多 最佳实践
首先 看看我们 ER 画画 :盖 一对一 .一对多 .多对多 的关系 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91dG9uZ3l1YW4=/fo ...
- Docker container communication with ovs
2台宿主机,192.168.11153,192.168.1.154 安装OVS rpm -ivh openvswitch-2.4.0-1.x86_64.rpm #预先下载的 配置OVS 1. 按照上一 ...
- git - 简明指南(转)
安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹,打开,然后执行 git init 以创建新的 git 仓库. 检出仓库 执行 ...
- C#将image中的显示的图片转换成二进制
原文:C#将image中的显示的图片转换成二进制 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才 ...
- 第四章:Django 的模板系统(转)
在之前的章节中,你可能觉得例子中视图返回文本有点不妥.即是, HTML 是直接写在 Python 代码中的. 这种做法会导致这些问题: 要做任何设计上的更改就必须改写 Python 代 ...
- OCP读书笔记(21) - 题库(ExamA)
Administer ASM disk groupsBack up the recovery catalogConfigure backup settingsConfigure, Monitor Fl ...
- Git提交代码的处理流程(转)
Jerry 工作在wchar_support分支.他改变了名称的功能和测试后,他提交他的变化. [jerry@CentOS src]$ git branch master * wchar_suppor ...