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

垂直水平居中

作者头像
菜的黑人牙膏
发布2019-01-21 16:16:35
1.6K0
发布2019-01-21 16:16:35
举报

源代码:

代码语言:javascript
复制
<div class="out">
    <div class="in">Content here</div>
</div>
代码语言:javascript
复制
 .out{
     width: 300px;
     height: 400px;
     margin: 20px auto 0;
    background:red;
 }
 .in{
     width: 100px;
     height: 100px;
     background: blue;
     line-height: 100px;
 }

运行图:

1.使用表格法:

运行图: 

代码语言:javascript
复制
.out{
     display: table;
     text-align: center;
 }
 .in{
   display: table-cell;
   vertical-align: middle;
 }

缺点:子元素的会撑满父元素。

2.绝对定位计算:对子元素使用绝对定位,并分别移动上左50%,再分别margin-top:-50%height px,margin-left:-50%width px;

运行图:

代码语言:javascript
复制
.in{
    position: absolute;
    top: 50%;
    left: 50%;
    margin-left: -50px;
    margin-top: -50px;
    
 }

缺点:需要对子元素的宽高固定,并且绝对定位容易影响布局。

 3.  利用绝对定位和translate。

同上,先左上各自移动50%,再使用transform: translate(-50%, -50%);translate是基于自身元素的宽高为基准进行移动的。

运行图同上。

代码语言:javascript
复制
.in{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); 
 }

缺点:需要绝对定位。

4. 基于Flex.

运行图同上。

代码语言:javascript
复制
.out{
   display: flex;
 }
 .in{
    margin: auto; 
 }

优点:代码简单。

缺点:兼容性差。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档