前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSS——实现元素的垂直居中

CSS——实现元素的垂直居中

作者头像
Originalee
发布2018-08-30 11:06:29
1.3K0
发布2018-08-30 11:06:29
举报
文章被收录于专栏:编程之旅编程之旅

在写CSS的过程中,我常常谷歌一个东西,就是如何实现元素的垂直居中,水平居中难度还不是很大,但是垂直居中我这个烂记性是写一次忘一次,于是本着好记性不如烂笔头的想法,写下一篇博客记录下来。那么今天就记录下三种垂直居中的方法,各位看官按需使用。

通用情况

首先我们先介绍一种通用情况下的垂直居中,这个方法不需要设置自己的高度,也不需要父容器设置高度,利用绝对定位只需要三行代码就能实现。

首先html代码长这个样子

代码语言:javascript
复制
<div id="outter1">
    <div class="inner1"></div>
    <div class="inner2">
        <div>这里的子元素自适应,不设置高度</div>
    </div>
</div>

那么来看css代码如何完成垂直居中:

代码语言:javascript
复制
#outter1{
    position:relative;
    background:black;
}

#outter1 .inner1{
    display:inline-block;
    width:400px;
    height:400px;
    background:red;
}

#outter1 .inner2{
    background:blue;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

父容器设置了高度,父容器下只有一个元素的情况

若是父容器设置了高度,父容器里只有一个元素,那么使用相对定位即可完成垂直居中。

html代码:

代码语言:javascript
复制
<div id="outter2">
    <div class="inner2">
        <div>父亲设置了高度,且只有我一个子元素</div>
    </div>
</div>

css代码:

代码语言:javascript
复制
#outter2{
    position:relative;
    background:black;
    height:400px;
}

#outter2 .inner1{
    display:inline-block;
    width:200px;
    height:200px;
    background:red;
}

#outter2 .inner2{
    display:inline-block;
    background:blue;
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

Flex布局搞定垂直居中

如果不用考虑老式浏览器兼容的话,直接用flex布局来搞定就是非常简单的了,三行代码搞定垂直居中。

代码语言:javascript
复制
<div id="outter3">
    <div class="inner1">
        <div>子元素1</div>
        <div>子元素2</div>
        <div>子元素3</div>
    </div>
</div>
代码语言:javascript
复制
#outter3.inner1 {
  display:flex;
  display: -webkit-flex;
  align-items:center;
}

这就是三种CSS里垂直居中的方法了,希望写下这篇文章的我,在遇到垂直居中的问题时,再也不用谷歌了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.05.14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通用情况
  • 父容器设置了高度,父容器下只有一个元素的情况
  • Flex布局搞定垂直居中
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档