gpt4 book ai didi

CSS float 阻止页面扩展

转载 作者:行者123 更新时间:2023-11-28 10:21:12 24 4
gpt4 key购买 nike

我认为这是一个非常常见的场景。

我对 CSS 比较陌生(没有双关语意),并且遇到 float 对齐问题。我有两个 div,一个用来保存要 float 的主要内容 left ,另一个用于导航,它应该 float 在 right 上。

无论如何,这就是当我应用任何 CSS 格式时会发生的情况。这是期望的行为;页面将按预期向下滚动:
Desired behavior

这是当我将 float: leftfloat: right 应用于相应元素时发生的情况:
Undesired page overflow

它们都溢出了页面。我希望它能拉伸(stretch)页面,以便在一个屏幕区域放不下时向下滚动。

我的 HTML 片段:

<body>
<div id="wrapper">
<div id="header"></div>
<div id="content">
<div id="main">
<p>Lorem ipsum [...snip...]</p>
</div>
<div id="secondary">
<p>Lorem ipsum [...snip...]</p>
</div>
</div>
<div id="footer">&copy;</div>
</div>
</body>

以及对应的CSS:

#content {
padding:10px;
padding-top: 110px;
padding-bottom:60px; /* Height of the footer */
}

#main {
padding: 10px;
float: left;
width:70%;
text-align:left;
}

#secondary {
padding: 10px;
float: right;
width:20%;
}

为什么会这样,我该如何解决?

最佳答案

任何 float 元素都会增加容器div的高度,因此一个 float 元素可能有1000行代码,但其父元素的高度将保持为零,除非在 float 元素之后有 block 元素。

我稍微修改了你的代码

<body>
<div id="wrapper" class="clrfx">
<div id="header"></div>
<div id="content">
<div id="main" class="clrfx">
<p>Lorem ipsum [...snip...]</p>
</div>
<div id="secondary" class="clrfx">
<p>Lorem ipsum [...snip...]</p>
</div>
</div>
<div id="footer">&copy;</div>
</div>
</body>

CSS:

.clrfx:after {
clear: both;
display: block;
content: "";
}

经验法则是,将 class="clrfx"分配给任何至少有一个 float 子元素的 Div。有些人使用 <div class="clear"></div>但这不应该被使用,因为清除是样式的一部分而不是标记的一部分。

在最坏的情况下,如果你必须使用它,那么我建议使用

<br class="clear" />

因为断线接近清理

关于CSS float 阻止页面扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663279/

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