CSS常用布局实现02-垂直居中

1. 简介

css2.1本身没有提供垂直居中的属性,都是通过一些巧妙的方法来实现,当然,都会有或多或少的缺点。所以,还是那句话,如果不考虑兼容到特定的浏览器,建议使用flex和grid。现在的浏览器升级换代非常快,不要把自己局限于消除兼容性bug之中。很可能你今天掌握的hack方法明天就彻底失去了意义。跟着规范走。

2. 单行文本垂直居中

这种情景,只要指定line-height和height同高即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>single-line-text</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .wrap {
            background: gray;
            line-height: 30px;
            height: 30px;
            font-size: 16px;
        }
    </style>
</head>
<body>

<div class="wrap">
    inner content
</div>
</body>
</html>

3. 包含多文本,图片或者其他内容的元素居中

一些方法在此我不想介绍,会在下一篇水平垂直居中文章中选择性提到。在此强烈推荐flex和grid的实现方式。
方法1: flex。使用align-items: center即可

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flex</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .wrap {
            background: gray;
            display: flex;
            height: 60px;
            align-items: center;
        }
        .inner {
            background: blue;
        }
    </style>
</head>
<body>

<div class="wrap">
    <div class="inner">inner content</div>
</div>
</body>
</html>

方法2:grid布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>grid</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .wrap {
            background: gray;
            display: grid;
            height: 60px;
            align-items: center;
        }
        .inner {
            background: blue;
        }
    </style>
</head>
<body>

<div class="wrap">
    <div class="inner">inner content</div>
</div>
</body>
</html>

可以看到和flex的不同点在于inner的宽度。当然这个宽度是可以显示设置的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,868评论 1 92
  • 前言 温馨提示:本文较长,图片较多,本来是想写一篇 CSS 布局方式的,但是奈何 CSS 布局方式种类太多并且实现...
    sunshine小小倩阅读 3,205评论 0 59
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 8,254评论 3 30
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,836评论 0 2
  • 谈到这个话题感觉有点心塞阿,对于毕业七八年的我来说,现在谈到“考”这一个字,仍觉压抑!而那些前扑后继加入自考大军的...
    清如徐阅读 282评论 0 3