inline-block 兼容性
inline-block 兼容性
通常网页模板都需要动态添加或删除内容,在做网页导航的时候,需要nav中的ul能够居中并实现自适应拓展,如果ul是固定的长度很好实现居中,只需要设置margin:0 auto;就行。但是这里ul的长度是不确定的,设置了margin-left就没法自适应居中了。在FF和IE7以上的浏览器中,设置.nav{text-align:center;},.nav ul{display:inline-block;padding:0;margin:0;}就ok了,但是在IE6中不行。
1) 在IE6、IE7中不识别display:inline-block属性,但使用inline-block属性在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表症。
2) 在IE5.5中开始支持 inline-block 。你可以使用 inline-block 使对象获得布局而无需指定确切的高( height )和宽( width )。
3) In IE 6 and 7 inline-block works only on elements that have a natural display: inline.
意思是说,IE6/7的inline-block属性只对原生默认的内联元素(span, a, em......)有效,对于块级元素(div,p,ul......)无效。
IE doesn't apply the value inline-block for the CSS display property on HTML elements that default to block level.
4) 那么现在有两个结论: 1、IE6/7不识别inline-block,只是触发了layout,表现跟真实一样。
2、IE6/7不完全支持inline-block,只对内联元素有效。
5) 找到了官方的说法,应该算是最正宗的了吧。。
The following table shows Cascading Style Sheets (CSS) properties and corresponding values that, if set, cause an element to have layout.
以下属性一旦设置,将触发元素的layout:
CSS propertyValue
display inline-block
height any value
float left or right
positionabsolute
width any value
-ms-writing-modetb-rl
zoom any value
6) 延伸一个问题:IE下块元素如何实现 display:inline-block 的效果?
有两种方法:
1、先使用 display:inline-block 属性触发块元素,然后再定义 display:inline,让块元素呈递为内联对象(两个display 要先后放在两个 CSS 声明中才有效果,这是 IE 的一个经典 bug ,如果先定义了 display:inline-block,然后再将 display 设回 inline 或 block,layout 不会消失)。代码如下(…为省略的其他属性内容):
div {display:inline-block;...}
div {display:inline;}
2、直接让块元素设置为内联对象呈递(设置属性 display:inline),然后触发块元素的 layout(如:zoom:1 等)。代码如下:
div {display:inline; zoom:1;...}
最后问题可以这样解决:
.nav{...
text-align:center;
}
.nav ul{display:inline-block !important;*display:inline;zoom:1;margin:0;padding:0;}
display:inline-block !important;能在FF,IE7以上的浏览器中实现,因为他们支持;
*display:inline能使IE6保持行内元素,zoom:1能触发IE6的layout,就能实现display:inline-block的效果。
inline-block 兼容性的更多相关文章
- inline,block,inline-block的区别
display:block block元素会独占一行,多个block元素会各自新起一行.默认情况下,block元素宽度自动填满其父元素宽度. block元素可以设置width,height属性.块级元 ...
- 块状元素和内联元素 【inline block】
// 9) { colorRandom += colorArray[randomV - 10]; } else { colorRandom += randomV; } } currentEle.css ...
- inline, block, and inline-block
总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...
- display:inline block inline-block 的区别
原文地址:http://blog.csdn.net/jly036/article/details/5506182 display:block就是将元素显示为块级元素. block元素的特点是: 总是在 ...
- inline,block,inline-block解析
display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div& ...
- inline-block,inline,block,table-cell,float
float:left ---------------------------------------------------------------------------------------- ...
- CSS3如何去除 inline block 元素之间多出的空格
display: inline-block 属性很好的避免了元素的浮动问题,但是会有点小问题,就是 inline-block 元素间的回车会被显示为一个空格.然而,我们写代码时,都是用回车来格式化的. ...
- CSS 概念 Block Inline Containing block
Block 元素 包括 "block-level box," "block container box," and "block box" ...
- [CSS3] CSS Display Property: Block, Inline-Block, and Inline
Understanding the most common CSS display types of block, inline-block, and inline will allow you to ...
- 大话css之display的Block未解之谜(一)
用了几年的css了,css中inline | block |inline-block|table|flex从来没有做过系统的整理和分析,网上的分析文章也很多,零散. 今天有空,就在这做一下整理分析 b ...
随机推荐
- BZOJ3771: Triple
额我不是来发题解的,只是非常郁闷= =,这题的答案最大是1.2e9/6左右,所以用ntt的话要在模意义下除以6,不能最后除,否则刚好爆掉= = #include<bits/stdc++.h> ...
- Django基础,Day9 - 静态文件目录与路径设置说明(eg. images, JavaScript, CSS)
静态文件路径设置官方说明 1. Make sure that django.contrib.staticfiles is included in your INSTALLED_APPS. 2. In ...
- 关于Hibernate5.x的那点事
1.如果采用程序建表: 4.x版本: Configuration cfg = new Configuration().configure(); SchemaExport se = new Schema ...
- 开始学红帽的RHCE课堂有2次课了,要记下自己的学习经历
我终于申请成功了博客园的博客了. 红帽课堂已经开始2次了,这里的记录可能不分顺序,每天记录一点自己的学习内容.方便自己以后查询. 已经学了以下内容: 1.访问命令行 使用桌面的访问命令 GNOME 3 ...
- idea导入maven项目,web browser远程单步调试
问题:之前用idea14.1.3导入maven项目后,maven的dependencies不能自动解决依赖,到处都是红色的红线,看着就受不了.虽然不影响命令行编译,但是看着实在是不爽.总结下面几小步: ...
- DAY6 处理http头,格式化输出
<html> <head> <script> function insertStr(str1,n,str2){ if(str1.length<n){ retu ...
- javascript判断图片是否加载完成方法整理
有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果.本文主要整理了几种常见的javascipt判断图片加载 ...
- 垂直居中display:table;
父级元素 display:table: 子元素 display:table-cell:vertical-align:middle:
- 线性SVM
(本文内容和图片来自林轩田老师<机器学习技法>) 1. 线性SVM的推导 1.1 形象理解为什么要使用间隔最大化 容忍更多的测量误差,更加的robust.间隔越大,噪声容忍度越大: 1.2 ...
- objccn-相机工作原理
感觉这个世界上最幸福的事情就是工作和兴趣结合到一起了.这一阵子总是在听再看有关摄影的种种,今天在objccn上又看到这个,哈哈~ 轻轻一按,相机就把光子转化成了比特,于是一张照片就保存到了手机里. 一 ...