子DIV设置了position:absolute,父DIV设置了position:relative的时候,子DIV如何能把父DIV撑开?

我希望父级DIV随子DIV的高度的增加而增加,但是设置了绝对定位和相对定位的时候,好像撑不开了,该如何解决?

1、作为外部容器的边框为红色的DIV,没有被撑开。这是因为内部的DIV因为float:left之后,就丢失了clear:both和display:block的样式,所以外部的DIV不会被撑开。

2、在容器DIV内要显示出来的float:left的所有的DIV之后,我们添加了这样的一个DIV:<div style="clear:both"></div>  。

3、在用dojo做Drag & Drop的时候,由于这个DIV是容器DIV的一个子节点,如果这个节点被移动,则会造成排版上的Bug。

4、要显示的蓝框的DIV被移到这个DIV之后,则因为clear:both,它会被强制换一行显示。

5、修改原来的HTML代码,让外部的容器DIV来使用这个CSS即可。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-30
绝对定位是撑不了父级标签的高度的,想对定位可以。
想对定位如果撑不开高度可以在父级标签后面加<div class="clear"></div>.
.clear {
clear:both;
}

这样就可以了
第2个回答  推荐于2016-09-22
用CSS似乎是解决不了,用个简单的JS吧
<body onload="psize()">
<script>
function psize(){
document.getElementById("parent").style.height = document.getElementById("son").style.height;
}
</script>
<div id="parent" style="background:#FF0; padding:10px; position: relative; width:300px;">
<div id="son" style="background:#F00; position: absolute; width:300px; height:1000px;"></div>
</div>
</body>本回答被提问者采纳
第3个回答  2011-11-30
你子元素都绝对定位,脱离文档流了还想撑开。按楼上说的用js
第4个回答  2018-04-20
如果自适应子元素里面是文本,同时无需兼容到ie8以下的的话,可以给子元素添加word-break: keep-all来曲线实现
或者子元素添加 width:max-content

子DIV设置了position:absolute,父DIV设置了position:relative的时候,子D...
1、作为外部容器的边框为红色的DIV,没有被撑开。这是因为内部的DIV因为float:left之后,就丢失了clear:both和display:block的样式,所以外部的DIV不会被撑开。2、在容器DIV内要显示出来的float:left的所有的DIV之后,我们添加了这样的一个DIV:<div style="clear:both"><\/div> 。3、在用dojo做Dra...

父容器加上:position:relative;子容器加上:position:absolute;bottom:0...
position:absolute;这个顾名思义是绝对布局,在元素中设置之后,该元素会脱离文档流,它并不是像楼下说的相对于浏览器进行定位,而是一层一层向上寻找父元素,直到寻找到第一个position不为static的祖先元素,它相对于这个祖先元素进行定位。所以当你的父元素position:relative时,该子元素是相对于你的父元...

html中的“ position: absolute”是绝对定位,怎么用?
1、新建html文档,在body标签中添加一个div,然后在这个div中再添加一个div,这时默认情况下内div在外div的左上角:2、为内div添加“position”属性,属性值为“absolute”,外div添加“position”属性,属性值为“relative”,这时内div会向外div绝对定位:3、为内div设置距离顶部距离属性“top”和距离...

html中关于position:relative的疑问
position:relative; 跟position:absolute; 前面是相对定位 后面这个是绝对定位 一般相对是放在父DIV 绝对是放在子DIV 绝对定位是浮动的一个层 你上面那个把父DIV的position:relative;给删了 那么子DIV的position:absolute; 就会走位 所以你要用到绝对定位 那么父DIV里面必须要有相对定位 这样防止...

position:absolute的margin是以父元素的哪里为基准对齐?
2 当父元素没有设置定位的时候,子元素相对于body进行定位。3 子元素定位的边界是包括子元素的 整体 = margin + border + padding + content ;的margin外边界为基准进行定位。我觉得不用absolute会好一些吧,这样自己写的元素用div就能解决对齐的问题,关于按钮的问题的话,和父元素是否设置大小也有关...

CSS里面position:relative与position:a别
如果第一个div设置为"float:left;width:100px;height:800px;position:fixed",第二个div则使用"float:left;position:relative;margin-left:20px;width:50px",那么第二个div会相对于第一个div向右偏移20像素,而不是浏览器窗口。因此,理解并灵活运用这两种定位方式对于精确控制元素布局至关重要。

div+css中 父容器用position:relative; 定义,子容器用position:absolute...
)使元素的位置与文档流无关,因此不占据空间。设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。要子容器自适应高度,就不能用position:absolute; 你可以用 相对定位(position:relative;)来确定子容器的位置。

怎么把两个div的高度统一?
relaitve。第一个小DIV属性设置成为position:absolute; z-index:1。第二个小DIV属性设置成为position:absolute; z-index:2。width、height、left和top视情况而定。注:1、父级div用相对定位position:relative,子级div用绝对定位position:absolute。2、z-index的值,从小到大代表着从下到上。

CSS 父级div绝对定位影响子级div的问题
div定位问题,absolute,绝对定位,是对整个页面来说的,一般父级的div用相对定位,子级的div用绝对定位就肯定不会错的,你可以试一试!

div中的相对定位与绝对定位
正确的解决方法就是在元素的父级元素定义为position:relative;(更正:这里可以是祖父级,也可以是position:absolute;)需要绝对定位的元素设为position:absolute;这样再设定top,right,bottom,left的值就可以了,这样其定位的参照标准就是父级的左上角padding的左上侧!***CSS单元的位置和层次-div标签 我们都知道,在网页上...

相似回答