CSS的padding实现百分比布局

在我以前的文章中,我讲过CSS中的一系列的百分比单位,其中margin和padding是相对于容器的宽度的,最近看到了一个文章,讲的是用padding来实现图片等比例布局。大概的需求如下,我们需要将图片按照我们希望的比列进行显示,图片的宽度是按照百分比响应式。你可能觉得这没啥,因为img标签在没有设定固定的高度时,其高度会按照图片本身的比列进行计算。但是我们的图片本身可能不是按照我们希望的比列。这里就可以运用padding百分实现了

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Padding百分比</title>
	<style>
		*{
			margin: 0;
			padding: 0;
		}
		.outer{
			width: 100%;
		}
		.wrap{
			vertical-align: top;
			display: inline-block;
			width: 49%;			
			padding-bottom: 60%;			
			margin-bottom: 30px;
			position: relative;
		}
		.wrap2{
			vertical-align: top;
			display: inline-block;
			width: 49%;				
		}
		div > img{
			width: 100%;
			height: 100%;
		}
		.item2{
			position: absolute;			
		}
	</style>
</head>
<body>
	<div class="outer">
		<div  class="wrap">
			<img  class="item2" src="../Img/long.png">	
		</div>
		<div  class="wrap2">
			<img src="../Img/long.png">		
		</div>
	</div>	
</body>
</html>

效果如下图:
在这里插入图片描述
右侧是图片本身的比例,左侧是我们根据我们自己设定的百分比显示的结果。

还有一点需要注意,对于没有设定高度的图片,其在加载是高度是由零变化到目标高度,会引起大量的重绘,性能很不友好。

关于这个padding百分比布局更详细的内容可以参考下文:
https://www.zhangxinxu.com/wordpress/2017/08/css-percent-padding-image-layout/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章