CSS垂直水平居中方式大全(二)----水平垂直居中

1.利用绝对定位+transform(不固定宽高水平垂直居中)


示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>居中</title>
		<style>
			#box {
			    position: relative;
			    width: 500px;
			    height: 400px;
			    background: #faebcc;
			}
			#child {
			    position: absolute;
			    top: 50%;
			    left: 50%;
			    transform: translate(-50%);
			}
		</style>
	</head>
	<body>

				<div id="box">
				    <div id="child">Hello world</div>
				</div>
		
	</body>
</html>


效果:



2.利用绝对定位+margin(.child宽高固定)


示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>居中</title>
		<style>
			#box {
			    position: relative;
			    width: 500px;
			    height: 400px;
			    background: #faebcc;
			}
			#child {
			    position: absolute;
			    top: 50%;
			    left: 50%;
			    width: 100px;
			    height: 80px;
			    background: #999999;
			    margin: -40px 0 0 -50px;/*负值取宽、高的一半*/
			}
		</style>
	</head>
	<body>

				<div id="box">
				    <div id="child">Hello world</div>
				</div>
		
	</body>
</html>


效果:



3.利用定位与margin:auto


示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>居中</title>
		<style>
			#box {
			    position: relative;
			    width: 500px;
			    height: 400px;
			    background: #faebcc;
			}
			#child {
			    position: absolute;    
			    width: 100px;
			    height: 80px;
			    background: #DDDDDD;
			    top: 0;    right: 0;    bottom: 0;    left: 0;    margin: auto;
			}
		</style>
	</head>
	<body>

				<div id="box">
				    <div id="child">Hello world</div>
				</div>
		
	</body>
</html>

效果:



4.利用display:table-cell


CSS中有一个用于竖直居中的属性vertical-align,但只有当父元素为td或者th时,这个vertical-align属性
才会生效,对于其他块级元素,例如 div、p等,默认情况下是不支持vertical-align属性的,设置块级元素的
display类型为table-cell,激活vertical-align属性,但display:table-cell存在兼容性问题,
所以这种方法没办法跨浏览器兼容。


示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>居中</title>
		<style>
			#box {
			    display: table-cell;
			    vertical-align: middle;/*垂直*/
			    text-align: center;/*水平*/
			    width: 500px;
			    height: 400px;
			    background: #faebcc;
			}
			#child {
			    display: inline-block;
			    width: 100px;
			    height: 80px;
			    background: #f65f57;
			}
		</style>
	</head>
	<body>

				<div id="box">
				    <div id="child">Hello world</div>
				</div>
		
	</body>
</html>

效果:


5.页面居中


方法一:


示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>居中</title>
		<style>
			#child {
		        width:100px;
		        height:100px;
		        background:aqua;
		        position:absolute;
		        top:0;
		        left:0;
		        right:0;
		        bottom:0;
		        margin:auto;
			}
		</style>
	</head>
	<body>

	           <div id="child">Hello world</div>
		
	</body>
</html>


效果:



方法二:


示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>居中</title>
		<style>
		  #child {
	            width:100px;
	            height:100px;
	            background:aqua;
	            position:absolute;
	            top:50%;
	            left:50%;
	            margin-left:-50px;
	            margin-bottom:-50px;
		  }
		</style>
	</head>
	<body>

	<div id="child">Hello world</div>
		
	</body>
</html>



效果:



方法三:


示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>居中</title>
		<style>
		  #child {
	            background:aqua;
	            position: absolute; 
	            width: 6em; 
	            height: 6em;
	            top: calc(50% - 3em); 
	            left: calc(50% - 3em); 
		  }
		</style>
	</head>
	<body>

	          <div id="child">Hello world</div>
		
	</body>
</html>



效果:



方法四:


示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>居中</title>
		<style>
		  #child {
			background: #999999;
		        position: absolute; 
		        top:50%;
		        left:50%;
		        transform:translate(-50% -50%);
		  }
		</style>
	</head>
	<body>

		<div id="child">Hello world</div>
		
	</body>
</html>



效果:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值