gpt4 book ai didi

javascript - Div 元素如何在 CSS3 Flexbox 中只占用其内部内容的空间?

转载 作者:行者123 更新时间:2023-11-28 08:46:34 25 4
gpt4 key购买 nike

我有以下 HTML 结构:

<div class="indicator"></div>
<div class="mainPanel">
<div>Speichern</div>
<div>Style</div>
<div>Speichern</div>
</div>

mainPanel 包含三个元素。位于中心的元素应始终位于中心,如下所示:

enter image description here

这是我使用的css代码

.indicator {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
position: absolute;
width: 150px;
height: 50px;
border-right: 1px solid red;
z-index: -10;
}
.mainPanel {
width: 300px;
height: 50px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
display: -webkit-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
}
.mainPanel > div {
padding: 0 10px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1 1 25%;
border: solid 1px #999;
}
.mainPanel > div:nth-child(1) {
background: red;
display: inline-block;
}

.mainPanel > div:nth-child(3) {
background: lime;
}

.mainPanel > div:nth-child(2) {
flex: 900 0 auto;

background: yellow;
text-align: center;
}

我希望中间的内容不能超过左右两部分。

如何让左右元素的宽度最多等于其内部内容的大小?如何实现左右元素的宽度不能小于其内部内容?

它应该是这样的:

enter image description here

最佳答案

我认为这在 css3 flexbox 中是不可能的(目前)。但是你可以这样吗?

http://jsfiddle.net/fggxq753/1/

z-index: 10;

由于无论表格内容如何,​​您总是希望中间文本居中,因此我已将其从表格中删除并以更高的 z-index 将其放置在顶部。它适用于除 safari 之外的所有浏览器(由于缺乏 flex 支持)。

如果你想要在所有浏览器中工作,我会使用 display: table;

http://jsfiddle.net/fggxq753/2/

float 标题的缺点是,如果其他单元格足够长,它们可能会与其重叠。要解决此问题,您可以使用标题的中央单元格并使用 javascript 自动计算它的填充,但它会变得有点困惑。

关于javascript - Div 元素如何在 CSS3 Flexbox 中只占用其内部内容的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27557775/

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