【问题标题】:Why do two inline-blocks next to each other use more than their total width?为什么相邻的两个内联块使用的宽度超过了它们的总宽度?
【发布时间】:2013-09-28 22:48:00
【问题描述】:

如果问题措辞不当,请见谅。

我正在尝试将两个跨度放在一起。 他们的公共容器有100% 宽度,所以我认为给它们宽度5%95% 会起作用,但事实并非如此。我还将所有内容的边距和填充设置为零。

请看小提琴: http://jsfiddle.net/q5ZX9/

这是上面小提琴的代码:

HTML(正文):

<span id='outer'>
    <h1>Outer</h1>
    <span id='left'>
        left
    </span>
    <span id='right'>
        right
    </span>
</span>

CSS:

*{
    margin:0;
    padding:0;
}
#outer
{
    width:100%;
    display:inline-block;
    background:rgba(0,0,0,0.5);
}
#left
{
    width:5%;
    display:inline-block;
    background:rgba(200,0,0,0.5);
}
#right
{
    width:95%;
    display:inline-block;
    background:rgba(00,0,200,0.5);
}

【问题讨论】:

    标签: css layout width html


    【解决方案1】:
    #left{
      float: left;
      width:5%;
      display:inline-block;
      background:rgba(200,0,0,0.5);
    }
    #right{
      float: left;
      width:95%;
      display:inline-block;
      background:rgba(00,0,200,0.5);
    }
    

    【讨论】:

    • 是的!我已经把 float:right;正确,其他一切都相同,但还没有尝试过。谢谢 !如果你能说一下为什么没有浮动它就不能工作,那也很棒?
    • 块级元素通常从新行开始,因此您必须将它们按比例大小向左或向右浮动以使它们彼此相邻。
    • 好的,但是这些是内联块,所以他们不应该已经这样做了吗?
    • 不,我说的是“块级”,我的意思是inline-block,您可以只设置inline,然后它们将彼此相邻,但在这种情况下它们不会' 接受宽度属性。总而言之,最好给他们一个浮动,比如当你创建导航列表时,还有块级别,你设置例如ul li { float: left; ... }。如果您想以display:table-cell; 为例,请查看此Fiddle
    • 好的。我会记住这个解决方案,我希望 :) 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多