gpt4 book ai didi

html - 如何让flexbox 'justify-content: space-between'生效?

转载 作者:行者123 更新时间:2023-11-28 15:09:38 34 4
gpt4 key购买 nike

我想创建以下布局,其中标题(绿色)横跨屏幕的整个宽度并由两个元素组成:

  • 一张图片(粉红色),左上对齐,并具有下一个元素的高度
  • 一个文本 block (红色),右上对齐。它由两个堆叠元素组成:一个文本 div(黄色)和一个按钮。宽度按钮等于文本宽度。

预期的输出是这样的: enter image description here

我的代码如下:

          .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>

并给出以下输出:

enter image description here

问题是粉色和红色 block 之间没有“空间”,而且它们没有顶部对齐。我知道我可以使用 css 网格解决它,但我想知道为什么它不起作用。

问题如何让justify-content: space-between有效果?

最佳答案

这可能是浏览器问题。事实上,我正在使用 Firefox Developer Edition 63.0b14 作为浏览器。

然后一个 hack 是在 .header CSS 定义中添加 display: -moz-box;。不过,这很奇怪,因为 “Flexbox 在主要浏览器中工作不再需要前缀属性值(例如 -moz-box)。”(参见 Michael_B's comment)。 因此,仍然会赞赏一个不那么骇人听闻的解决方案。

完整代码:

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>test</title>
<style media="screen">
.header{
background-color: green; 
display: -moz-box;
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;
}
</style>
</head>
<body>
<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>
</body>
</html>

关于html - 如何让flexbox 'justify-content: space-between'生效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52830947/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com