子元素margin-top问题
来源:3-23 margin外边距属性
Ranbo2016
2018-01-21 13:29:44
老师好,为什么子元素可以设置margin-left没问题,但是效果是margin-top是他的父元素的外边距,这是老师的代码,
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>pdding和margin</title> </head> <style type="text/css"> body,p{margin:0;} /*.one{width:300px;height:300px;background-color: #acacac;padding-top:20px;padding-left:30px;padding-bottom:50px;padding-right: 40px;}*/ /*.one{width:300px;height:300px;background-color: #acacac; padding:20px 10px 5px 8px;}*/ /*.content{width:100%;height:100%;background-color: #ececec;}*/ /*.one{width:300px;height:300px;background-color: #acacac; margin:10px 5px 8px 20px;}*/ /*.one{width:300px;height:300px;background-color: #acacac; margin:auto;}*/ .content{width:100px;height:100px;background-color: #ececec;margin-left:100px;margin-top:100px;} .one{width:300px;height:300px;background-color: #acacac;margin-bottom: 20px;} </style> <body> <!-- <div class="one"><div class="content">padding属性</div></div> --> <div class="one"> <div class="content">margin属性</div> </div> <!-- <p>123</p> --> </body> </html>
2回答
你好,这是一个css hack 问题 ,外边距合并问题常见于第一个子元素的margin-top会顶开父元素与父元素相邻元素的间距,解决方案:
1、为父元素增加padding-top样式
2、为父元素添加overflow:hidden;
3、为父元素或者子元素声明浮动
4、为父元素添加border(border:1px solid transparent)
5、为父元素或者子元素声明绝对定位
祝学习愉快。
前端小白kobe
2018-01-21
垂直方向两个元素都有外边距,会发生合并,取最大值
相似问题