IE6/IE7下对display:inline-block的支持性不好。
1、inline元素的display属性设置为inline-block时,所有的浏览器都支持;
2、block元素的display属性设置为inline-block时,IE6/IE7浏览器是不支持的;
对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行,允许空格。(准确地说,应用此特性的元素现为内联对象,周围元素保持在同一行,但可以设置宽度和高度等块元素的属性)
IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表征。从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline-block属性无法实现inline-block的效果。这时块元素仅仅是被display:inline-block触发了layout,而它本身就是行布局,所以触发后,块元素依然还是行布局,而不会如Opera中块元素呈递为内联对象。
IE6下块元素如何实现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 或float属性等)。代码如下:
div { display:inline-block; _zoom:1;_display:inline;} /*推荐*/
div { display:inline-block; _zoom:1;*display:inline;} /*推荐:IE67*/
相关推荐
对于内联元素,如`<a>`或`<span>`,在IE中设置`display:inline-block`虽然表面上看起来有效,实际上这是因为IE触发了"hasLayout"机制,而不是真正理解`inline-block`。对于块级元素,直接设置`display:inline-block`...
`display:inline-block`是CSS布局中的一个重要属性,用于将元素...同时,CSS Flexbox和Grid布局的出现提供了更强大且兼容性更好的布局解决方案,但在某些场景下,`display:inline-block`仍然是一个简单且实用的选择。
- `display: inline-block` 在某些老版本的浏览器,尤其是IE6和IE7中,存在兼容性问题。在Firefox中,可以使用 `-moz-inline-box`,但会有副作用,例如`text-align`的问题,需要使用私有属性 `-moz-box-align` 解决...
其实我们以为应该是这样的:但是ie6,ie7是这样显示的:IE6/IE7下对display:inline-block的支持性不好。解决方案:直接让块元素设置为内
对于那些不支持inline-block的旧版浏览器,例如Firefox2,解决方案是使用Mozilla特有的"-moz-inline-stack"属性。这个属性在支持它的浏览器中会忽略掉inline-block,而在不支持inline-block的浏览器中(如Firefox2)...
在示例代码中,我们看到一系列的 `<a>` 元素,它们设置了 `display: inline-block`,但它们之间存在明显的空白。 为了解决这个问题,我们可以采取以下两种方法: 1. **设置父元素的 `font-size: 0`**: 在父容器 ...
例如,在IE6和IE7中,可能会出现布局错乱的问题。 为了解决这些问题,可以采用以下几种方案: - **使用Polyfill**:对于不支持`display:inline-block`的浏览器,可以使用Polyfill来提供兼容性支持。 - **使用`...
本文主要关注`inline-block`元素的间距问题及其解决方案,同时也会对比`block`和`inline`的特性。 首先,`display: inline-block` 是一种混合型布局模式,它结合了`inline`元素的并排显示特性与`block`元素的宽高...
此外,随着CSS Flexbox和Grid布局的普及,`inline-block`在某些场景下的使用频率逐渐下降,这些新的布局方式提供了更强大且兼容性更好的解决方案,可以更好地控制元素的排列和间距,从而避免了类似`inline-block`的...
本文将针对IE6, IE7, IE8中常见的兼容性问题进行深入探讨,并提供相应的解决方案。 #### 二、CSS兼容性问题及解决方案 ##### 2.1 div的垂直居中问题 **问题描述**:在某些情况下,开发者希望将一个元素在其父容器...
### CSS布局解决方案 #### 前言 在前端开发中,布局是构建用户界面的关键步骤之一。良好的布局不仅能够提高网站或应用的可用性和用户体验,还能优化资源加载速度,提升性能。本文档将深入探讨几种常用的CSS布局技巧...
这个问题主要出现在IE浏览器的旧版本中,特别是IE6和IE7,而在现代浏览器如Firefox、Chrome、Safari等中则很少遇到。这个BUG表现为在设置好图片的margin和padding为0的情况下,图片之间仍然会出现不必要的间距。 ...
### CSS兼容IE6, IE7和Firefox的技巧与总结 #### 概述 在Web开发过程中,确保网页在不同浏览器中的兼容性是一项重要的任务。早期的浏览器如Internet Explorer 6 (IE6)、Internet Explorer 7 (IE7) 以及 Firefox 对...
解决这个问题的一个常见方法是在IE6下为该元素添加`display: inline;`。 ```css #IamFloat { float: left; margin: 5px; /* 其他浏览器使用5px */ *margin: 10px; /* IE6/7使用10px */ display: inline; /* ...
<div class="demo"><span>我是一个span</span><span>我是一个span</span><span>我是一个span</span><span>我是一个span</span></div> ``` 2. **CSS设置父元素的font-size为0** 设置父元素的`font-size: 0`,可以使...
在IE浏览器中,当`<button>`元素内部包含文字或图像时,可能会由于默认样式和盒模型差异,导致按钮内容在水平方向上被拉伸。这通常是由于IE的盒模型与W3C标准盒模型不同,以及IE对内联元素的渲染方式造成的。 ### ...
首先,让我们看看在FF3、IE6(使用IE Tester模拟)、IE7和Safari4中,行级元素使用`display: inline-block`的表现。在这些浏览器中,使用`&-n-b-s-p-;`(即非中断空格字符实体)的兼容性最佳。以下是一个示例代码: ...
本文将详细介绍如何解决div错位问题以及针对IE6、IE7和IE8的样式不兼容解决方案。 #### 一、理解IE6、IE7、IE8的CSS渲染差异 1. **IE6的盒模型问题**:IE6在处理CSS盒模型时存在bug,导致元素的宽度计算出现问题。...
本文将详细介绍一种适用于IE6、IE7及Firefox的CSS兼容性解决方案。 #### 一、CSS Hack技巧 **1\. IE6/IE7/FF兼容Hack** 为了使CSS样式能够分别针对不同的浏览器进行定制,开发者经常采用CSS Hack技巧。例如,可以...
本篇文章将针对Firefox、IE5、IE5.5、IE6、IE7以及IE8等浏览器之间的兼容性问题进行详细分析,并提供相应的解决方案。 #### 一、CSS Hack技巧 **1. 使用条件注释** 条件注释是Microsoft为IE提供的特性,可以用来...