纯css写正方形

本文介绍了一种使用CSS实现响应式正方形布局的方法。通过设置伪元素`::before`的`padding-top`属性为100%,并结合相对定位与绝对定位,确保了无论窗口大小如何变化,每个区块都能保持完美的正方形比例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

122902_K1Oz_3549294.png

 

效果图:

104224_qeB6_3549294.png

<!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>

 

转载于:https://my.oschina.net/u/3549294/blog/1605478

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值