gpt4 book ai didi

html - 使用百分比值在另一个 div 中垂直居中对齐一个 div

转载 作者:太空宇宙 更新时间:2023-11-04 13:28:06 27 4
gpt4 key购买 nike

<!DOCTYPE html>
<html lang="en">
<head>
<title>tested html</title>
<meta charset="utf-8">
</head>
<body>
<div id="outer-div" style="height:20em;background-color:red;">
<div id="inner_div" style="height:50%;margin-top:25%;margin-bottom:25%;">This the inner-div to be centered inside outer-div</div>
</div>
</body>
</html>

已经有很多解决方案可以让一个 div 在另一个 div 中(仅垂直)居中,但我只是想知道为什么上面的 inner_div 不能在其父 div(outer-div)中居中?

下图是我认为的html渲染结果,但实际上结果完全不同——outer-div被inner-div的边距设置压低了。那为什么?

enter image description here

最佳答案

第 1 部分。折叠边距。

the outer-div get pushed down by inner-div's margin settings. so why?

这是正常的 HTML 呈现行为,称为 collapsing margins .规范摘录:

Adjoining vertical margins collapse [...] Two margins are adjoining [...] top margin of a box and top margin of its first in-flow child

稍微解释一下,当您有一个父项及其第一个子项时,其中至少有一个具有上边距,则现有边距中较大的一个将应用于父项。 (除了在一些明确定义的情况下 - 阅读规范以了解它们是什么。)


第 2 部分。没有额外元素的居中。

i just wonder why the inner_div above cannot get centered in its parent div(outer-div)?

它实际上可以居中,通过使用 Flexbox justify-contentjustify-content 都在中心。

.parent {
width: 300px;
height: 200px;
background-color: Green;

display: flex;
justify-content: center;
align-items: center;
}
.child {
width: 200px;
height: 100px;
background-color: Red;
}
<div class="parent">
<div class="child"></div>
</div>

还有其他技术也可以达到相同的结果(通过混合表格和内联显示模式),但我不建议在本世纪使用这些技术。

关于html - 使用百分比值在另一个 div 中垂直居中对齐一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596773/

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