使用css实现元素水平垂直居中
2019-06-25 16:49
176 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35423431/article/details/93631081
在做弹窗组件时,需要实现元素水平垂直居中,总结记录一下。(有借鉴)
1、使用position:absolute,绝对定位实现
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <style type="text/css"> *{ margin: 0px; padding: 0px; } .box{ height:500px; width: 100%; background: yellow; display: flex; justify-content: center; align-items: center; } .left{ width: 200px; height: 100px; background: green; } </style> </head> <body> <div class="box"> <div class="left">qwe</div> </div> </body> </html>
绝对定位到屏幕的一半,是相对于左上角的坐标点,还需要设置上移height的50%,左移width的50%。父子关系的话,需要给父元素设置position: relative,子元素是相对于父元素绝对定位的。
2、transform转换(不定宽高元素实现元素水平垂直居中)
.left{ position: absolute; top:50%; left:50%; transform: translate(-50%, -50%); background: green; }
定位方法前提是宽度和高度已知,当两者未知时,使用transform,但是,但是,这种方法可能会有文字模糊的问题,当像素是非整数时。并且,在父元素使用transform,会限制positon:fixed,不能固定变成跟absolute一样。
可以看下这篇文章,详细介绍了transform的影响:CSS3 transform对普通元素的N多渲染影响
3、弹性布局
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <style type="text/css"> *{ margin: 0px; padding: 0px; } .box{ width: 100%; height: 500px; display: flex; justify-content: center; /*水平居中 主轴上的对齐方式*/ align-items: center; /*垂直居中 交叉轴上的对齐方式*/ background: yellow; } .left{ background: green; } </style> </head> <body> <div class="box"> <div class="left"> 123 <p>qwe</p> </div> </div> </body> </html>
是在父元素上进行设置的,对于文本居中也有效。
flex浏览器兼容
相关文章推荐
- CSS实现垂直居中的常用方法 在前端开发过程中,盒子居中是常常用到的。其中 ,居中又可以分为水平居中和垂直居中。水平居中是比较容易的,直接设置元素的margin: 0 auto就可以实现。但是垂直
- 使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。
- CSS实现父级元素属性display为block的元素垂直和水平居中的三种方法
- CSS实现元素水平、垂直居中的方法
- css 实现元素水平垂直居中总结5中方法
- 使用弹性布局(display:flex)实现元素的水平居中和垂直居中
- css实现元素水平垂直居中
- 使用Sass优雅并高效的实现CSS中的垂直水平居中(附带Flex布局,CSS3+SASS完美版)
- css实现高度不固定的div元素模块在页面中水平垂直居中
- CSS实现元素水平/垂直居中的方法
- 利用css实现元素水平垂直居中的方法(分情况讨论)
- css实现元素水平垂直居中
- css实现元素水平垂直居中的五种方法
- html中div使用CSS实现水平/垂直居中的多种方式
- 根据HTML+CSS完成一个三列布局,左右侧栏宽为180px,高为300px;中间栏自适应,高为300px;中间栏子元素(宽高不确定)实现水平、垂直居中。
- 使用CSS实现div的水平和垂直居中
- CSS实现文字或图片等元素垂直、水平、绝对定位居中技术
- 使用纯CSS实现未知尺寸的图片(但高宽都小于500px)在500px的正方形容器中水平和垂直居中。你有几种方法?
- css实现块级元素水平和垂直居中
- 【Web】CSS实现绝对定位元素水平垂直居中