网页元素居中攻略记_(5)未知宽高元素绝对居中

本文详细介绍了如何利用CSS3的transform属性和Flexbox布局实现网页元素的自适应居中,避免了传统方法的局限性。包括传统绝对居中的方法、新型绝对居中方法及移动端布局的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题外话

以前,我们要自适应全局居中,需要借助JS或者JQ来实现,

现在有了CSS3就可以省去好多功夫了,为什么这么说!!

传统的绝对居中

	#container{
		position:abosolute;
		top:50%;
		left:50%;
		margin-left:-包含块宽度的一半(如 -300px );
		margin-top: -包含块高度的一半;
	}

这种是实现了包含块的绝对居中,但是有一个问题,就是宽高度无法自适应(需固定宽高)。
比如动态增加数据的时候,用这个就不大合适了,这时候折中的办法就是借助JS或者JQ来解决

新型的绝对居中

  • position + transform

(需要较新浏览器,用了一个CSS3的属性)
属性的名字:transform:translate(支持IE9+,其他浏览器基本都支持了);

	#container{
	  position: absolute; // 会找到最近的一个position:relative父类进行偏移
	  top: 50%;
	  left: 50%;
	  transform: translate(-50%, -50%);
	}

下面我们来分析这句话transform: translate(-50%, -50%);;
意思就是说,拉回调用该属性的元素的一半宽高;

transform:translate有三种写法,我写的那种包含X,Y的,第一个参数是针对X轴左右拉动,第二个是针对Y轴上下拉动

另外两种参数写法:

  1. transform:translateX(-50%),只针对X轴;
  2. transform:translateY(-50%),只针对Y轴;

使用了该属性后,就可以实现未知宽高自适应绝对居中了!!!是不是很赞!!!

  • flexbox

移动端用的比较多,因为移动端对这个的支持比较友好;

#container{
   display:flex;
   justify-content:center;
   align-items:center;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值