4-4练习,为什么会把header盒子顶下来?

4-4练习,为什么会把header盒子顶下来?

老师好,为什么我用margin设置"headertop"盒子位置的时候,会把父盒子header的也顶出一条白边下来?我理解用margin给子盒子设置外边距,不是应该踹的是父盒子么?怎么就直接踹到页面顶了?


html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="./css/prc4-4.css">
</head>
<body>
<header>
<div class="headertop">
<div class="logo">
Career Builder
</div>

<nav>
<ul>
<li>HOME</li>              
<li>ABOUT</li>              
<li>GALLERY</li>              
<li>FACULTY</li>              
<li>EVENTS</li>              
<li>CONTACT</li>              
</ul>
</nav>
</div>
</header>
</body>
</html>

css代码如下:

*{
margin: 0px;
padding: 0px;}

ul,ol,li{text-decoration: none;
list-style: none;}
header{
width: 100%;
height: 80px;
background-color: #07cbc9;

}

header .headertop{
height: 48px;
width: 1200px;
margin: 16px auto;
background-color: #fff;
}

相关截图:

https://img1.sycdn.imooc.com//climg/63f9e7c908cf648c18920248.jpg

尝试过的解决方式:

后来尝试用header加padding修正,似乎能达到效果,但没想通为什么会出现这样的问题。

修正后css代码如下:

相关代码:

header{
    width: 100%;
    height: 64px;
    background-color: #07cbc9;
    padding-top: 16px;

}

header .headertop{
    
    height: 48px;
    width: 1200px;
    margin: 0 auto;
    
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
imooc_慕慕 2023-02-26 10:22:28

同学你好,分析如下:

当父元素没有padding-top和border-top 时,父元素的第一个子元素的margin-top,会向上传递,产生margin值塌陷问题。同学的方案给父盒子添加padding-top是可以的。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师