gpt4 book ai didi

html - 使元素等于最宽的列和中心

转载 作者:可可西里 更新时间:2023-11-01 13:41:26 24 4
gpt4 key购买 nike

我有两个并排的单元格。

单元格由内部容器界定,而该容器由外部容器界定。

想法是让两个单元格的宽度相等,即使它们的内容不同。

每个单元格的宽度必须是最宽元素的宽度。

然后内部容器将居中(宽度应为最宽单元格的两倍)。

目前我有两个结果:

  1. 它们的宽度相同,但扩展到可用页面宽度的一半。
  2. 内容器向中心收缩但细胞不均匀宽度。

没有 javascript 是否可以实现我想要的?

body {
background-color: lime;
}
.container {
margin: 20px;
}

.fb {
display: flex;
justify-content: center;
}
.fb-container {
display: flex;
align-items: center;
flex: 1;
/* flex: 0; */

background-color: #fff;
border: solid 0.1rem rgba(0,0,0,.12);
}
.fb-item {
display: flex;
align-items: center;
justify-content: center;
flex: 1;

color: rgba(0,0,0, .87);
font-size: 14px; height: 46px;
padding: 0 16px;
}

.fb-item:not(:first-child) {
border-left: solid 1px rgba(0,0,0,.12);
}
<div class="container">
<div class="fb">
<div class="fb-container">
<div class="fb-item">
<span class="fb_label">Much longer</span>
</div>
<div class="fb-item">
<span class="fb_label">Short</span>
</div>
</div>
</div>
</div>

最佳答案

这个更适合CSS grid。您可以保留 flexbox 以居中。

body {
background-color: lime;
}

.container {
margin: 20px;
}

.fb {
display: flex;
justify-content: center;
}

.fb-container {
display: grid; /* Added this */
align-items: center;
grid-template-columns: 1fr 1fr; /* Added this */
/* to replace the middle border*/
grid-gap:1px;
background:#e6e6e6 padding-box;
/* */
border: solid 0.1rem #e6e6e6;
}

.fb-item {
display: flex;
align-items: center;
justify-content: center;
color: rgba(0, 0, 0, .87);
font-size: 14px;
height: 46px;
padding: 0 16px;
background-color: #fff;
}
<div class="container">
<div class="fb">
<div class="fb-container">
<div class="fb-item">
<span class="fb_label">Much loooooonger</span>
</div>
<div class="fb-item">
<span class="fb_label">Short</span>
</div>
</div>
</div>
</div>

或者我不推荐的 flexbox 的 hacky 想法:

body {
background-color: lime;
}

.container {
margin: 20px;
}

.fb {
display: flex;
justify-content: center;
}

.fb-container {
display: flex;
flex-direction:column; /* This will make them both equal */
transform:translateX(-50%); /* Hack */
}

.fb-item {
display: flex;
align-items: center;
justify-content: center;
color: rgba(0, 0, 0, .87);
font-size: 14px;
height: 46px;
padding: 0 16px;
background:#fff;
border: solid 0.1rem rgba(0,0,0,.12);
}
.fb-item:not(:first-child) {
border-left: none;
transform:translateY(-100%) translateX(100%); /* Hack */
}
<div class="container">
<div class="fb">
<div class="fb-container">
<div class="fb-item">
<span class="fb_label">Much loooooooonger</span>
</div>
<div class="fb-item">
<span class="fb_label">Short</span>
</div>
</div>
</div>
</div>

关于html - 使元素等于最宽的列和中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56817675/

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