返回介绍

vertical-centering

发布于 2023-08-19 19:14:40 字数 2676 浏览 0 评论 0 收藏 0

vertical-centering

base on absolute position

main {
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -3em; /* 6/2 = 3 */
    margin-left: -9em; /* 18/2 = 9 */
    width: 18em;
    height: 6em;
}

Or use calc() function:

main {
    position: absolute;
    top: calc(50% - 3em);
    left: calc(50% - 9em);
    width: 18em;
    height: 6em;
}

Disadvantage:

  • require element's width and height are both fixed value.

    Or use transform feature:

    main {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    

    Disadvantage:

  • sometimes we can't use absolute position
  • element will be clipped if it's height is larger than viewport's.
  • cause element seem to look like fuzzy if it's putted in 0.5px when in some browsers. (use transform-style: preserve-3d to fix)

base on vh

<style>
    main {
        width: 18em;
        padding: 1em 1.5em;
        margin: 50vh auto 0;
        transform: translateY(-50%);
        box-sizing: border-box;
        background: #655;
        color: white;
        text-align: center;
    }

    h1 {
        margin: 0 0 .2em;
        font-size: 150%;
    }

    p {
        margin: 0;
    }

    body {
        background: #fb3;
        font: 100%/1.5 sans-serif;
    }
</style>
<main>
    <h1>Am I centered yet?</h1>
    <p>Center me, please!</p>
</main>

Link: one line to implement full screen area

.section { height: 100vh; }

base on flexbox

<style>
    body {
        display: flex;
        min-height: 100vh;

        background: #fb3;
        font: 100%/1.5 sans-serif;
    }

    main {
        padding: 1em 2em;
        margin: auto;
        box-sizing: border-box;
        background: #655;
        color: white;
        text-align: center;
    }

    h1 {
        margin-bottom: .2em;
        font-size: 150%;
    }
</style>
<body>
<main>
    <h1>Am I centered yet?</h1>
    <p>Center me, please!</p>
</main>
</body>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文