css 实现水平垂直居中

一、通过设置子元素
.parent{
	position: absolute;	/* 非static即可 */
	width: 500px;
	height: 300px;
}
子元素知道 width, height
  1. position, top, left, transform

    .child{
    	width: 100px;
    	height: 50px;
    	position: absolute;
    	top: 50%;
    	left: 50%;
    	transform: translate(-50px, -25px);
    }
    
  2. position, left, right, top, bottom, margin

    .child{
    	positon: absolute;
    	width: 100px;
        height: 50px;
    	/* 设置 left, right, top, bottom 是为了给marin: auto;的计算定界 */
    	left: 0;
    	right: 0;
    	top: 0;
    	bottom: 0;
    	margin: auto;
    }
    
子元素不知道 width, height(子元素的长宽由内容决定)
  1. position, left, top, transform

    .child{
    	position: absolute;
    	left: 0;
    	top: 0;
    	transform: translate(-50%, -50%);
    }
    
二、通过设置容器
  1. flex 布局

    .parent{
    	display: flex;
    	flex-direction: row;
    	justify-content: center;
    	align-items: center;
    }
    
  2. grid 布局

三、伪元素

vertical-align

  • 元素是内联元素才能生效
  • 会以容器内最高的元素的中轴进行对齐
.parent{
	text-align: center;	/* 水平居中 */
	width: 500px;
	height: 300px;
}
.parent::before{/* 伪元素用于撑开容器的高度,协助vertical-align确定垂直中轴 */
	content: "";
	display: inline-block;		/* vertical-align 要求是内联元素 */
	width: 0;					/* 宽度为0,不影响其他子元素的布局 */
	height: 300px;				/* 高度与容器高度相同 */
	vertical-align: middle;
}

.child{
	display: inline-block;		/* vertical-align 要求是内联元素 */
	vertical-align: middle;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值