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 3D立方体效果示例-transform也不过如此
Dec 05 HTML / CSS
详解CSS3中使用gradient实现渐变效果的方法
Aug 18 HTML / CSS
HTML5 微格式和相关的属性名称
Feb 10 HTML / CSS
html5中为audio标签增加停止按钮动作实现方法
Jan 04 HTML / CSS
使用HTML5的File实现base64和图片的互转
Aug 01 HTML / CSS
使用html5制作loading图的示例
Apr 14 HTML / CSS
详解HTML5中的Communication API基本使用方法
Jan 29 HTML / CSS
HTML5新增form控件和表单属性实例代码详解
May 15 HTML / CSS
html5实现滑块功能之type="range"属性
Feb 18 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
Sep 08 HTML / CSS
CSS3通过var()和calc()函数实现动画特效
Mar 30 HTML / CSS
CSS文本阴影 text-shadow 悬停效果详解
May 25 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 Document 代码注释规范
2009/04/13 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
一段批量给页面上的控件赋值js
2010/06/19 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
浅谈VUE中演示v-for为什么要加key
2020/01/16 Javascript
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
Python实现多行注释的另类方法
2014/08/22 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
佳能德国网上商店:Canon德国
2017/03/18 全球购物
求职信内容考虑哪几点
2013/10/05 职场文书
学生处主任岗位职责
2013/12/01 职场文书
年终总结会主持词
2014/03/25 职场文书
机电一体化专业求职信
2014/07/22 职场文书
推广活动策划方案
2014/08/23 职场文书
保研推荐信范文
2015/03/25 职场文书
企业承诺书格式范文
2015/04/28 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书
企业宣传稿范文
2015/07/23 职场文书
初三英语教学反思
2016/02/15 职场文书