火狐浏览器,绝对定位元素设置display:box失效及解决办法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>火狐浏览器下绝对定位失效</title>
		<style type="text/css">
			*{padding: 0;margin: 0;}
			body{position: relative;	}
			.wrap{
				width: 200px;
				height: 200px;
				background-color: lightcoral;
				position: absolute;
				left: 150px;
				top:150px;
				display: -moz-box;
				display: -webkit-box;
				-webkit-box-align: center;
				-webkit-box-pack: center;
				-moz-box-align: center;
				-moz-box-pack: center;
			}
			.content{
				width:100px;
				height: 100px;
				background-color: lightblue;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="content"></div>
		</div>
	</body>
</html>

代码如上图:

1、display:box后通过align和pack的center,可以是元素水平垂直居中

2、对wrap加上绝对定位后,在火狐中display:box失效了,经过试验,在safari和谷歌浏览器中仍然正常

3、解决办法:在wrap和content中间在加层div,设其class为middle,div的大小是wrap的宽度和高度的100%,在wrap中绝对定位,在middle中设置display:box,则能达到content在middle居中的效果,即content在wrap水平和垂直居中的效果

更改代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>火狐浏览器下绝对定位失效</title>
		<style type="text/css">
			*{padding: 0;margin: 0;}
			body{position: relative;	}
			.wrap{
				width: 200px;
				height: 200px;
				background-color: lightcoral;
				position: absolute;
				left: 150px;
				top:150px;
			}
			.middle{
				width: 100%;
				height: 100%;
				display: -moz-box;
				display: -webkit-box;
				-webkit-box-align: center;
				-webkit-box-pack: center;
				-moz-box-align: center;
				-moz-box-pack: center;
			}
			.content{
				width:100px;
				height: 100px;
				background-color: lightblue;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<div class="middle">
				<div class="content"></div>
			</div>
		</div>
	</body>
</html>


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值