html - 是什么导致了 flex 元素和 inline-block 元素的宽度差异?

标签 html css flexbox

看这个 fiddle :

https://jsfiddle.net/9hnj0b8v/3/

两个元素的唯一区别:

.label1
{
  display: inline-block;
}

.label2
{
  display: flex;
}

所以这两个标签除了一个设置为 inline-block 而一个设置为 flex 之外是相同的。为什么它们的宽度不同?为什么一个超出其容器而另一个没有?

最佳答案

您正在使用 display: inline-block 设置 span 元素的样式。默认情况下, block 级元素是其父容器宽度的 100%。当您使用 white-space: nowrap 强制输入和跨度位于同一行时,这会强制跨度超出父容器的边界。

Why do they have a different width? Why is one exceeding its container and the other does not?

使用 display: flex 允许子元素缩小以适应可用空间,因此 span 元素以其父元素的 100% 宽度开始,然后缩小以填充可用空间。

关于html - 是什么导致了 flex 元素和 inline-block 元素的宽度差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54786510/

相关文章:

javascript - 如何在 html Canvas 中添加镜头光晕效果

javascript - KineticJs Canvas 中用户的图像 uploader

html - sIFR3 平滑和 IE

javascript - 是否可以精确地居中 Masonry.js 内容?

angular - 使用 Flex 动态创建卡片并安排其布局

javascript - Bootstrap 模态目标内容未显示在模态主体中

html - 旋转木马高度 100%,旋转木马标题对齐中间和图像指示器

html - 为什么框架集没有加载到页面中?

html - 如何使用带有 flexbox 的广告 block 创建画廊

html - 对齐多个 Flexbox 行的列