gpt4 book ai didi

css - 如何在不指定内部 div 高度的情况下在内部 div 周围放置一致的 5px 边距?

转载 作者:太空宇宙 更新时间:2023-11-04 05:32:47 25 4
gpt4 key购买 nike

外部div包含一个固定宽度和可变高度的内部div。内部 div 和外部 div 之间的所有 4 个边都应该有 5px 的边距。

不指定内层div的高度怎么实现呢?

通过指定内部 div 的高度,这非常简单。但内部 div 是母版页的内容容器。对于使用母版页的每个页面,进入此 div 的内容将具有不同的高度。

如果未设置内部 div 高度,底部边距(内部 div 结束位置和外部 div 结束位置之间)总是 2-3px 太长。即 5 5 5 8 这发生在各种浏览器类型中。

这是 CSS:

#contentframe
{
position: relative;
width: 1010px;
left: 0px;
top: 0px;
margin: 0px;
padding-top:5px;
padding-bottom:5px;
padding-left: 14px;
}
#content
{
position: relative;
left: 0px;
top: 0px;
width: 980px;
margin: 0px;
padding: 0px;
background-color: #cccccc;

}

*** 注意:将#content 的 margin-bottom 设置为 5px 不起作用。

HTML:

    <div id="contentframe">
<div id="content">
variable height content will go in here
</div>
</div>

这应该非常简单。设置:外部 div 填充到 5px,就是这样。但这只有在指定了内部 div 高度的情况下才有效。否则会有令人讨厌的“高”底边距。

编辑:完整来源

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body
{
-x-system-font: none;
background-color: #A2A2A2;
margin-top: 0px;
margin-bottom: 35px;
padding: 0px;
}
#centeredframe
{
width: 1010px;
margin-left: auto;
margin-right: auto;
margin-top: 0px;
padding: 0px;
}

#contentframe
{
position: relative;
width: 1010px;
left: 0px;
top: 0px;
margin: 0px;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 5px;
background-color: #ffffff;
}

#content
{
position: relative;
left: 0px;
top: 0px;
width: 1005px;
margin: 0px;
padding: 0px;
height:300px;
color: #ffffff;
background-color: #000000;
}

</style>
</head>
<body>
<div id="centeredframe">
<div id="contentframe">
<div id="content">
<p>hgjghjghjghjg<p>
<p>hgjghjghjghjg<p>
<p>hgjghjghjghjg<p>
<p>hgjghjghjghjg<p>
</div>
</div>
</div>
</body>
</html>

最佳答案

这应该适用于 IE7/8 和其他非 IE 浏览器。

顶部和/或底部的额外“填充/边距”由 <p> 引入元素。这是由于空内容/填充/边框区域(在本例中为 contentFrame)的未折叠边距。引用W3C Box Model关于崩溃的边距。

有几种解决方法,其中之一是引入一个薄的 (1px) 边框,​​它与 DIV 的背景融为一体,然后用宽度/高度进行补偿。下面是另一个通过操纵 <P> 的边距/填充来进行的黑客攻击。内容 DIV 中的元素。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body
{
-x-system-font: none;
background-color: #A2A2A2;
margin: 0;
margin-bottom: 35px;
padding: 0px;
}
#centeredframe
{
width: 1010px;
margin: 0 auto; /* merged */
padding: 0;
}

#contentframe
{
width: 1000px;
margin: 0;
padding: 5px;
background-color: #ffffff;
}
#content
{
padding: 0;
color: #ffffff;
background-color: #000000;
height: auto;
min-height: 300px;
}
#content p
{
margin: 0px; /* removed the default margin of p element*/
padding: 16px 0; /* replaced with padding to have background*/
}
</style>
</head>
<body>
<div id="centeredframe">
<div id="contentframe">
<div id="content">
<p>hgjghjghjghjg</p>
<p>hgjghjghjghjg</p>
<p>hgjghjghjghjg</p>
<p>hgjghjghjghjg</p>
</div>
</div>
</div>
</body>
</html>

关于css - 如何在不指定内部 div 高度的情况下在内部 div 周围放置一致的 5px 边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2159351/

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