CSS实现定位元素居中的方法


Posted in HTML / CSS onJune 23, 2015

绝对定位元素的居中实现

如果要问如何CSS实现绝对定位元素的居中效果,很多人心里已经有答案了。

兼容性不错的主流用法是:

CSS Code复制内容到剪贴板
  1. .element {   
  2.     width600pxheight400px;   
  3.     positionabsoluteleft: 50%; top: 50%;   
  4.     margin-top: -200px;    /* 高度的一半 */  
  5.     margin-left: -300px;    /* 宽度的一半 */  
  6. }  

但,这种方法有一个很明显的不足,就是需要提前知道元素的尺寸。否则margin负值的调整无法精确。此时,往往要借助JS获得。

CSS3的兴起,使得有了更好的解决方法,就是使用transform代替margin. transform中translate偏移的百分比值是相对于自身大小的,于是,我们可以:

CSS Code复制内容到剪贴板
  1. .element {   
  2.     width600pxheight400px;   
  3.     positionabsoluteleft: 50%; top: 50%;   
  4.     transform: translate(-50%, -50%);    /* 50%为自身尺寸的一半 */  
  5. }  

于是乎,无论绝对定位元素的尺寸是多少,其都是水平垂直居中显示的。

然,问题很明显,兼容性不好。IE10+以及其他现代浏览器才支持。中国盛行的IE8浏览器被忽略是有些不适宜的(手机web开发可忽略)。

实际上,绝对定位元素的居中实现还有另外一种方法,可以说是权衡了上面的尺寸自适应以及兼容性的一个方案,其实现的核心是margin:auto.

margin:auto实现绝对定位元素的居中

首先,我们来看下CSS代码:

CSS Code复制内容到剪贴板
  1. .element {   
  2.     width600pxheight400px;   
  3.     positionabsoluteleft: 0; top: 0; rightright: 0; bottombottom: 0;   
  4.     marginauto;    /* 有了这个就自动居中了 */  
  5. }  

代码两个关键点:

    上下左右均0位置定位;
    margin: auto

于是,就居中了。上面代码的width: 600px height: 400px仅是示意,你修改为其他尺寸,或者不设置尺寸(需要是图片这种自身包含尺寸的元素),都是居中显示的。很有意思的~~

您可以狠狠地点击这里:margin:auto与绝对定位元素的垂直居中demo

HTML / CSS 相关文章推荐
css3学习之2D转换功能详解
Dec 23 HTML / CSS
CSS3制作酷炫的三维相册效果
Jul 01 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
Jul 03 HTML / CSS
基于CSS3的animation属性实现微信拍一拍动画效果
Jun 22 HTML / CSS
html5教程实现Photoshop渐变色效果
Dec 04 HTML / CSS
通过HTML5规范搞定i、em、b、strong元素的区别
Mar 04 HTML / CSS
html5实现移动端适配完美写法
Nov 16 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
Aug 10 HTML / CSS
用position:sticky完美解决小程序吸顶问题的实现方法
Apr 24 HTML / CSS
CSS实现两列布局的N种方法
Aug 02 HTML / CSS
DIV CSS实现网页背景半透明效果
Dec 06 HTML / CSS
HTML5之高度塌陷问题的解决
Jun 01 HTML / CSS
利用CSS3实现文本框的清除按钮相关的一些效果
Jun 23 #HTML / CSS
使用CSS3制作饼状旋转载入效果的实例
Jun 23 #HTML / CSS
利用CSS3实现圆角的outline效果的教程
Jun 05 #HTML / CSS
浅析与CSS3的loading动画加载相关的transition优化
May 18 #HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
Apr 25 #HTML / CSS
CSS+jQuery实现的在线答题功能
Apr 25 #HTML / CSS
纯CSS3制作漂亮带动画效果的主机价格表
Apr 25 #HTML / CSS
You might like
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
js同时按下两个方向键
2007/12/01 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
Python字符串处理函数简明总结
2015/04/13 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
物业管理毕业生个人的求职信
2013/11/30 职场文书
银行办理业务介绍信
2014/01/18 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
新任教师自我鉴定
2014/02/24 职场文书
家长对老师的评语
2014/04/18 职场文书
保护环境倡议书300字
2014/05/19 职场文书
学校党员对照检查材料
2014/08/28 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
css样式important规则的正确使用方式
2022/06/10 HTML / CSS