200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > css设置盒子宽高比固定 高度随着宽度发生变化

css设置盒子宽高比固定 高度随着宽度发生变化

时间:2022-06-05 21:00:53

相关推荐

css设置盒子宽高比固定 高度随着宽度发生变化

第一种方法: css属性:aspect-ratio——盒子的宽高比;

1)它的属性值可为1; 1.2;0.2;1/2; 3/2; 2.2/3.2

2)当然也可以包一个calc(画蛇添足没必要);

3)注意不能设置百分比,就算用calc包裹也没用

这个属性用着也比较简单

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.test-box{width: 100%;aspect-ratio: 8/1;background: red;}</style></head><body><div class="test-box"></div></body></html>

这个属性还可以用来做响应式

/* 最小宽高比 */@media (min-aspect-ratio: 8/5) {div {background: #9af; /* blue */}}/* 最大宽高比 */@media (max-aspect-ratio: 3/2) {div {background: #9ff; /* cyan */}}/* 明确的宽高比, 放在最下部防止同时满足条件时的覆盖*/@media (aspect-ratio: 1/1) {div {background: #f9a; /* red */}}

优点:

用着简单方便,不会增加多余dom

缺点:

兼容性比较差,除非你们不考虑老一点的版本;比如google浏览器版本要100+版本才支持,80就不支持

第二种方法:利用padding撑开盒子;原理:padding设置百分比的是基于盒子的宽度来计算的

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.test-box-container{position: relative;padding-top: 40%;width: 100%;}.test-box{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: red;}</style></head><body><div class="test-box-container"><div class="test-box"></div></div></body></html>

优点:

没有啥兼容问题,可以放心使用

缺点:

每用一次就会添加一个冗余的dom盒子

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。