1

我正在尝试将 clid div 定位在父 div 中,但父 div 的高度应该是动态的,因此在子 div 位于内部之后它应该扩大或缩小。我怎样才能实现它?孩子应始终留在父母之内。

因为我根本不是设计师,所以我阅读了“通过十个步骤学习 CSS 定位”来学习一点。

而这个问题“使绝对定位的 div 扩展父 div 高度”。

谢谢

JSFIDDLE

在此处输入图像描述

CSS

#header
{
    margin: 0 auto;
    border: 1px solid #000000;
    width: 500px;
    background: #aa0000;    
}
#body
{
    margin: 0 auto;
    border: 1px solid #000000;
    width: 500px;
    background: #ff0000;    
}
#footer
{
    margin: 0 auto;
    border: 1px solid #000000;
    width: 500px;
    background: #dd0000;    
}

#section_one
{
    position: relative;
    width: 100px;
    height: 100px;
    background: #EEEEEE;
    top: 10px;
    left: 10px;
}
#section_two
{
    position: relative;
    width: 100px;
    height: 100px;
    background: #EEEEEE;    
    top: 10px;
    left: 150px;
}

HTML

<div id="header">HEARDER</div>

<div id="body">
    <div id="section_one">SECTION ONE</div>
    <div id="section_two">SECTION TWO</div>
</div>

<div id="footer">FOOTER</div>
4

2 回答 2

1

如果只是对齐这些框的问题,请使用margin&paddinginline-block不是绝对定位。像这样:http: //jsfiddle.net/avrahamcool/JVh8e/1/

HTML:

<div id="cover">
    <div id="section_one">SECTION ONE</div>
    <div id="section_two">SECTION TWO</div>
</div>

CSS

#cover
{
    margin: 0 auto;
    padding: 5px;
    width: 500px;
    background-color: #000000;
}
#section_one, #section_two
{
    display: inline-block;
    width: 100px;
    height: 100px;
    margin: 5px;
    background-color: #EEEEEE;
}

正如您已经在提供的链接中阅读的那样,从流程中删除了一个绝对元素,因此除非您愿意编写一个脚本来找到必要的封面高度,否则这是不可能的。

另外:使用background-color代替background(如果您只应用颜色)

更新 这是新的小提琴(在您编辑之后):http: //jsfiddle.net/avrahamcool/JVh8e/5/

更新 2: 使用脚本查看此工作示例。 http://jsfiddle.net/avrahamcool/JVh8e/6/

于 2013-09-10T08:30:06.707 回答
1

您可以使用 float:left ,然后用边距定位部分

小提琴

标记

<div id="header">HEARDER</div>

<div id="body">
    <div class="section one">SECTION ONE</div> 
    <div class="section two">SECTION TWO</div>
    <div class="section three">SECTION THREE</div> 
    <div class="section four">SECTION FOUR</div>
</div>

<div id="footer">FOOTER</div>

CSS

.section
{
    width: 100px;
    height: 100px;
    background: #EEEEEE;
    float:left;
}
.two
{
    margin: 20px 0 0 10px;
}
.three
{
    margin: 80px 0 0 50px;

}
.four
{
    margin: 220px 0 0 -200px;
}
于 2013-09-10T08:37:16.530 回答