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 相关文章推荐
学做Bootstrap的第一个页面
May 15 HTML / CSS
CSS3制作翻转效果_动力节点Java学院整理
Jul 11 HTML / CSS
css3中用animation的steps属性制作帧动画
Apr 25 HTML / CSS
CSS3实现3D翻书效果
Jun 20 HTML / CSS
CSS3的 fit-content实现水平居中
Sep 07 HTML / CSS
CSS3 实现弹跳的小球动画
Oct 26 HTML / CSS
html5实现移动端适配完美写法
Nov 16 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
Mar 04 HTML / CSS
如何在Canvas中添加事件的方法示例
May 21 HTML / CSS
跨域修改iframe页面内容详解
Oct 31 HTML / CSS
HTML5实现移动端点击翻牌功能
Oct 23 HTML / CSS
CSS实现渐变色边框(Gradient borders)的5种方法
Mar 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 array_walk() 数组函数
2011/07/12 PHP
PHP 防注入函数(格式化数据)
2011/08/08 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
让焦点自动跳转
2006/07/01 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python AES加密模块用法分析
2017/05/22 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
python实现按关键字筛选日志文件
2019/12/24 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
医生进修自我鉴定
2014/01/19 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
酒鬼酒广告词
2014/03/21 职场文书
趣味运动会策划方案
2014/06/02 职场文书
先进工作者申报材料
2014/12/23 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
消防安全主题班会
2015/08/12 职场文书
python实现监听键盘
2021/04/26 Python