gpt4 book ai didi

html - 为什么静态元素的 "margin-top"属性会影响绝对元素的 "top"属性?

转载 作者:行者123 更新时间:2023-11-28 17:11:20 28 4
gpt4 key购买 nike

目前我正在为一个元素开发一个 PSD 设计,在那个设计中,一个部分有一个完全不同的形状来吸引人的外观。

为了创建该形状,我创建了一个 svg 文件并将其用作背景并通过 absolute 属性定位该部分。在这个绝对定位部分之后还有另一个部分,需要在绝对定位部分之后。

为了对齐这个静态部分,我尝试使用“margin-top”属性。现在问题来了。 margin-top 属性影响绝对定位部分的“顶部”属性。 margin 属性也随着 t 移动绝对定位元素的位置

这个问题让我很困惑,我找不到解决方案。

我在下面分享了一个描述问题的示例设计。

我希望我能得到关于此查询的积极响应。除了关于设计开发的改进建议外,我们也将不胜感激。

*{
margin: 0;
padding: 0;
}

#main-container{
position: relative;
}

#section-1{
background-color: #e48b21;
height: 500px;
}

#section-2{
height: 1000px;
width: 100%;
background-color: green;
position: absolute;
top: 70%;
}

#section-2 p{
margin-top: 10%;
}

#section-3{
background-color: #808080;
margin-top: 70%;
}
<!DOCTYPE html>
<html>
<head>
<title>Test 101</title>
</head>

<body>
<div id="main-container">

<div id="section-1">
<p>Some Text</p>
</div>

<div id="section-2">
<p>Some Text</p>
</div>

<div id="section-3">
<p>Some Text</p>
</div>

</div>
</body>
</html>

最佳答案

那是因为静态元素影响父元素的高度,而你的绝对定位元素是按百分比定位的。

您的#section-2top 值为70%。这意味着;此元素的顶部将位于父元素的 70% 高度(例如,父元素的高度为 100px,则此元素的顶部将位于 70px )。现在,因为静态元素上有上边距,它会拉伸(stretch)父元素(当然只有当它足够高时),这意味着 70% 在计算时会是一个更高的值。

关于html - 为什么静态元素的 "margin-top"属性会影响绝对元素的 "top"属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45561711/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com