在定位子div后扩展或折叠父div

时间:2013-09-10 08:10:16

标签: css html

我正在尝试在父div中定位clid div,但父div的高度应该是动态的,所以它应该在子div放置在内部后展开或缩小。我怎么能完成它?孩子应该一直留在父母的内心。

由于我根本不是设计师,所以我读了“Learn CSS Positioning in Ten Steps”来学习一点。

这个问题“Make absolute positioned div expand parent div height”。

由于

JSFIDDLE

enter image description here

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>

2 个答案:

答案 0 :(得分:1)

如果只是对齐这些框,请使用margin&amp; 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/

答案 1 :(得分:1)

您可以使用float:left,然后使用margin

定位这些部分

<强> FIDDLE

标记

{{H2}}

CSS

<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>