博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS—总结常用垂直居中方法
阅读量:5912 次
发布时间:2019-06-19

本文共 2534 字,大约阅读时间需要 8 分钟。

CSS—总结常用垂直居中方法

1、text-align与line-hight方法实现居中

这是比较常用的方法。通过line-hight来设置行间距是实现垂直居中的关键

.wrap{    width: 500px;    heidth: 200px;    line-height:200px;    background: #80ff80;    text-align:center;    fontsize: 20px}

clipboard.png

2、利用padding和background-clip实现水平垂直居中

通过background-clip设置为center-box,将背景裁剪到内容区外沿,再利用padding设为外div减去内div的差的一一半来实现

.parent{    margin: 0 auto;    width: 250px;    heidth: 250px;    background: #80ff80;}.child img {    width: 150px;    heidth: 150px;    padding 50px;    background-clip: center-box;}

clipboard.png

3、使用transform实现垂直居中

其百分比计算不是以父元素为基准,而是以自己为基准,适用于没固定大小的内容,min-width、max-width、overflow:scroll等。使用这个属性时,不必定义子容器的高度,其会根据内容来自适应高度。但是IE8以下的浏览器不支持,而且属性需要写浏览器厂商的名字,还有可能会干扰其他transform的效果。

.parent{     width:300px;    height: 300px;     margin: 0 auto;    background: #89ff89;     position: relative;} .child{     position: absolute;     left: 50%;     top: 50%;     -webkit-transform:translate(-50%, -50%);     -ms-transform: translate(-50%, -50%);     transform: translate(-50%, -50%);     text-align: center}

clipboard.png

4、绝对居中实现垂直居中

这是一个兼容性比较好的能够实现垂直居中的方法。

可以通过设置内容元素:position: fixedz-index: 999成为视口居中,
更改百分比宽高、最大最小宽度使其能够实现响应,
只要 margin:auto,内容块将垂直居中,使用top、left、button、right可以设置偏移
居中内容比父容器高时,加overflow:auto可防止内容溢出
但是唯一的确定就是父容器的高度必须是可知的。

.parent{    width:400px;   min-height: 400px;    margin: 0 auto;   background: #89ff89;    position: relative;} .child{    width:100%;   height:80%;   overflow:auto;   margin:auto;   position: absolute;    left: 0;    top: 0;    bottom: 0;   right: 0;    text-align: center}

clipboard.png

5、负外边距实现垂直居中

这是比较流行的一种方法,当块元素尺寸已知,外边距margin取负数,大小为 (width/heigth + pdding)/2,加上top和left各为50%,这个方法兼容IE6以上的IE浏览器,代码量也比较少。但是不能自适应,不支持百分比尺寸和 min-/max- 属性设置,内容可能会溢出容器,需要计算margin的取值

.child{     width:200px;    height:300px;    padding:20px;    position: absolute;     left: 50%;     top: 50%;     margin-left: -120px;    margin-top: -170px;    text-align: center}

clipboard.png

6、表单元(table-cell)实现垂直居中

其内容块高度可以随着实际内容的高度而变化,内容溢出时父元素会自己撑开,在浏览器中的兼容性也比较好,但是需要三层元素才能使最内层的元素居中

clipboard.png

.wrap .is-table {    display: table;}.is-table .table-cell{    display:table-cell;    vertical-align: middle;    max-width:500px;    min-height: 400px;    background: #0ff80}.table-cell .box{    width: 80%;    margin: 0 auto;    text-align: center;000008}

clipboard.png

7、使用flexbox实现垂直居中

使用flexbox实现垂直居中很方便而且代码简洁, align-items 使元素水平居中, justify-content 是元素垂直居中

但是其兼容性不是很好,对于IE只能兼容10以上,但是随着IE一些比较低的版本逐渐退出市场,flexbox的布局也将成为趋势

.parent{     display: flex;    align-items: center;    justify-content:center;    width:400px;    background: #89ff89; } .child{     text-align: center;    padding: 10px;}

clipboard.png

转载地址:http://qtmpx.baihongyu.com/

你可能感兴趣的文章
HTML5实践 -- 如何使用css3丰富我们的图片样式 - part2
查看>>
C#整合VS2010和NUnit
查看>>
eclipse连接远程hadoop集群开发时0700问题解决方案
查看>>
九、Null在Java中的精确表示
查看>>
php 连接 mssql sql2008
查看>>
Java POI操作Excle工具类
查看>>
C#中 String 格式的日期时间 转为 DateTime
查看>>
如何参与一个GitHub开源项目
查看>>
【转】RestQL:现代化的 API 开发方式
查看>>
所谓技术团队绩效
查看>>
python生成md5, shell生成md5
查看>>
读书笔记-深入理解JVM虚拟机-1.OOM初探
查看>>
机器学习入门之二:一个故事说明什么是机器学习(转载)
查看>>
Yii CDbCriteria 常用方法
查看>>
libgc 加 .make 在 vc6 vs2008 中的编译方法
查看>>
用条件变量实现事件等待器的正确与错误做法
查看>>
软件度量都该度个啥?(5)——被吹得最多的六西格玛
查看>>
Maven教程初级篇02:pom.xml配置初步
查看>>
pip更改下载源设置
查看>>
初识 zookeeper
查看>>