博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纯css实现垂直居中的方法
阅读量:7173 次
发布时间:2019-06-29

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

垂直居中是布局中十分常见的效果之一,为实现良好的兼容性,PC端实现垂直居中的方法一般是通过绝对定位,table-cell,负边距等方法。有了css3,针对移动端的垂直居中就更加多样化;在面试中也是经常问到的考点,现在我们一起来复习一下这些垂直居中的方法;

方法一 :table-cell

    
我是内容
复制代码

此方法Internet Explorer 8 (以及更高版本)以及主流浏览器均支持

方法二:display:flex;

.parent{    display: flex;    justify-content: center;    align-content: center;}复制代码

对于PC端,一般chrome(测试版本:49.0.2623.110 m)和火狐(测试版本:49.0.2)都能很好地支持。ie不支持,显示的是顺序排列下来的宽度100%的模块。

对于移动端:

(1)上述代码iOS的原生safari浏览器是支持的;UC浏览器支持的很好;微信浏览器不支持(测试机型:苹果4s)

(2)安卓的原生浏览器不支持,能够正常显示模块,文档流依次排列;UC浏览器不支持,显示为空白;微信浏览器不支持(测试机型:华为荣耀6 Plus,Android4.4.2)

方法三:定位和负边距

.parent{    width: 100%;    height: 100%;    background: red;    position: relative;}.child{    background: blue;    position: absolute;    left: 50%;    top: 50%;    width: 100px;    height: 100px;    margin-left: -50px;    margin-top: -50px;}复制代码

此方法对子节点没固定宽高不适用;兼容性较好

方法四: 定位和transform

.parent{     width: 100%;     height: 100%;     background: red;     position: relative; }.child{    background: blue;    position: absolute;    left: 50%;    top: 50%;    transform: translate(-50%,-50%);}复制代码

此方法适用子节点没有固定宽高;

ie 10、Firefox、Opera 、Chrome支持 transform 属性。

Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。

Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。

所以再用这个方法的时候最好是加上浏览器前缀

方法五 :绝对定位和0

.parent{     width: 100%;     height: 100%;     background: red;     position: relative; }.child{    height: 50%;    width: 50%;    background: blue;    margin: auto;    position: absolute;    top: 0; left: 0; bottom: 0; right: 0;}复制代码

此方法要求子节点有宽高,兼容性较好

方法六:display:flex和margin:auto

.parent{     width: 100%;     height: 100%;     background: red;    display: flex; }.child{    background: blue;    margin: auto;}复制代码

此方法兼容性跟方法二一样

方法七:display:-webkit-box

.parent{     width: 100%;     height: 100%;     background: red;    display: -webkit-box;    -webkit-box-pack:center;    -webkit-box-align:center;    -webkit-box-orient: vertical;    text-align: center; }.child{    background: blue;}复制代码

关于display:-webkit-box可以参考

也可以参考

欢迎大家补充指正!!

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

你可能感兴趣的文章
uva 11045(最大流)
查看>>
CentOS 6搭建LAMP和phpRedisAdmin遇到的问题及解决方法分享
查看>>
mtime参数的理解
查看>>
python扫描端口脚本
查看>>
C语言第一章基本概念练习。
查看>>
新的思想来源
查看>>
《从癸酉之变看作风建设与历史周期律》笔记
查看>>
SpringMVC07处理器方法的返回值
查看>>
c#发送邮件
查看>>
MySQL 5.5.35 单机多实例配置详解
查看>>
Nginx+Keepalived 主备高可用 安装与配置
查看>>
java实现excel的导入导出(poi详解)
查看>>
【转】值传递与引用传递
查看>>
MongoDB 入门篇
查看>>
parted创建LVM
查看>>
java中pojo对象首字母大写导致无法赋值问题
查看>>
[转载]大话MVP
查看>>
2014年总结
查看>>
MyTableWidget
查看>>
Linux常见命令
查看>>