css图片垂直居中

用css来定义图片垂直居中的方法很多,我这里分享几种给大家参考学习学习。

1、图片定高的情况让图片垂直居中效果如下:

(1)、定高的情况比较容易,设置margin-top顶部的外边距是图片外面容器高度减去图片高度除2,就可以居中了。如下面是(300-150)/2=75,所以设置margin-top:75;即可居中,这种兼容性高但是图片大小不够灵活。

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<title>图片定高的情况让图片垂直居中</title>
	<style>
		.img-box,.mgList-box{width:100%;overflow:hidden;margin:0px;padding:0px;list-style:none;}
		.img-link{width:300px;height:300px;float:left;border:2px solid red;text-align:center;}
		.img-link img{margin-top:75px;}
	</style>
</head>
<body>
	<ul class="img-box">
		<li class="imgList-box">
			<a href="#" class="img-link"><img src="j.gif" width="150" height="150" alt=""></a>
			<a href="#" class="img-link"><img src="j.gif" width="150" height="150" alt=""></a>
			<a href="#" class="img-link"><img src="j.gif" width="150" height="150" alt=""></a>
		</li>
	</ul>
</body>
</html>




2、这种方法是定宽 不定高让图片垂直居中,如果你的图片高度超过了容器总高度,将会取到中间部分,这种做法利用到css3的transform属性。先是容器相对定位,图片绝对定位,然后图片top:50%;加个transform:translateY(-50%);意思是往上变形移动图片高度的一半,这样也达到了居中的效果。

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<title>图片定高的情况让图片垂直居中</title>
	<style>
		.img-box,.mgList-box{width:100%;overflow:hidden;margin:0px;padding:0px;list-style:none;}
		.img-link{width:300px;height:300px;position:relative;float:left;border:2px solid red;text-align:center;}
		.img-link img{position:absolute;top:50%;transform:translateY(-50%);left:50%;margin-left:-75px;}
	</style>
</head>
<body>
	<ul class="img-box">
		<li class="imgList-box">
			<a href="#" class="img-link"><img src="j.gif" width="150"  alt=""></a>
			<a href="#" class="img-link"><img src="j.gif" width="150"  alt=""></a>
			<a href="#" class="img-link"><img src="j.gif" width="150"  alt=""></a>
		</li>
	</ul>
</body>
</html>



3、利用vertical-align:middle;的方式居中,这种方式也非常棒,兼容性非常好。这种方式是利用以基线对齐的方式达到垂直居中。昵图网上的效果就是这样实现。

先在容器中定一个span标签样式写个display:inline-block;行块。高度定义为容器总高度,宽度为0不占位置,然后再定义个vertical-align:middle;图片也相同定义一个vertical-align:middle两者达到以基线对齐

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<title>图片定高的情况让图片垂直居中</title>
	<style>
		.img-box,.mgList-box{width:100%;overflow:hidden;margin:0px;padding:0px;list-style:none;}
		.img-link{width:300px;height:300px;float:left;border:2px solid red;text-align:center;}
		.img-link img{width:150px;vertical-align: middle;border:1px solid #ccc;}
		.inlineBlock{display:inline-block;height:300px;width:0px;overflow:hidden;vertical-align: middle;}
	</style>
</head>
<body>
	<ul class="img-box">
		<li class="imgList-box">
			<a href="#" class="img-link">
				<span class="inlineBlock"></span>
				<img src="Logo.png" width="150"  alt="">
			</a>
		</li>
	</ul>
</body>
</html>


还有其他的办法实现垂直居中这里就不一一例举,想了解的同学留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值