純css寫正方形

 

效果圖:html

<!doctype html>
<html lang="zh-cn">

<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		* {
			margin: 0;
			padding: 0;
		}

		#body {
			width: 100%;
			border: 1px solid #000;
		}

		.square {
			position: relative;
			box-sizing: border-box;
			float: left;
			width: 20%;
			border: 1px solid #000;
		}

		.square::before {
			content: "";
			display: block;
			padding-top: 100%;
		}

		.square>.square-inner {
			position: absolute;
			left: 0;
			top: 0;
			width: 100%;
			height: 100%;
		}

	</style>
</head>

<body>
	<div id="body">
		<div class="square">
			<div class="square-inner"></div>
		</div>
		<div class="square">
			<div class="square-inner"></div>
		</div>
		<div class="square">
			<div class="square-inner"></div>
		</div>
		<div class="square">
			<div class="square-inner"></div>
		</div>
		<div class="square">
			<div class="square-inner"></div>
		</div>
	</div>
	<div style="clear"></div>
	<!--.square 內部一個塊級元素 padding-top: 100%;
	(::before
	這個元素就正好是一個正方形
	而後實際內容根據 .square 絕對定位
	這算是一個比較經常使用的技巧
	利用了一個特性
	子元素的垂直百分比 margin padding 是基於父元素寬度計算的
	利用這個能夠實現寬高任意比例
	就這樣( -->

</body>

</html>
相關文章
相關標籤/搜索