gpt4 book ai didi

html - 如何在不指定宽度的情况下并排 float 两个 div,同时保持右侧 div 最小?

转载 作者:搜寻专家 更新时间:2023-10-31 22:12:25 25 4
gpt4 key购买 nike

我指的是解决方案:How do I float two divs side-by-side without specifying a width?

不过,我想要相反的星座:右边的 div 应该留在右边,同时占用最少的空间(只占用它的内容)和左边的 div 应该扩展到剩余空间。

我尝试了以下方法:

.right {
float: right;
background: red;
}
.left {
overflow: hidden;
background: green;
}
<div class="left">left div</div>
<div class="right">right div</div>

但是这会将右边的 div 放在换行符上,而左边的 div 会扩展到上面的整个宽度。

参见:https://jsfiddle.net/enRkR/973/

最佳答案

这是因为:

A float is a box that is shifted to the left or right on the current line.

摘自 http://www.w3.org/TR/CSS21/visuren.html#floats

因为右边 float 的 div 在新的一行上,所以它会出现在左边的 div 下面。通过将它放在左边的 div 之前,它们将在同一行。

在您的原始示例中,div 将像这样堆叠: enter image description here

当右边的 div 向右浮动时,它会移到当前行的右边: enter image description here

颠倒顺序会导致 div 像这样堆叠: enter image description here

当右边的 div 向右浮动时,它会移到当前行的右边: enter image description here

但是:

Since a float is not in the flow, non-positioned block boxes created before and after the float box flow vertically as if the float did not exist.

所以左边的 div 有效地向上移动到与右边的 div 相同的行: enter image description here

因此,获得所需结果的最简单方法是通过在 .left< 之前放置 .right 来更改 HTML 中 div 的顺序:

.right {
float: right;
background: red;
}
.left {
overflow: hidden;
background: green;
}
<div class="right">right div</div>
<div class="left">left div</div>

关于html - 如何在不指定宽度的情况下并排 float 两个 div,同时保持右侧 div 最小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735081/

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