css实现一个正方形

一、固定宽高

宽高固定是最简单的情况了,只要设置对应的宽高就可以了

height: 100px;
width: 100px;

二、利用vw

vw是相对于视口的宽度。视口被均分为100单位的vw。


height: 10vw;
width: 10vw;

三、利用padding-bottom

padding设置为百分比时是相对于父元素宽度计算的,利用此特性就可以实现一个固定宽高比的div

<div class="square"></div>
.square {
	width: 100%;
	heigth: 0;
	padding-bottom: 100%;
}

四、利用伪元素 + padding-bottom + absolute

利用padding-bottom确实可以实现正方形的效果,但是height需要设置成0,内部就无法很好的显示子元素。
这时候我们可以利用:after来撑高元素,再利用absolute实现一个正方形。

<div class="square">
	<div class="content">正方形</div>
</div>
.square {
	width: 50%;
	position: relative;
}

.square:after {
	content: "";
	display: block;
	padding-bottom: 100%;
}

.content {
	position: absolute;
	width: 100%;
	height: 100%;
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值