实现一个固定宽高比的div盒子

要实现一个固定宽高比的div,可以使用padding:%中百分比为宽度的百分比这个原理

<div class='div1'>
	<div class='div2'></div>
</div>
<style>
	.div2{
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		background: red;
	}
	.div1{
		height: 0;
		padding-bottom: 75%;
		width: 100%;
		position: relative;
	}
</style>

这时会生成一个铺满屏幕的75%宽高比的盒子,那么要控制宽度,只需要在外面添加一层div

<div class='div3'>
	<div class='div1'>
		<div class='div2'></div>
	</div>
</div>
<style>
	.div2{
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		background: red;
		}
	.div1{
		height: 0;
		padding-bottom: 75%;
		width: 100%;
		position: relative;
	}
	.div3{
		width: 100px;
		border: solid 1px;
		padding: 10px;
	}
</style>

最外层div不仅可以控制宽度,还可以方便的设置一些padding,边框之类。

最后将这个功能模块化:

<div class="intrinsic-ratios-box"><div><div>
	<!-- 此处填写div内容 -->
</div></div></div>
<style type="text/css">
	.intrinsic-ratios-box{
		width: 100px;
		border: solid 1px;
		padding: 10px;
	}
	.intrinsic-ratios-box > div{
		height: 0;
		padding-bottom: 75%;
		width: 100%;
		position: relative;
	}
	.intrinsic-ratios-box > div > div{
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		background: red;
	}
</style>

缺点就是盒子宽度和宽高比要分开来设置,以后再继续研究改进。