【发布时间】:2018-10-16 21:53:20
【问题描述】:
我想创建以下布局,其中标题(绿色)跨越屏幕的整个宽度并由两个元素组成:
- 一张图片(粉红色),左上对齐,具有下一个元素的高度
- 一个文本块(红色),右上对齐。它由两个堆叠的元素组成:一个文本 div(黄色)和一个按钮。宽度按钮等于文本宽度。
我的代码如下:
.header{
background-color: green;
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.flex-element{
display: inline-block;
}
.picture_container{
background-color: pink
}
.picture{
height: 100%;
}
.text_container{
background-color: red
}
.text{
background-color: yellow;
}
<div class="header">
<div class="flex-element picture_container">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/55/Tux_Enhanced.svg/154px-Tux_Enhanced.svg.png" alt="" class="picture">
</div>
<div class="flex-element text_container">
<div class="text">
AAAAAAAAAA <br>
BBB
</div>
<button type="button" name="button" style="width: 100%">foo</button>
</div>
</div>
并给出以下输出:
问题是粉红色块和红色块之间没有“空格”,并且它们不是顶部对齐的。我知道我可以使用 css grid 解决它,但我想知道它为什么不起作用。
问题:如何让justify-content: space-between有效果?
【问题讨论】:
-
您使用的是哪个浏览器?在 Chrome 中尝试了您的代码,它工作正常。
-
@Goombah Firefox 开发版 63.0b14(64 位)
-
@scraaappy:感谢您创建 sn-p。我可以在那里看到代码正在运行。
-
@Goombah:你让我解决了问题:在
.header{…}中添加display: -moz-box;解决了问题。 -
我认为你想要一个 margin-left: auto 在你的 flexbox 的右边元素上