子元素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
垂直方向两个元素都有外边距,会发生合并,取最大值
相似问题