html盒子居中的方法position

已知一个盒子的宽高

在这里插入图片描述

		.d1{
				height:200px;
				width:200px;
				background: #EAADEA;
				
				position: relative;/*相对定位*/
			}
			.d2{
				width:50px;
				height:50px;
				background: #DB7083;
				
				position: absolute;/*绝对定位,相对于父元素的定位*/
				top:50%;
				left:50%;
				margin-top:-25px;/*减去d2盒子一半的高*/
				margin-left:-25px;/*减去d2盒子一半的宽*/
			}

如果不减去的话效果如图:在这里插入图片描述
不知道一个盒子的宽高

		.d1{
				height:200px;
				width:200px;
				background: #EAADEA;
				
				position: relative;/*相对定位*/
			}
			.d2{

				background: #DB7083;
				
				position: absolute;/*绝对定位,相对于父元素的定位*/
				top:30%;/*上边距的百分比*/
				left:20%;/*左边距的百分比*/
				right:20%;/*右边距的百分比*/
				bottom:30%;/*下边距的百分比*/
			}

在这里插入图片描述

绝对定位结合margin: auto,不需要提前知道尺寸,兼容性好。这个也是比较推荐的一种方式

.container {
    position: relative;
    height: 300px;
}
.item {
    width: 100px;
    height: 50px;
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

js写法

var box=document.querySelector('.box')

	my()
	window.onresize=function(){
		my()
	}
	function my(){
	var x=document.documentElement.clientWidth;
		var y=document.documentElement.clientHeight;
		box.style.left=x/2-(box.offsetWidth/2)+'px';
		//可视区域的宽度/2-盒子本身的一半
		box.style.top=y/2-(box.offsetHeight/2)+'px';
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值