纯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>
相关文章
相关标签/搜索