前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何输出图片的原始比率

如何输出图片的原始比率

作者头像
用户2845596
发布2021-01-21 15:11:03
9970
发布2021-01-21 15:11:03
举报
文章被收录于专栏:劝学

背景

一些网站特别是以内容呈现为主的,经常会有图片的显示。一方面图片要懒加载,另一方面要设置图片占位以避免页面抖动。 懒加载的这篇文章先不说,先说下图片占位中,保持图片原始宽高百分比的问题。

图片原始宽高百分比,在英文里有个专有名词,Intrinsic ratio,在Google搜这个会出来很多文章的。

demo

jsbin.com/copogub/edi…

HTML

首先设定页面上图片的原始高度宽度是已知的,自然百分比也是已知的了

里面的$ratio为服务端渲染的变量,一般的4x3比率:75%,16x9比率:56.25%

代码语言:javascript
复制
<section class="main">
    <div class="intrinsic" style="padding-top: $ratio">
        <img class="intrinsic-item" alt="" src="https://fakeimg.pl/300x300/">
    div>
section>
复制代码

SCSS

下面是相应的样式文件 其中padding-top是控制百分比的关键,padding-top的百分比又是相对于宽度的,具体解释文章看这里

然后里面的图片用绝对定位来撑开

代码语言:javascript
复制
.main {
  display: inline-block;
  /* 注意这里设置的是max-width,而不是width,以兼容小图片 */
  width: 200px;
  .intrinsic {
    position: relative;
    height: 0;
    width: 100%;
    padding-top: 100%; /* padding-top初始化为100% */

    /* 图片占位背景 */
    background: #f0f0f0;

    /* 图片上下左右撑开 */
    .intrinsic-item {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
    }
  }
}

the end

参考文章:daverupert.com/2015/12/int…

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • demo
  • HTML
  • SCSS
  • the end
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档