!
也想出现在这里? 联系我们
广告位

如何用CSS实现自适应宽高等比例的容器

我们知道图片高度为 auto 时,宽高比会以图片原始尺寸的比例缩放,但如果每个元素里无图片且内容行数不固定或者每个元素里的图片宽高比不一致时,如下图,该如何实现每个

的宽高比例不变且一致呢?我们从自适应的角度探讨这个问题,即每个<li>的宽度为:31.3333%。目前通过 CSS 实现效果就有两种方法,在实际项目是可根据情况合理使用其中一种方法。

VW 单位实现

vw:视窗宽度的百分比(1vw 代表视窗的宽度为 1%),假如我们要实现每个

的宽高比例为 4:3,通过计算就可以知道高度应设为:23.5vw ≈ 31.3333 * 3 / 4,具体 CSS 样式如下:

  1. li {
  2. float: left;
  3. width: 31.3333%;
  4. margin: 1%;
  5. height: 23.5vw;
  6. }

这个方法适合在移动端,vw 属于 CSS3,可兼容 安卓 4.4+,IOS7.0+,如需兼容旧版就不适用了。

Padding 实现

padding 与 margin 值设置为百分比是以父元素宽度的百分比,即使对 padding-top 和 padding-bottom 也是如此,而 padding 是计算在宽高里的,即设置了 overflow: hidden; 并不会把 padding “溢出”,同样我们需实现每个<li>的宽高比例为 4:3,综上所述,通过计算就就可以把 padding-bottom 的值设为: 23.5% ≈ 31.3333 * 3 / 4,具体 CSS 样式如下:

  1. li {
  2. float: left;
  3. width: 31.3333%;
  4. margin: 1%;
  5. height: 0;
  6. padding-bottom: 23.5%;
  7. overflow: hidden;
  8. }

这个方法无兼容性问题,可兼容旧版浏览器。

如果<li>里有图片则可以稍改动,如下:

  1. li {
  2. float: left;
  3. width: 31.3333%;
  4. margin: 1%;
  5. }
  6. li .pic {
  7. height: 0;
  8. padding-bottom: 75%;
  9. overflow: hidden;
  10. }
  11. li .pic img {
  12. width: 100%;
  13. height: auto;
  14. }

给TA打赏
共{{data.count}}人
人已打赏
前端学习

怎样让网页图片高度自适应宽度

2024-7-30 11:33:13

前端学习

纯CSS制作中英文双语导航菜单

2024-7-31 11:33:02

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索