【问题标题】:child element padding pushes it down below the parent div子元素填充将其向下推到父 div 下方
【发布时间】:2018-05-01 08:02:47
【问题描述】:

我有一个带有父类的 div 和一个嵌套在父类中的 p。将父级样式设置为

.parent {
   width: 100%;
   height: 500px;
   background: red;
}

和子元素到

.parent p {
   padding-top: 50%;
}

使子元素低于父 div。 假设 p 段落应该在其上方添加 50% 的填充,从而位于父 div 的中心。即使我用边缘顶部替换填充,它仍然会产生同样奇怪的结果。

【问题讨论】:

  • 你能发布你的 Html 吗?
  • 为什么是 C 标签?

标签: html


【解决方案1】:

目前,padding-top: 50% 正在获取 50% 的宽度,而不是容器的高度。 通过将 div 变成 flexbox 可以最轻松地实现您所追求的目标。

例子:

.parent {
   width: 100%;
   height: 150px;
   background: red;
   display: flex;
   align-items: center;
}
<div class="parent">
    <p>Example Text</p>
</div>

如果您也希望文本水平居中,您可以将justify-content: center; 添加到 .parent 类中。

【讨论】:

  • 感谢您的回复,我知道 flexbox 可以完成这项工作,但我想知道为什么使用 margin top 会这样。我进一步做了一个小实验,注意到将父元素的宽度减小到 60%,使子元素更靠近父元素,将其减小到 31% 会使子元素以父元素为中心。似乎父级的宽度正在影响子级边距顶部。请帮我解释一下为什么会这样,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多