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;
}
相关推荐
恋猫de小郭2 小时前
Flutter 3.35 发布,快来看看有什么更新吧
android·前端·flutter
暖木生晖3 小时前
flex-wrap子元素是否换行
javascript·css·css3·flex
gnip4 小时前
浏览器跨标签页通信方案详解
前端·javascript
gnip4 小时前
运行时模块批量导入
前端·javascript
hyy27952276844 小时前
企业级WEB应用服务器TOMCAT
java·前端·tomcat
逆风优雅5 小时前
vue实现模拟 ai 对话功能
前端·javascript·html
若梦plus5 小时前
http基于websocket协议通信分析
前端·网络协议
不羁。。5 小时前
【web站点安全开发】任务3:网页开发的骨架HTML与美容术CSS
前端·css·html
这是个栗子5 小时前
【问题解决】Vue调试工具Vue Devtools插件安装后不显示
前端·javascript·vue.js