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;
}
相关推荐
EchoEcho3 分钟前
记录overflow:hidden和scrollIntoView导致的页面问题
前端·css
Cache技术分享5 分钟前
318. Java Stream API - 深入理解 Java Stream 的中间 Collector —— mapping、filtering 和 fla
前端·后端
竟未曾年少轻狂8 分钟前
Vue3 生命周期钩子
前端·javascript·vue.js·前端框架·生命周期
TT哇13 分钟前
【实习】数字营销系统 银行经理端(interact_bank)前端 Vue 移动端页面的 UI 重构与优化
java·前端·vue.js·ui
蓝帆傲亦14 分钟前
Web前端跨浏览器兼容性完全指南:构建无缝用户体验的最佳实践
前端
晴殇i18 分钟前
【前端缓存】localStorage 是同步还是异步的?为什么?
前端·面试
不一样的少年_20 分钟前
Chrome 插件实战:如何实现“杀不死”的可靠数据上报?
前端·javascript·监控
深度涌现20 分钟前
DNS详解——域名是如何解析的
前端
小码哥_常22 分钟前
Android内存泄漏:成因剖析与高效排查实战指南
前端
卤代烃23 分钟前
✨ 形势比人强,Chrome 大佬也去搞 Gemini 了
前端·agent·vibecoding