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/

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