子元素相对于父元素设定margin-top值的时候,为什么是整体相对于body进行了偏移?

子元素相对于父元素设定margin-top值的时候,为什么是整体相对于body进行了偏移?

给子元素设定margin-top目的是想让子元素在父容器中有一定的偏移。但当给son设定margin值的时候,子元素相对于父元素之间并没有偏移,而是整体相对于body元素进行了偏移。

想请教各位这是什么原因造成的?该怎么解决?

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>基于父容器定位</title>
    <link rel="stylesheet" href="">
    <style>
        .father{
            width: 300px;
            height:200px;
            background-color: #eeffee;
        }
        .son{
            width: 150px;
            height: 100px;
            background-color: #cccccc;
            margin-top: 10px;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son">
        </div>
    </div>
</body>
</html>
阅读 7.5k
3 个回答
新手上路,请多包涵

记得是父元素没有边界,可以加

border-top: 1px solid red;

解决方法:

1、修改父元素的高度,增加padding-top样式模拟

2、为父元素添加overflow:hidden;样式即可

3、为父元素或者子元素声明浮动

4、为父元素添加border

5、为父元素或者子元素声明绝对定位 。

推荐问题
宣传栏