透明父盒子内如何垂直居中子盒子?

透明父盒子内如何垂直居中子盒子?

如何让 css 中透明父盒子内的子盒子垂直居中?

CSS 中,当你有一个包含文本的父盒子并希望让其中的子盒子垂直居中时,可能会遇到以下挑战:

问题:如果给父盒子设置透明度(例如 opacity: 0.2),那么子盒子也会变得透明。如何防止这种情况,同时实现垂直居中效果?

答案:

<p>
  <div>子元素</div>
</p>

/* 父元素使用 rgba 代替 opacity */
p {
  background-color: rgba(0, 0, 0, 0.2);
  position: relative;
}

/* 子元素绝对定位并进行垂直居中 */
div {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

解释:

  • 使用 rgba 属性控制背景色的透明度,而不是 opacity 属性。这可以确保子元素保持不透明。
  • 将子元素设置为绝对定位,并使用 top: 50% 和 transform: translateY(-50%) 实现垂直居中。
  • top: 50% 将子元素置于父元素的中点位置。
  • transform: translateY(-50%) 将子元素向上移动其自身高度的一半,从而将其垂直居中。

以上就是透明父盒子内如何垂直居中子盒子?的详细内容,更多请关注其它相关文章!