相对于两个容器之一对齐中心

Align center with respect to one of two containers

我有一个高度为 100vh 的容器,以便拉伸整个屏幕。在里面我有一个 h1 和一个 div,即两个容器。现在,div 中的内容是我想要在页面上居中对齐的内容,但由于我的 h1 我不能。

所以基本上设置是:

HTML:

<div class="main-container">
    <h1>This is a headline</h1>
    <div class="content-container">
         <p>Different stuff in here</p>
    </div>
</div>

而 CSS 可能看起来像:

.main-container {
    display: grid;
    height: 100vh;
    align-content: center;
    justify-content: center;
}

同样,这将导致两个元素 h1content-container 居中。但是我想做的是相对于 main-container 居中,所以它总是在中间,而 h1 总是在上面一些像素。将 h1 标签放入 main-container 并使其成为绝对标签是唯一的选择吗?

正确。 h1 应该是绝对位置。 因此,最佳做法是将 h1 移动到 content-container 内,这样您就可以根据 content-container.

调整 h1 的位置

您可以使用 position: absolute,或者您可以执行一些转换翻译 属性 例如 transform: translateY(20px)