margin - 空跨度导致奇怪的边距/填充

标签 margin html css

当我放置固定大小的显示 block 时 <span> <div> 中的元素它会在 <div> 的底部造成奇怪的边距或填充(我不知道) .当<span>里面有文字时元素,一切都很好。这是什么原因?我该如何解决?我在 Firfox 和 Chrome 上进行了测试。

Weird space http://picster.at/img/0/9/6/0968c75ddf29ad07cb71eee2cff472a9.png

<!DOCTYPE html>
<html>

<head>
    <style type="text/css">
    <!--
    .outer {
        background: grey;
        padding: 4px;
    }
    .inner {
        display: inline-block;
        background: cyan;
        height: 40px;
        width: 40px;
    }
    -->
    </style>
</head>

<body>
    <div class="outer">
        <span class="inner">Foo</span>
    </div>

    <br>

    <div class="outer">
        <span class="inner"></span>
    </div>
</body>

</html>

更新:

float 将是显示 block 元素的替代方案。完全有效,但是我想了解此示例中的显示 block 有什么问题。此外,对我来说它看起来不像是空白问题,因为这只会影响左/右边距(如果我错了请纠正我)。

最佳答案

因为你使用的是inline-block;,这是inline-blockfloats不同的最好例子>/p>

Demo

.outer {
    background: grey;
    padding: 4px;
    overflow: hidden;
}

.inner {
    float: left;
    background: cyan;
    height: 40px;
    width: 40px;
}

inline-block 留下 4px 边距的空白。

More Info

关于margin - 空跨度导致奇怪的边距/填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16188489/

相关文章:

html - 为什么我的列表图像不与底部对齐?

css - 使用 CSS 为表格行添加边框或边距

html - 无论窗口大小如何定位元素

html - 在一行中对齐循环输出

c# - 如何从 anchor 中的 href 调用 MVC 操作方法?

css - 如何让行内 div 内的按钮进行换行? ( flex 和 Angular )

css - 想要居中一个div

html - CSS 的间距问题

javascript - 分割字符串并返回对象

html - 除了一个 div 之外,整个 body 标签上的 CSS 不透明度