Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 定位绝对值,但调整父对象的大小_Css_Html - Fatal编程技术网

Css 定位绝对值,但调整父对象的大小

Css 定位绝对值,但调整父对象的大小,css,html,Css,Html,我正在尝试编写一个在一个div中包含2个div的html。 存在一个没有宽度或高度的父div。。宽度为浏览器宽度,未指定高度。 我想在这个父分区内,2个分区:第一个分区需要有一个宽度或250px,第二个分区需要有屏幕的剩余宽度。他们两人都错过了高度。。取决于里面有多少内容。 现在我试着这样做: <div id="calendar"> <section id="list"> </section> <sect

我正在尝试编写一个在一个div中包含2个div的html。 存在一个没有宽度或高度的父div。。宽度为浏览器宽度,未指定高度。 我想在这个父分区内,2个分区:第一个分区需要有一个宽度或250px,第二个分区需要有屏幕的剩余宽度。他们两人都错过了高度。。取决于里面有多少内容。 现在我试着这样做:

<div id="calendar">
        <section id="list">
        </section>

        <section id="grid">
        </section>
</div>
#calendar {
    margin: 0 auto;
    position: relative;
    overflow: hidden;
}
#calendar #list {
    background: #f00;
    position: absolute;
    width: 250px;
    left: 0;
    top: 0;
}
#calendar #grid {
    background: #0f0;
    position: absolute;
    left: 250px;
    top: 0;
    right: 0;
}
现在的问题是,当我向子div添加内容时,父div没有调整大小

我希望CSS有一个解决方法来解决这个问题,因为通过JS来解决这个问题是不好的

提前谢谢大家,,
丹尼尔

如果要使用绝对高度,则需要指定高度。那么它应该会起作用

编辑

使用

关于子元素

编辑2


也许这篇文章会对你所追求的有所帮助

不要使用定位,使用浮动。。。使用当前方法,父元素将折叠,确定父元素所需高度的唯一方法是计算最高子元素的高度(通常使用JavaScript)

这样#日历将根据最高的子元素调整高度。还要记住删除溢出规则

。。。为了简单起见,您可能应该考虑使用clearfix(通过向#calendar添加一个类)-。

这是我的解决方案->

用给定的宽度浮动#列表,然后给#网格留下相同的边距


然后,要使两列看起来都具有父容器的100%高度,需要一个图像。在你必须使用“真实图像”之前。今天,您可以简单地依赖css3渐变作为背景,从而加快页面加载速度(减少1个图像http请求)。它可能看起来更复杂,但实际上并不是那么复杂。它甚至为您提供了更多的灵活性,因为您可以更改列的宽度和颜色,而无需创建新图像。您只需更改css。

我现在给它们添加了一个高度,而父div仍然是0 px高度,我刚刚做了,内容不可见。您需要它们是绝对的吗?如果你有任何建议,我会向他们敞开心扉。。我只希望子div是其中一个250px的宽度,其他屏幕宽度,并有不同的hegiht,这取决于我和d在其中的信息量。。父div的高度必须是其中最大的一个。是否需要使用
位置:绝对值
?您可以使用
position:static
float
来实现这一点,并且父级将保持其高度。我尝试了您的示例,我将遇到一个问题,因为第二个div没有宽度大小。。因此,如果我在里面添加一个div,并将其设置为父div的100%,它将归入第一个div。我在这里对您的想法进行了修改,并做了一些我想要实现的小改动:D我使用了子div的相对位置,使用了左边距:250px;取而代之的是左:250px,它就像一个符咒。。非常感谢您对JOPLOmacedo的帮助,并感谢本主题中的所有人!
position: relative;
<div id="calendar">
        <section id="list">
        </section>

        <section id="grid">
        </section>
        <div class="clear"></div>
</div>
#calendar {
    margin: 0 auto;
    position: relative;
}
#calendar #list {
    background: #f00;
    float:left;
    width: 250px;
}
#calendar #grid {
    background: #0f0;
    margin-left: 250px;
}
.clear{
    clear:both;
}