# css实现固定宽高比
对于经验丰富的前端来说,看到UI图的设计效果,肯定不会按部就班,直接写死尺寸,而是理解UI设计的思路,思考UI设计师想要的效果,然后再进行页面设计。我们经常会遇到,一行卡片,四等分,或者几等分,然后宽高比固定,但是宽度不固定跟随屏幕宽度大小自适应的情况。这时如果我们还是按照高度写死的话,就会使元素变形,很难看,UI验收肯定也是不过的。这就需要我们掌握如何使用CSS实现宽高比固定的技能。
# 请看如下示例
宽高比1:1(正方形)
爆米花小布
爆米花小布
爆米花小布
爆米花小布
宽高比16:9(观看视频)
# 第一个示例
第一个示例是一个品牌logo列表,每个品牌的logo形状千奇百怪,不一定是正方形的logo,但是此处明细,我们就是要设计一个正方形的容器来放置logo,然后设置图片object-fit属性为 contain,使其展示logo整块内容,且会是居中的效果。
# 第二个示例
第二个示例是实现一个宽高比为16:9的屏幕,里面展示图片,要让图片完全展示在一个容器里,和上面第一个示例一样的 设置 object-fit属性为contain,然后同理设置宽高比为 16:9 ,重要属性就是 padding,position。
# 原理
原理就是利用padding属性的百分比是根据元素宽度来计算的,不设置元素高度,然后使用padding-bottom属性100%,这时候该元素就会是正方形大小了,然后需要将元素设置position定位,否则子元素会占用父元素位置,使父元素不再是正方形,需要子元素使用相对定位脱离文本流,不占用位置。具体实现代码参考上述示例。
# 总结
下次遇到需要固定宽高比的就可以来这参考一下啦。微信公众号【爆米花小布】等你来关注。
【注意】对于上述使用到的品牌logo,如有侵犯,请提前告知。