CSS保持元素宽高比,固定元素宽高比

方法一:

html 复制代码
<div class="hcp-fixed-aspect-ratio-box">
	这里是正文内容
</div>
css 复制代码
.hcp-fixed-aspect-ratio-box {
	width: 50%;
	color: #FFFFFF;
	margin: 100px auto;
	background: #FF0000;
	/* 宽高比2:1,兼容性可能不太好 */
	aspect-ratio: 2 / 1;
}

方法二:

html 复制代码
<div class="hcp-fixed-aspect-ratio-box">
	<div class="hcp-inner">
		<div class="hcp-content">
			这里是正文内容
		</div>
	</div>
</div>
css 复制代码
.hcp-fixed-aspect-ratio-box {
	width: 50%;
	margin: 100px auto;
	background: #FF0000;
}
.hcp-fixed-aspect-ratio-box .hcp-inner {
	height: 0;
	width: 100%;
	/* 
	padding在各个方向中的中的百分比,都是相较于父元素宽度的
	所以这里设置padding-top为50%,就将其高度撑开到了父元素宽度的50%
	它自身高度为0,加上padding-top的高度,总体高度就是其父元素宽度的50%
	 */
	padding-top: 50%;
	/* 然后使用相对定位 */
	position: relative;
}
.hcp-fixed-aspect-ratio-box .hcp-content {
	/* 设置其宽高与父元素相同 */
	width: 100%;
	height: 100%;
	color: #FFFFFF;
	/* 然后使用绝对定位 */
	top: 0;
	left: 0;
	position: absolute;
}
相关推荐
谢尔登2 分钟前
【React】React组件的渲染过程分为哪几个阶段?
前端·javascript·react.js
MediaTea16 分钟前
Python 第三方库:Flask(轻量级 Web 框架)
开发语言·前端·后端·python·flask
5***o50022 分钟前
前端构建工具缓存清理,解决依赖问题
前端·缓存
lcc18739 分钟前
Vue Vue与VueComponent的关系
前端·vue.js
无敌最俊朗@40 分钟前
Vue 3 概况
前端·javascript·vue.js
摆烂工程师1 小时前
今天 Cloudflare 全球事故,连 GPT 和你的网站都一起“掉线”了
前端·后端·程序员
拉不动的猪1 小时前
一文搞懂:localhost和局域网 IP 的核心区别与使用场景
前端·javascript·面试
亿元程序员2 小时前
你支持游戏内显示电量、信号或时间吗?
前端
阿珊和她的猫2 小时前
HTTP:Web 世界的基石协议详解
前端·网络协议·http
未来之窗软件服务2 小时前
自建开发工具IDE(二)文件托拽读取——东方仙盟炼气期
开发语言·前端·javascript·仙盟创梦ide·东方仙盟