css元素垂直和水平居中

  1. 已知元素高度
    方式一:

    <html>
    	<head>
    		<style>
    			.box {
    				width: 200px;
    				height: 200px;
    				position: relative;
    			}
    			.content {
    				width: 40px;
    				height: 40px;
    				background: lightgray;
    				position: relative;
    				margin: 0 auto; /* 水平居中 */
    				top: 50%; /* 顶部与box中线对齐 */
    				margin-top: -20px; /* 中心与box中线对齐 */
    			}
    		</style>
    	</head>
    	<body>
    		<div class="box">
    			<div class="content"></div>
    		</div>
    	</body>
    </html>
    

    方式二:

    <html>
    	<head>
    		<style>
    			.box {
    				width: 200px;
    				height: 200px;
    				position: relative;
    			}
    			.content {
    				width: 40px;
    				height: 40px;
    				background: lightgray;
    				position: absolute;
    				margin: auto;
    				top: 0;
    				bottom: 0;
    				left: 0;
    				right: 0;
    			}
    		</style>
    	</head>
    	<body>
    		<div class="box">
    			<div class="content"></div>
    		</div>
    	</body>
    </html>
    
  2. 未知元素高度

    <html>
    	<head>
    		<style>
    			.box {
    				width: 200px;
    				height: 200px;
    				position: relative;
    			}
    			.content {
    				background: lightgray;
    				position: absolute;
    				left: 50%; /* 左边与竖直中线对齐 */
    				top: 50%; /* 上边与水平中线对齐 */
    				transform: translate(-50%, -50%); /* 向左和向上移动当前元素的50%  */
    			}
    		</style>
    	</head>
    	<body>
    		<div class="box">
    			<div class="content">居中</div>
    		</div>
    	</body>
    </html>
    
  3. flex布局

    <html>
    	<head>
    		<style>
    			.box {
    				width: 200px;
    				height: 200px;
    				display: flex;
    				justify-content: center; /* 水平居中 */
    				align-items: center; /* 垂直居中 */
    			}
    			.content {
    				background: lightgray;
    			}
    		</style>
    	</head>
    	<body>
    		<div class="box">
    			<div class="content"></div>
    		</div>
    	</body>
    </html>
    
  4. before伪元素+vertical-align: middle;

    <html>
    	<head>
    		<style>
    			.box {
    				width: 200px;
    				height: 200px;
    				text-align: center;
    				font-size: 0;
    				border: 1px dotted #f00;
    			}
    			.box:before {
    				content: "";
    				height: 100%;
    				width: 0;
    				vertical-align: middle;
    			}
    			.content {
    				background: lightgray;
    				font-size: 14px;
    				display: inline-block;
    			}
    		</style>
    	</head>
    	<body>
    		<div class="box">
    			<div class="content">居中</div>
    		</div>
    	</body>
    </html>
    
  5. grid布局

    <html>
    <head>
    	<style>
    		.box {
    			width: 200px;
    			height: 200px;
    			display: grid;
    			justify-content: center;
    			align-content: center;
    			border: 1px dotted #f00;
    		}
    		.content {
    			background: lightgray;
    		}
    	</style>
    </head>
    <body>
    	<div class="box">
    		<div class="content">居中</div>
    	</div>
    </body>
    </html>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值