赞
踩
在web学习中我们可能会遇到一个问题:margin塌陷问题。
margin塌陷现象有两种:兄弟关系的盒子和父子关系的盒子。
1.兄弟关系盒子:垂直布局的块级元素,上下的margin会合并,取最大的一个margin作为两者间的距离。
解决方法:只给其中一个盒子设置margin值。
2.父子关系盒子:相互嵌套的块级元素,子元素的margin-top会作用在父元素上,使父元素和子元素一起向下移。
例如:
- <style>
- *{
- margin: 0;
- padding: 0;
- }
- .father{
- height: 200px;
- width: 200px;
- background-color: skyblue;
- }
- .son{
- height: 100px;
- width: 100px;
- background-color: orange;
- margin-top: 20px;
- }
- </style>
- </head>
- <body>
- <div class="father">
- <div class="son"></div>
- </div>
- </body>

解决方法:1.将子元素转化为行内块元素
- .son{
- height: 100px;
- width: 100px;
- background-color: orange;
- margin-top: 20px;
- /* 1.转化为行内块元素 */
- display: inline-block;
- }
我们会发现塌陷消失啦
2.给父元素设置border-top或padding-top分隔父子元素
- .father{
- height: 200px;
- width: 200px;
- background-color: skyblue;
- /* 2.给父元素设置border-top或padding-top分隔父子元素 */
- /* border-top: 1px solid pink; */
- padding-top: 10px;
- }
也是ok哒
3.给父元素设置overflow:hidden;
- .father{
- height: 200px;
- width: 200px;
- background-color: skyblue;
- /* 2.给父元素设置border-top或padding-top分隔父子元素 */
- /* border-top: 1px solid pink; */
- /* padding-top: 10px; */
- /* 3.给父元素设置overflow:hidden; */
- overflow: hidden;
- }
nice! !
4.设置浮动
最终效果同上
- .son{
- height: 100px;
- width: 100px;
- background-color: orange;
- margin-top: 20px;
- /* 1.转化为行内块元素 */
- /* display: inline-block; */
- /* 4.设置浮动 */
- float: left;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。