IE6、7下块级元素设置display:inline-block不换行的解决办法

使用背景

在实际的工作中,我们有的时候会把块元素设置为inline-block,这样做的目的有2个,一是块元素能够排列到一行,二是块元素就形成包裹性,能够自适应content area,而不必设置宽和高(依实际情况而定),在现在浏览器中没有什么问题,但是IE6、7下,当把block元素设置成inline-block之后,还是在分别的两行,下面我们看一下现象。

代码以及IE6、7下的表现

CSS:

body {
        padding: 10px;
    }

    .block_to_inlineblock,
    .inline_to_inlineblock {
        padding: 10px;
        margin: 10px;
        float: left;
    }

    .block_to_inlineblock div {
        display: inline-block;
        width: 200px;
        height: 50px;
        text-align: center;
        line-height: 50px;
        font-size: 12px;
    }

HTML:

    <div class="block_to_inlineblock bdr_blu">
        <h3>block元素设置成inline-block</h3>
        <br/>
        <div class="bdr_red">
            DIV:inline-block
        </div>
        <div class="bdr_blu">
            DIV:inline-block
        </div>
    </div>

现代浏览器chrome下的表现

IE6下的表现

IE7下的表现

IE8+下的表现形式

可见,chrome以及IE8+下display:inline-block按正常显示,而IE6、7下显示是不正确的,那么解决办法是先把block元素排成一行,然后再触发hashLayout,这样就能很好的解决这个问题了。

解决方案

    .block_to_inlineblock div {
        display: inline-block;
        width: 200px;
        height: 50px;
        text-align: center;
        line-height: 50px;
        font-size: 12px;
        *display: inline;
        *zoom:1;
    }

增加:*display: inline;是为了让块元素排成一行,*zoom:1的作用是触发hashLayout,能够支持设置宽、高、line-height等一系列属性。然后看下效果:

IE6下的表现:

IE7下的表现

时间: 2024-10-25 07:32:44

IE6、7下块级元素设置display:inline-block不换行的解决办法的相关文章

CSS 中的内联元素、块级元素、display的各个属性的特点

CSS的内联元素和块级元素 块级元素<h1>-<h6>.p.dt是不可以内联块级元素的 1.block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 2.大体来说HTML元素各有其自身的布局级别(block元素还是inline元

CSS 中的内联元素、块级元素以及display的各个属性的特点

CSS的内联元素和块级元素 块级元素<h1>-<h6>.p.dt是不可以内联块级元素的 1.block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 2.大体来说HTML元素各有其自身的布局级别(block元素还是inline元

HTML 中块级元素设置 height:100% 的实现

HTML 中块级元素设置 height:100% 的实现 当你设置一个页面元素的高度(height)为100%时,期望这样元素能撑满整个浏览器窗口的高度,但大多数情况下,这样的做法没有任何效果. 为什么height:100%不起作用呢? 按常理,当我们用CSS的height属性定义一个元素的高度时,这个元素应该按照设定在浏览器的纵向空间里扩展相应的空间距离.例如,如果一个div元素的CSS是height: 100px;,那它应该在页面的竖向空间里占满100px的高度. 而跟W3C的规范,百分比的

block(块级元素)和 inline(内联元素) 的区别

<td style="word-break:break-all"> 强制换行 <td  style="width:80px;display:block;boverflow: hidden;">超出隐藏,注意要设置宽度. 内联转化为块状:display:block 或 float:left / right 块状转化为内联:display:inline; 但是要注意内联元素是不能设置宽度和高度的.那就要强制把内联元素转换为块级元素了 div这样的

块级元素设置position为absolute后的变化

当块级元素(如div)设置position为absolute后,原有默认100%的宽度消失,其中内容多宽就显示多宽 图一.不设置宽度的情况 图二.设置宽度为100%的效果

CSS 中 block 元素(块级元素)与 inline 元素(内联元素)详解

块元素 (block element) 一般是其他元素的容器元素,块元素一般都从新行开始,它可以容纳内联元素和其他块元素 , 常见块元素是段落标签“P”.“form”这个块元素比较非凡,它只能用来容纳其他块元素. 假如没有 CSS 的作用,块元素会顺序以每次另起一行的方式一直往下排.而有了 CSS 以后,我们可以改变这种 HTML 的默认布局模式,把块元素摆放到你想要的位置上去.而不是每次都愚蠢的另起一行.需要指出的是,table 标签也是块元素的一种,Table Based Layout 和 

css块级元素,内联元素,内联块状元素

块元素 什么是块级元素?在html中<div><p><h1><form><ul>之类的就是块级元素.设置display:block是就将元素显示为块级元素.如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点. 块级元素特点: 1.每个块级元素都从新的一行开始,并且其后的元素也另起一行. 2.元素的高度,宽度,行高以及顶和底边距都可设置. 3.元素宽度在不设置的情况下,是它本身你窗口的100%(和你元素的宽度一致),除非设定一个宽

HTML 行内元素和块级元素的理解及其相互转换

块级元素:div, p(段落), form(表单), ul(无序列表), li(列表项), ol(有序列表), dl(定义列表), hr(水平分割线), menu(菜单列表), table(表格)... 特点:1.块级元素会独占一行,其宽度自动填满其父元素宽度. 2.可以设置width,height属性.(即使设置了宽度,也是独占一行的,除非用float属性等特殊情况) 3.可以设置margin(外边距)和padding(内边距). 行内元素:span, strong, em, br, img,

css块级元素和行内元素详细解析

块级元素和行内元素是布局中常见的两种基本元素,但是未必有很多人深入的研究它们的细微差别. 常见块级元素:div  p  form ul ol li 等: 常见的行内元素:span stronh em; 它们的区别主要有以下几点: 1.块级元素独自占一行且宽度会占满父元素宽度,行内元素不会独占一行,相邻行内元素可以排在同一行. 如图: <head> <meta charset="UTF-8"> <title>测试</title> <s