margin:auto实现绝对定位元素的水平垂直居中
1.绝对定位元素的居中实现的一般方法
兼容性不错的主流用法是:
但,这种方法有一个很明显的不足,就是需要提前知道元素的尺寸。否则margin负值的调整无法精确。此时,往往要借助JS获得。
CSS3的兴起,使得有了更好的解决方法,就是使用transform代替margin. transform中translate偏移的百分比值是相对于自身大小的,于是,我们可以:
于是乎,无论绝对定位元素的尺寸是多少,其都是水平垂直居中显示的。
然,问题很明显,兼容性不好。IE10+以及其他现代浏览器才支持, IE9(-ms-), IE10+以及其他现代浏览器才支持。中国盛行的IE8浏览器被忽略是有些不适宜的(手机web开发可忽略)。
实际上,绝对定位元素的居中实现还有另外一种方法,可以说是权衡了上面的尺寸自适应以及兼容性的一个方案,其实现的核心是margin:auto
2.margin:auto实现绝对定位元素的居中
首先,我们来看下CSS代码:
代码两个关键点:1.上下左右均为0;2.margin: auto。于是就居中了。
3.悠悠哉哉再说点什么
当一个绝对定位元素,其对立定位方向属性同时有具体定位数值的时候,流体特性就发生了
如果只有left属性或者只有right属性,则由于包裹性此时box宽度是0。但是在本例中,因为left/right同时存在,因此宽度就不是0,而是自适应于.box包含块的padding box宽度,也就是随着包含块padding box的宽度变化,.box的宽度也会跟着一起变。
触发流体特性且是绝对定位的元素的margin:auto填充规则和普通流体元素填充规则一模一样:
1.如果一侧定值,一侧auto,auto为剩余空间大小
2.如果两侧均是auto, 则平分剩余空间
比如:
此时.son这个元素的尺寸表现为“格式化宽度和格式化高度”,和<div>
的“正常流宽度”一样,同属于外部尺寸,也就是尺寸自动填充父级元素的可用尺寸的,然后,此时我们给.son设置尺寸,例如
此时son的宽高被固定限制,原本应该填充的空间就被多余了出来,这多余的空间就是margin:auto计算的空间,因此,如果这时候,我们再设置一个margin:auto,那么:
我们这个.son元素就水平和垂直方向同时居中了。因为,auto正好把上下左右剩余空间全部等分了,自然就居中啦!
margin:auto实现绝对定位元素的水平垂直居中相关推荐
- html 定位元素怎么居中,绝对定位元素的水平垂直居中的方法(3种任选)
1.css实现居中 缺点:需要提前知道元素的宽度和高度. Document .box{ width: 600px; height: 400px; position: absolute; left: 5 ...
- HTML+CSS之设置元素的水平垂直居中
本文主要介绍如何利用HTML和CSS实现元素的水平垂直居中. 1.弹性布局(不换行) justify-content:center:水平居中 align-items:center:垂直居中 .fath ...
- CSS基础(19)_绝对定位元素的水平或垂直布局
文档流中布局 一个元素在其父元素中,水平布局之前是要满足以下等式: margin-left+border-left+padding-left+width+padding-right+border-ri ...
- CSS文字或元素的水平垂直居中多种方式(简单明了)
前言:水平居中,我们可以很容易想到使用text-align实现文字水平居中,使用margin:0px auto;可以实现元素水平居中:所以重点将是怎么实现文字和元素的垂直居中?? --- 本文将通过举 ...
- 【CSS】绝对定位元素设置 水平 / 垂直 居中 ( 绝对定位元素居中设置 - 先偏移 50% 再回退子元素一半尺寸 | 绝对定位居中设置 )
文章目录 一.问题提出 二.绝对定位 居中设置 1.设置固定尺寸 2.先偏移50%再回退固定值 三.绝对定位元素 水平 / 垂直 居中 一.问题提出 绝对定位 不能通过 设置 margin: auto ...
- 未知宽高元素的水平垂直居中
大致有4种方法实现: 一.table布局(display:table) 二.绝对布局(position:absolute)+translate 三.转化 ...
- HTML元素的水平/垂直居中方式(简单代码和图)
1.水平居中text-align:center; 在没有浮动的情况下,我们可以让需要居中的块级元素设为inline/inline-block,然后在其父元素上添加text-aline:center;即 ...
- 元素的水平垂直居中解决方法
有时候为了使页面元素看起来更美观,常常会让元素水平居中,垂直居中.下面总结了几个常用的方法. 首先HTML结构如下: 1 <div class="out"> 2 < ...
- CSS实现子元素div水平垂直居中
div基本布局 <div class="main"><div class="center"></div>
最新文章
- 批量ping工具fping
- Redis集群-哨兵模式
- Exception in thread main java.io.IOException: (null) entry in command string: null chmod 0700 E:\t
- 编程开发使用的辅助软件大全
- 安装adobe acrobat导致回滚
- 使用 Chrome 开发者工具的 lighthouse 功能分析 web 应用的性能问题
- Mybatis——返回类型为 集合嵌套集合 应该如何处理
- python 结尾回车_理解不了Python正则表达式?我帮你搞定
- 【LeetCode】【HOT】581. 最短无序连续子数组
- JZOJ.5274【NOIP2017模拟8.14】数组
- android 输入法出现挤压屏幕、android输入键盘覆盖了屏幕控件的解决办法
- MVVM设计模式《网摘》
- Android图形显示系统——下层显示1:基础知识与相关文件
- FreeRTOS快速入门-初探FreeRTOS
- WinRAR的命令行模式用法介绍
- 操作系统形式化验证实践教程(1) - 证明第一个定理
- flutter开发的即时聊天应用
- 天然产物分子机制研究(内含彩蛋)——药物靶点预测系统案例分析2
- ikbc键盘win键失灵原因
- 祝学校计算机系的新年贺词,计算机工程学院 2019祝福情景剧