height=0
假设有这样的需求,要使元素的高随着width的变化而出现等比例的变化,使得元素的形状比例依旧正常。
这一需求更多是在响应式开发中遇到
代码
HTML1
2
3<div class="father">
<div class="child"></div>
</div>
CSS
1 | .childbox{ |
原理
子元素的 padding 属性百分比的值是相对于父容器的宽度而言的,这点很重要
使用padding-bottom来代替height来实现高度与宽度成比例的效果,将padding-bottom设置为想要实现的height的值。
上面的padding-bottom: 50%,对应效果:高度为宽度的50%。修改百分比以达到你想要的效果。
同时将其height设置为0,以使元素的“高度”等于padding-bottom的值,从而实现需要的效果。
width=0
这里要谈到弹性布局flex,
看下面这布局,重点在颜色框框
代码
HTML1
2
3
4<div class="box">
<div class="left"></div>
<div class="right"></div>
</div>
CSS
1 | .box{ |
默认左元素有内容,占据一些宽度,
明显当右边子元素(红色框),内容过多会挤出父元素。
解决
1 | .box{ |
效果: