【问题标题】:What is the difference between display: inline-block and float: leftdisplay: inline-block 和 float: left 有什么区别
【发布时间】:2017-08-02 04:28:59
【问题描述】:

我想知道为什么不一直使用 display:inline-block 来代替 float:left。就布局而言,内联块似乎更容易控制,并且没有清除浮动等问题。我试图弄清楚为什么使用一个而不是另一个。

非常感谢,

艾米丽。

【问题讨论】:

标签: html css inline display


【解决方案1】:

最大的不同是你不需要像做浮动那样清除内联元素。

Float 从正常的 DOM 流中移除一个元素 - 允许内容包装它。这也意味着您需要清除标记中下一个对象上的浮动,以摆脱浮动条件。

inline-block 不需要你清除。

【讨论】:

    【解决方案2】:

    浮动的目的是让文本环绕它。所以它被移动到左侧或右侧并从页面流中取出。然后包含其他文本的行框避免与浮动元素重叠。它形成了一个块级的块容器。它不与任何其他内容垂直对齐。

    body {
      width:300px; 
    }
    .float-example span {
      float:left;
      width: 100px;
      border:2px dashed red;
    }
    <section class="float-example">Lorem ipsum dolor sit amet, consectetur 
    adipiscing elit, <span>I like to use float!</span> sed do eiusmod tempor
    incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</section>

    inline-block 的目的是成为一个位于 line box 内的块容器。它在内容的正常流中形成了一个内联级别的块容器。它与所在行框的其他内容垂直对齐。

    body {
      width:300px; 
    }
    
    .inline-block-example span {
      display:inline-block;
      width: 100px;
      border:2px dashed red;
    }
    <section class="inline-block-example">Lorem ipsum dolor sit amet, consectetur
    adipiscing elit, <span>I like to use inline-block!</span> sed do eiusmod tempor
    incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </section>

    【讨论】:

    • 感谢 alohci,这是一个非常好的答案,现在很有意义。
    • 我都知道都是块级容器,但是为什么float是块级容器呢?是什么让它成为块级的?
    猜你喜欢
    • 2012-02-16
    • 2014-01-02
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 2015-01-27
    • 1970-01-01
    相关资源
    最近更新 更多