Html 如何处理只包含绝对定位子元素的元素?
我有一个包含2个绝对定位的标题和段落元素的框,我正在试验如何将文本居中,并尝试使用此方法进行修补 现在这里的问题不是关于如何定位文本的方法,因为这不是我的问题,所以你不应该解决这个问题 我的问题是这个 如何使父元素包含其子元素 由于父元素包含绝对定位的元素,这意味着子元素不在流中,而父元素将折叠 现在这是一个令人震惊的现象,因为我发现以同样的方式用于浮点数的包含/包装方法根本不起作用Html 如何处理只包含绝对定位子元素的元素?,html,css,Html,Css,我有一个包含2个绝对定位的标题和段落元素的框,我正在试验如何将文本居中,并尝试使用此方法进行修补 现在这里的问题不是关于如何定位文本的方法,因为这不是我的问题,所以你不应该解决这个问题 我的问题是这个 如何使父元素包含其子元素 由于父元素包含绝对定位的元素,这意味着子元素不在流中,而父元素将折叠 现在这是一个令人震惊的现象,因为我发现以同样的方式用于浮点数的包含/包装方法根本不起作用 Clearfix方法 清算div法 溢出方法 它们根本不起作用 唯一有效的方法是“显式高度”方法,它效率很低,不
body {
margin: 8px;
padding: 0;}
.box {
margin: 0;
padding: 0;
width: 335px;
position: relative;
background: #40331A url(bottom.gif) no-repeat left bottom;}
.inner {
background: url(top.gif) no-repeat left top;}
.box h2 {
width: 180px;
height: 27px;
top: 50%;}
.box p {
width: 120px;
height: 20px;
top: 50%;}
.box h2, .box p {
margin: 0;
position: absolute;}
样本标记
<div class="box">
<div class="inner">
<h2>This is a heading.</h2>
<p>This is a paragraph.</p>
</div>
</div>
这是一个标题。
这是一段
所以我的问题是
有没有简单的方法使父元素包含其绝对定位的子元素 绝对定位元素的全部要点是,这些元素的父元素应该像这些元素从未出现过一样进行布局。如果希望父元素的布局考虑其子元素,请不要绝对定位它们 由于除了
position:absolute
之外,您没有包含任何相关属性,因此这似乎是完全多余的,因为绝对定位的元素默认为其静态位置。只需删除该声明。再简单不过了
这些方法都不起作用的原因是它们是为浮动而设计的,而绝对定位的元素不是浮动:
溢出
之所以有效,是因为浮动参与块布局的方式导致的,这不适用于绝对定位的元素。这到底意味着什么超出了这个问题的范围,但请仔细阅读块格式上下文我在试验,我刚刚发现,谷歌上也没有结果。我只是需要一种方法,让家长容纳自己的孩子,因为我觉得这在将来可能会有用,仅此而已。你怎么能指望一个盒子里装着你刚从盒子里拿出来的东西?这就是为什么我要告诉你把它留在盒子里。但是如果我不使用position:absolute,那么我就不能使元素居中。