转自:
http://hi.baidu.com/tean/blog/item/8631e824d753b41a4c088d83.html
IE6下对display:inline-block;支持的不是很好。网上有资料说:修改inline元素的display属性为inline-block后,所有的浏览器都是支持的。修改block元素的display属性为inline-block后,IE6及以下的老版浏览器都是不支持的。
display:inline-block;
将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)
并不是所有浏览器都支持此属性,目前支持的浏览器有:Opera、Safari在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*/
分享到:
相关推荐
要让IE支持`inline-block`效果,有以下两种常见的解决方案: 1. 使用双`display`属性技巧:先设置`display:inline-block`触发layout,然后立即设置`display:inline`。代码示例如下: ```css div { display: ...
- `display: inline-block` 在某些老版本的浏览器,尤其是IE6和IE7中,存在兼容性问题。在Firefox中,可以使用 `-moz-inline-box`,但会有副作用,例如`text-align`的问题,需要使用私有属性 `-moz-box-align` 解决...
对于那些不支持inline-block的旧版浏览器,例如Firefox2,解决方案是使用Mozilla特有的"-moz-inline-stack"属性。这个属性在支持它的浏览器中会忽略掉inline-block,而在不支持inline-block的浏览器中(如Firefox2)...
其实我们以为应该是这样的:但是ie6,ie7是这样显示的:IE6/IE7下对display:inline-block的支持性不好。解决方案:直接让块元素设置为内
`display:inline-block`是CSS布局中的一个重要属性,用于将元素...同时,CSS Flexbox和Grid布局的出现提供了更强大且兼容性更好的布局解决方案,但在某些场景下,`display:inline-block`仍然是一个简单且实用的选择。
需要注意的是,IE6 和 IE7 对 `display: inline-block` 的支持并不完全。虽然它们确实可以识别这个属性,但是表现不完美,特别是在处理空白间距问题上。为了使这些老版本的 IE 浏览器支持 `inline-block`,可以使用...
本文主要关注`inline-block`元素的间距问题及其解决方案,同时也会对比`block`和`inline`的特性。 首先,`display: inline-block` 是一种混合型布局模式,它结合了`inline`元素的并排显示特性与`block`元素的宽高...
虽然`display:inline-block`非常实用,但它在不同浏览器中的表现可能存在差异,尤其是在IE等旧版本浏览器中。例如,在IE6和IE7中,可能会出现布局错乱的问题。 为了解决这些问题,可以采用以下几种方案: - **使用...
对于旧版浏览器,如IE6和IE7,直接使用inline-block可能会遇到显示问题。在这些浏览器中,即使我们给元素设置了display:inline-block属性,元素仍然可能无法正确地以inline-block的方式显示。为了解决这个问题,我们...
除了上述兼容性问题的解决方案外,还有一个需要注意的问题是使用display: inline-block时元素之间可能会出现不必要的空白。这是因为在HTML中,两个行内元素之间的空白字符会被浏览器解析成一个空格,而空白空格会被...
此时,`inline-block`布局能提供一个更为灵活的解决方案。 `inline-block`属性使得元素既能保持内联元素的特性(即不占据整行,允许其他元素并排显示),又能像块级元素一样设置宽高。然而,不同浏览器对`inline-...
此外,有一种针对IE6/7的特定解决方案是使用CSS hack,即`.element {display:inline-block !important; display:block;}`。由于IE6/7不支持`!important`属性,所以它们会把元素解析为`block`,而在其他支持`!...
本文将详细解析inline-block的概念,以及在不同浏览器中的表现和兼容性问题,并探讨相应的解决方案。 1. **inline-block的概念** inline-block值使得元素生成一个行级的块容器,其内容被格式化为一个块元素,而...
在CSS布局中,`inline-block`元素是一种常用的布局方式,它可以将元素表现为内联元素的同时,保持块级元素的特性,如设置宽高。然而,使用`inline-block`时会遇到一个问题,即元素之间会自动产生一个大约4像素(在...
首先,让我们看看在FF3、IE6(使用IE Tester模拟)、IE7和Safari4中,行级元素使用`display: inline-block`的表现。在这些浏览器中,使用`&-n-b-s-p-;`(即非中断空格字符实体)的兼容性最佳。以下是一个示例代码: ...
对于早期版本的IE浏览器(尤其是IE7及以下),`display: inline-block`的兼容性存在问题。可以通过以下方式解决: ```css #demo div { display: inline-block; /* 标准浏览器 */ *display: inline; /* IE7及以下 ...
- **`display:inline-block`不支持**:IE6-7不支持`display:inline-block`,可使用`zoom:1`和`display:inline`来模拟。 - **图片默认间距**:IE浏览器中图片之间有默认间距,可以设置`img{display:block;}`来消除...
以下是对这个问题的详细解释和解决方案: ### 问题描述 在IE浏览器中,当`<button>`元素内部包含文字或图像时,可能会由于默认样式和盒模型差异,导致按钮内容在水平方向上被拉伸。这通常是由于IE的盒模型与W3C标准...
- 将`display`属性设置为`inline`会使元素表现为行内元素,这可以避免IE6对于浮动元素的错误计算。 - 在IE6中,通过将元素设置为行内元素,可以防止双倍margin的出现,从而修复布局问题。 **特殊情况处理:** 有时...
这份文档包含了8个在使用CSS进行网页设计时非常实用的解决方案。 **1. 浏览器特定选择器** 在CSS中,针对不同浏览器的特定选择器是解决跨浏览器样式问题的关键。以下是一些常见选择器: - `* html {}`:适用于IE6...