元素居中(水平+垂直)总结

如果对css样式的作用机制有疑惑,建议阅读张鑫旭著《CSS世界》

一、内联元素

1、水平居中

在父元素设置text-align:center属性即可。
这个属性写作text-align,不仅可以作用在文本上,也可以作用在图片和inline元素等上。
代码:
在这里插入图片描述
效果:
在这里插入图片描述

2、垂直居中

坊间传闻:要将单行文本居中,需要同时设置line-height与height两个属性,并且使其相等。
这样确实可以使单行文本居中,但是这种描述并不准确。
—— 详解见张鑫旭著《CSS世界》,5.2.2 为什么line-height可以让内联元素“垂直居中”

代码:
在这里插入图片描述
代码详解:
a、.test需要设置为inline-block,以在test前产生”幽灵空白节点“
b、.father设置line-height,作用在幽灵空白节点上,撑起父元素的高度
c、.test设置line-height:20px;覆盖继承自父元素的line-height属性
d、.test设置vertical-align:middle;使.test文本框与幽灵空白节点的中线对齐

幽灵空白节点:内联元素的所有解析和渲染表现就如同每个行框盒子的前面有一个“空白节点一样”。这个“空白节点”永远透明,不占据任何宽度,看不见也无法通过脚本获取,就好像幽灵一样,但又确确实实存在,表现如同文本节点一样,因此,称之为“幽灵空白节点”。
注意:每个内联元素之前都有一个“幽灵空白节点”
详解见张鑫旭著《CSS世界》3.4.3,幽灵空白节点

效果:
在这里插入图片描述

二、块级元素

1、水平居中

设置margin:0 auto;
代码:
在这里插入图片描述
效果:
在这里插入图片描述

三、垂直居中+水平居中

第三部分内容中,垂直居中与水平居中实现原理并无差别

3.1、元素本身设置了高度/宽度

作用对象是那些可以设置宽高的元素,所以内联元素不能使用这种方法居中
代码:
在这里插入图片描述
代码详解:
a、.father设置position:relative;作为.son元素的定位锚
b、.son 设置position:absolute; top:50%;
相对.father这个锚位置偏移。生效后,.son上边距.father上边50%的.father高度
在这里插入图片描述
c、.son设置margin-top:-50px;.son向上偏移自身高度一半的距离
在这里插入图片描述
效果:
在这里插入图片描述

3.2、不限制元素宽高
3.2.1:position + transform

同样是使用绝对定位来实现第一步偏移,只是第二步偏移的方式有所改变,由margin 改为 CSS中的translate()
代码:
在这里插入图片描述
效果:
在这里插入图片描述

3.2.2:使用flexbox布局

待居中元素的父元素设置display:flex;自身设置样式margin:auto
代码:
在这里插入图片描述
效果:
在这里插入图片描述

3.2.3:table-cell

适用于不定宽高,不定元素个数的对齐
代码:
在这里插入图片描述
效果:
在这里插入图片描述

3.2.4:position+T/R/B/L = 0 + margin:auto

代码:
在这里插入图片描述
效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值