gpt4 book ai didi

jquery - CSS底部不需要的空白

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

上下文:我正在制作一个网站,中间的白色部分(“包装”div)应该是页面上所有内容的背景,而两侧的红色部分(“主体”)作为边框。如果我从“包装”div 中去掉 100% 的底部填充,我网站上的内容最终会变成红色背景(“主体”的背景而不是“包装”)。尽管如此,如果我在“包装”div 上有 100% 的底部填充,我可以滚动到比页面底部更远的位置(目前我的所有内容都适合一页,而我至少可以滚动两页)。

请相应地解释我如何将内容的背景保留为包装 div 而滚动能力不会超出内容的末尾。例如,在提供的代码中,不应该有向下滚动到第一个屏幕之外的能力,因为没有内容。我可以在显示的代码上滚动的数量与我可以在我的网站上滚动的数量相同。

<!doctype html>
<html>
<head>
<title>Bob</title>

<meta charset="utf-8" />
<meta http-equiv="Content-type" contents="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial scale=1" />

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>


<style>

body {
height: 100%;
background-color:red;
margin:0 auto;
}

#wrapper {
width:600px;
height: 100%;
margin:0 auto;
background-color: white;
padding-top:8px;
padding-bottom:100%; /* removed and white space at bottom removed */
padding-left: 20px;
padding-right:20px;
}

</style>

</head>

<body>

<div id="wrapper"></div>

</body>
</html>

最佳答案

滚动的原因是因为您将 padding-bottom 设置为 100%。 Paddings and margins are calculated using width作为引用而不是高度:

'padding-top', 'padding-right', 'padding-bottom', 'padding-left'

Percentages: refer to width of containing block


为什么如果你删除 padding-bottom:100%;,那么 #wrapper 只占用一点点而不是整个屏幕(正如你所期望的,因为你有 height:100%): the height is calculated based on the height of the containing block :

'height'

<percentage>

Specifies a percentage height. The percentage is calculated with respect to the height of the generated box's containing block.

现在您正在将 body 的高度设置为 100%,但您并未在任何地方设置 html 的高度。所以 body 占据了父级 (html) 的 100% 高度,这没什么。要解决该问题,只需将相同的样式应用于 bodyhtml:

html, body {
height: 100%;
background-color:red;
margin:0 auto;
}

所以要实现你想要的:添加html的高度,并删除不必要的padding-bottom。像这样:

<!doctype html>
<html>
<head>
<title>Bob</title>

<meta charset="utf-8" />
<meta http-equiv="Content-type" contents="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial scale=1" />

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>


<style>

html,body {
height: 100%;
background-color:red;
margin:0 auto;
}

#wrapper {
width:300px;
height: 100%;
margin:0 auto;
background-color: white;
padding-top:8px;
/*padding-bottom:100%; /* removed and white space at bottom removed */
padding-left: 20px;
padding-right:20px;
box-
}

</style>

</head>

<body>

<div id="wrapper"></div>

</body>
</html>

还有一个小滚动,因为#wrapper 有一个padding-top:8px

关于jquery - CSS底部不需要的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31688440/

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