如何调整我的 div 的头寸而不会使边距崩溃?
How to adjust my div's position without collapsing margins?
我的 header 里面有一个 div。我想要做的就是稍微向下移动它,我已经通过更改 div 的 'margin-top' 值轻松地实现了这一点。但是,我不喜欢这种方法的是,由于边距折叠,我的 body 不会从页面顶部开始。似乎正在发生的是 div 的保证金 "leaves" header,然后 header 的获得保证金再次 "leaves",最后在body.
下面是所发生情况的可视化(请注意每个屏幕截图下方的描述):https://imgur.com/a/uxpfaPl
对于我正在尝试做的事情是否有任何替代方案,或者我是否应该不被 body 获得的偏移量所困扰?
[更新] 我已经尝试使用 padding-top 代替,这解决了 body 问题,但是它与我的 div 正在做的事情冲突(见屏幕截图link).
中的填充问题
这是所有相关代码,
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Home - Randoragon GameDev</title>
<link rel="stylesheet" type="text/css" href="./css/styles.css">
</head>
<body>
<div id="global_container">
<header>
<div id="header_banner">
<img src="./img/header.png" alt="Header Banner"/>
<div class="overlay"></div>
</div>
<div class="header_image">
<img src="./img/randoragon_logo.png" alt="Randoragon Logo"/>
<a href="./index.html"><div class="overlay"></div></a>
</div>
<h3><a href="./index.html">RANDORAGON GAMEDEV</a></h3>
</header>
</div>
</body>
</html>
CSS:
html {
width: 100%;
height: 100%;
}
body {
margin: 0px 0px 0px 0px;
background-color: #202125;
}
header {
margin: 0px 0px 0px 0px;
text-align: center;
}
.header_image {
margin: auto;
margin-top: 26px; /* <- THIS IS THE MENTIONED MARGIN */
margin-bottom: 0px;
width: 100px;
height: 100px;
overflow: hidden;
border-radius: 50%;
}
您可以在容器 (1px) 上使用微小的 padding-top
,然后 child 的边距将保留在容器内:
html,
body {
margin: 0;
}
.x {
background: red;
height: 200px;
padding-top: 1px;
box-sizing: border-box
}
.y {
background: green;
height: 100px;
margin-top: 30px;
}
<div class="x">
<div class="y">
</div>
</div>
如何使用 padding-top 并将隐藏溢出添加到您的 header?
header {
margin: 0px 0px 0px 0px;
text-align: center;
overflow: hidden;
}
.header_image {
margin: auto;
padding-top: 26px; /* <- THIS IS THE MENTIONED MARGIN */
margin-bottom: 0px;
width: 100px;
height: 100px;
overflow: hidden;
border-radius: 50%;
}
我的 header 里面有一个 div。我想要做的就是稍微向下移动它,我已经通过更改 div 的 'margin-top' 值轻松地实现了这一点。但是,我不喜欢这种方法的是,由于边距折叠,我的 body 不会从页面顶部开始。似乎正在发生的是 div 的保证金 "leaves" header,然后 header 的获得保证金再次 "leaves",最后在body.
下面是所发生情况的可视化(请注意每个屏幕截图下方的描述):https://imgur.com/a/uxpfaPl
对于我正在尝试做的事情是否有任何替代方案,或者我是否应该不被 body 获得的偏移量所困扰?
[更新] 我已经尝试使用 padding-top 代替,这解决了 body 问题,但是它与我的 div 正在做的事情冲突(见屏幕截图link).
中的填充问题这是所有相关代码, HTML:
<!DOCTYPE html>
<html>
<head>
<title>Home - Randoragon GameDev</title>
<link rel="stylesheet" type="text/css" href="./css/styles.css">
</head>
<body>
<div id="global_container">
<header>
<div id="header_banner">
<img src="./img/header.png" alt="Header Banner"/>
<div class="overlay"></div>
</div>
<div class="header_image">
<img src="./img/randoragon_logo.png" alt="Randoragon Logo"/>
<a href="./index.html"><div class="overlay"></div></a>
</div>
<h3><a href="./index.html">RANDORAGON GAMEDEV</a></h3>
</header>
</div>
</body>
</html>
CSS:
html {
width: 100%;
height: 100%;
}
body {
margin: 0px 0px 0px 0px;
background-color: #202125;
}
header {
margin: 0px 0px 0px 0px;
text-align: center;
}
.header_image {
margin: auto;
margin-top: 26px; /* <- THIS IS THE MENTIONED MARGIN */
margin-bottom: 0px;
width: 100px;
height: 100px;
overflow: hidden;
border-radius: 50%;
}
您可以在容器 (1px) 上使用微小的 padding-top
,然后 child 的边距将保留在容器内:
html,
body {
margin: 0;
}
.x {
background: red;
height: 200px;
padding-top: 1px;
box-sizing: border-box
}
.y {
background: green;
height: 100px;
margin-top: 30px;
}
<div class="x">
<div class="y">
</div>
</div>
如何使用 padding-top 并将隐藏溢出添加到您的 header?
header {
margin: 0px 0px 0px 0px;
text-align: center;
overflow: hidden;
}
.header_image {
margin: auto;
padding-top: 26px; /* <- THIS IS THE MENTIONED MARGIN */
margin-bottom: 0px;
width: 100px;
height: 100px;
overflow: hidden;
border-radius: 50%;
}