一般来说,我们在做banner切换的时候,经常用背景来代替插入img图片 ,但是图片有很好的伸缩性,但是插入背景却没有 ,如果能够让banner切换是背景图又能自适应屏幕宽高呢? 其实有办法可以解决 ,用padding-bottom 可以解决。
我想起切版网几个月前给客户做的仿国外网站的web前端外包项目,刚好就用到了padding-bottom, 而它的原理很简单:
因为垂直方向的padding值,根据宽度的大小来计算的。
方法如下:
<style> | |
.wrap{ | |
width: 100%; | |
} | |
.banner{ | |
width: 100%; | |
max-width: 490px; /**图片的宽度不大于图片实际像素**/ | |
height: 0; | |
max-height: 329px; | |
padding-bottom: 67.14%; /**根据图片高宽比计算*/ | |
margin: 0 auto; | |
background: url("images/test.jpg") no-repeat center; | |
background-size: cover; | |
} | |
@media only screen and (min-width: 490px) { | |
/**屏幕大于490时,将背景框高度设置为图片高度的实际像素**/ | |
.banner{ | |
height: 329px; | |
padding-bottom: 0; | |
} | |
} | |
</style> | |
<div class="wrap"> | |
<!--role属性 aria-label属性增强html的可读性,更语义化--> | |
<div role="img" aria-label="banner img" class="banner"></div> | |
</div> |