水平垂直居中的几种常见实现方式

案例布局1

<style tyle='text/css'>
	.parent {
		width: 500px;
		height: 500px;
		border: 1px solid #ccc;
	}
	.child {
		width: 200px;
		height: 200px;
		border: 1px solid #00f;
	}
</style>
<div class='parent'>
	<div class='child'>
	</div>
</div>

案例布局2

<style type='text/css'>
.parent {
	width: 500px;
	height: 500px;
	border: 1px solid #ccc;
	display: table;
}
.child {
	display: table-cell;
	vertical-align: middle;
	text-align: center;
}
.cell {
	width: 200px;
	height: 200px;
	border: 1px solid #00f;
	display: inline-block;
}
</style>
<div class="parent">
	  <div class="child">
	  	<div class="cell"></div>
	  </div>
</div>	

实现效果展示

水平垂直居中实现效果

代码实现方式

1.display: flex

.parent {
	display: flex;
	justify-content: center;
	align-items: center;	
}

2.position

.parent {
	position:relative;
}
.child {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

3.display: grid

.parent {
	display: grid;
}
.child {
	justify-self: center;
	align-self: center;
}

4.after伪元素

.parent {
	text-align: center;
}
.parent:after {
	content: '';
	height: 100%;
}
.parent:after, .child {
	display: inline-block;
	vertical-align: middle;
}

5.display: flex 配合 margin

.parent {
	display: flex;
}
.child {
	margin: auto;
}

6.display: table (见案例布局2)

7.display: table-cell

.parent {
	display: table-cell;
	vertical-align: middle;
	text-align: center;	
}
.child {
	display: inline-block;
}

8.position

.parent {
	position: relative;
}
.child {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值