为了账号安全,请及时绑定邮箱和手机立即绑定

高度没法扩展是什么意思

mainbody 高度没法扩展是什么意思,是受浮动什么影响啊?

正在回答

2 回答

个人认为 @hao小苗 说的不完全对。

浮动仍然在文档流里面,占据着位置。

那么为什么mainbody高度没扩展(成子元素的最大高度呢)?要知道你没给子元素设置float的时候,子元素最大高度有多高,mainbody就有多高。不信你可以在w3school或者codepen.io或者其他的在线编辑器试下。

给两个子元素设置了浮动float之后,两个子元素的的确脱离了,但不是脱离文档流,也没有改变z次序(z-index),而是脱离了它们的父元素也就是mainbody,从而使得mainbody里面好像没有子元素,当然它的高度也就不会扩展成最大子元素高度和了。

如果你给mainbody设置一个固定高度(没有设置时就是auto),你会发现mainbody它出来了(overflow默认值就是visible)

<html>
<head>

<style type="text/css">
*{margin:0;padding:0;border:0px;}
.header{width:200px;background-color:#F00;}
.mainbody{width:200px;height:300px;background-color:#FF0;overflow:visible;}
.leftcol{width:100px;height:100px;float:left;background-color:#0F0;}
.rightcol{width:80px;height:250px;float:left;background-color:#00F;}
.footer{width:200px;background-color:#F0F;clear:both;}
</style>

</head>
<body>

<div class="header">header</div>
<div class="mainbody"><p>mainbody</p>
  <div class="leftcol">leftcol</div>
  <div class="rightcol">rightcol</div>
</div>
<div class="footer">footer</div>

</body>
</html>

现在你把这个固定高度值去掉,把overflow设置为hidden,让它适应溢出元素:

.mainbody{width:200px;background-color:#FF0;overflow:hidden;}

你会发现mainbody的高度会扩展为最大子元素高度和,也就是p的高度+rightcol的高度,下面紧挨着footer。

1 回复 有任何疑惑可以回复我~
#1

黑色旋风

补充:w3school里面说到“内容会被修剪”,但这里高度没有固定,是auto的,所以无论你设置overflow为auto还是hidden,都会让浏览器重新计算高度,也不会裁剪内容(这里指两个子元素)
2016-06-19 回复 有任何疑惑可以回复我~

mainbody的高度可以扩展,如果设置了mainbody高度才不能扩展

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
网页布局基础
  • 参与学习       214707    人
  • 解答问题       1756    个

让你精通CSS中三大定位机制,彻底掌握网页布局的相关知识

进入课程

高度没法扩展是什么意思

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信