CSS实现div居中的六种方式

方式一

父亲与自己的宽高不变的情况下使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>水平垂直居中方式一</title>
		<style type="text/css">
			.wrap{
				width:400px;
				height:400px;
				border-radius:10px;
				background-color: black;
				position: relative;
			}
			.item{
				width: 200px;
				height:200px;
				background-color: red;
				position: absolute;
				border-radius:10px;
				top: 50%;
				left:50%;
				/* margin-top为 自己的高度的一半 */
				margin-top: -100px; 
				/* margin-top为自己的宽度的一半  */
				margin-left: -100px;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="item"></div>
		</div>
	</body>
</html>

方式二

使用margin:auto;实现

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>水平垂直居中二</title>
		<style type="text/css">
			.wrap{
				width:400px;
				height:400px;
				border-radius:10px;
				background-color: black;
				position: relative;
			}
			.item{
				width: 200px;
				height:200px;
				position: absolute;
				border-radius:10px;
				background-color: red;
				top: 0;
				left: 0;
				right:0;
				bottom: 0;
				/* 横竖都居中 */
				margin: auto;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="item"></div>
		</div>
	</body>
</html>

方式三

使用 transform: translate(-50%,-50%);

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>水平垂直居中三</title>
		<style type="text/css">
			.wrap{
				width:400px;
				height:400px;
				border-radius:10px;
				background-color: black;
				position: relative;
			}
			.item{
				width: 200px;
				height:200px;
				position: absolute;
				border-radius:10px;
				background-color: red;
				top: 50%;
				left: 50%;
				transform: translate(-50%,-50%);
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="item"></div>
		</div>
	</body>
</html>

 方式四

使用display: table-cell;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>水平垂直居中四</title>
		<style type="text/css">
			.wrap{
				width:400px;
				height:400px;
				border-radius:10px;
				background-color: black;
				display: table-cell;
				/* 水平居中 */
				text-align: center;
				/* 垂直居中 */
				vertical-align: middle;
			}
			.item{
				width: 200px;
				height:200px;
				border-radius:10px;
				background-color: red;
				display: inline-block;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="item"></div>
		</div>
	</body>
</html>

方式五

使用display: flex;

 justify-content 和 align-items

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>水平垂直居中5.1</title>
		<style type="text/css">
			.wrap{
				width:400px;
				height:400px;
				border-radius:10px;
				background-color: black;
				display: flex;
				/* 水平居中 */
				justify-content: center;
				/* 垂直居中 */
				align-items: center; 
				
			}
			.item{
				width: 200px;
				height:200px;
				border-radius:10px;
				background-color: red;
				margin: auto;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="item"></div>
		</div>
	</body>
</html>

align-self: center; 和 margin: 0 auto; 或 align-self: center; 和 justify-content: center;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>水平垂直居中5.2</title>
		<style type="text/css">
			.wrap{
				width:400px;
				height:400px;
				border-radius:10px;
				background-color: black;
				display: flex;
				/* 水平居中 */
				/* justify-content: center; */
			}
			.item{
				width: 200px;
				height:200px;
				border-radius:10px;
				background-color: red;
				/* 垂直居中 */
				align-self: center;
				/* 水平居中 */
				margin: 0 auto;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="item"></div>
		</div>
	</body>
</html>

方式六

使用display:grid;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>水平垂直居中六</title>
		<style type="text/css">
			.wrap{
				width:400px;
				height:400px;
				border-radius:10px;
				background-color: black;
				display:grid;
			}
			.item{ 
				width: 200px;
				height:200px;
				border-radius:10px;
				background-color: red;
				
				/* 水平居中 */
				/* justify-self:center; */
				/* 垂直居中 */
				/* align-self: center; */

				/* 垂直水平居中 */
				margin: auto;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="item"></div>
		</div>
	</body>
</html>

最后

玩到极致,便是艺术。

加油铁汁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值