- 此问题在此处已有答案**:
Align 3 unequal blocks left, center and right(4个答案)
2天前关闭。
我有三个div包含文本。文本有不同的长度,这意味着如果我把这三个div放到另一个div中,如果我justify-content: center
这个div,三个div中中间的那个不会在页面的中间。我想要实现的是让中间的div在页面的中间,第一个div在它的左边,第三个在右边。其间没有空间(除了填充)。
编辑:我不知道我是否可能不清楚我在问什么:我想居中.container-footer-3
,但.footer-company
("中心")应该在页面的中心,而不是在div的中心。-〉换句话说,我如何居中父div,包含所有这3个div,但不是div的中心到页面的中心,而是"中心" div到页面的中心?
.container-footer-3 .nav {
display: inline-table;
padding: 0 20px 0 20px;
}
.footer-nav {
display: flex;
justify-content: center;
}
.footer-company{
position: absolute;
left: 50%;
margin-left: -50px;
width: 100px;
height: 100px}
<div class="footer-nav">
<div class="container-footer-3">
<div class="footer-explore nav">
<h20>Left</h20>
<ul>
</ul>
</div>
<div class="footer-company nav">
<h20>Center</h20>
<ul>
</ul>
</div>
<div class="footer-socials nav">
<h20>RightRightRightRight</h20>
<ul>
</ul>
</div>
</div>
</div>
4条答案
按热度按时间vdzxcuhz1#
如果你想使用flex,那么你可以通过在flex容器的子元素中添加
flex-basis: 100%
来使所有三个div共享相同的宽度。我简化了你的HTML来更好地展示如何做到这一点。100%只是表示它们都被平等对待。它不像100%的宽度。然后,如果要将
.footer-explore
右对齐,则需要在.footer-explore
内添加一个额外的div。请注意,我添加了轮廓,使对齐更加清晰。
你也可以使用一个网格,设置中间的列来适应它的内容,设置边上的两个div来填充剩余的空间(使用
1fr
)。同样,如果你想让它右对齐,你需要在.footer-explore
里面添加一个额外的div。为了清晰起见,我在这里也添加了一个outline
。一个二个一个一个
cx6n0qe32#
已经有很多答案了,但我想我会给予我的2美分,因为没有一个答案实际上显示了一个例子,其中最左边和最右边的列没有扩展到全宽。
在
grid
布局中,可以使用以下命令定义3列:第一列和最后一列(左列和右列)将根据内容宽度进行拉伸,而布局保持为3列布局,中间一列的值为
auto
。然后,您可以使用
justify-self
指定每个grid
-项的位置,这在flex
-和grid
-布局中都有效-我在示例中使用了flex
。这个解决方案不是完全响应的,但是你可以在grid-items上指定一个
max-width
值,这将使它对大多数屏幕都有响应,而不是像移动的设备这样的小屏幕。x一个一个一个一个x一个一个二个x
os8fio9y3#
我不知道这是否与你所寻找的完全一致,但css网格可能是你的答案
92vpleto4#
柔性盒解决方案如下所示:
左div和右div允许使用flex-grow进行增长:1;中心的flex-grow为0,所以它会缩小。如果我们将左右div的flex-basis设置为100%,那么它们会扩展到相同的大小。我在屏幕的中心位置画了一条红线,这样你就可以看到中心div实际上是居中的。