首页 > 其他分享 >让图片适应标签的CSS object-fit属性

让图片适应标签的CSS object-fit属性

时间:2024-03-18 19:00:13浏览次数:24  
标签:fit img 标签 object 尺寸 CSS 图片

在实际的项目运行过程中,可能出现运营人员上传的文件与预期的图片尺寸不同的情况,为了解决这一问题可以使用 object-fit 属性,对嵌入的图像(以及其他替代元素,如视频)做相应的变化,更加精确地控制图像的展示效果,从而满足多样化的设计需求。

让图片适应标签的CSS object-fit属性

object-fit: fill|contain|cover|scale-down|none;

1 说明

1.1 被变化图片的原图

为了更好的观察object-fit对于图片的改变,可以先查看原图的效果。
1416x708像素
在这里插入图片描述

77x66像素
在这里插入图片描述

1.2 区域说明

黑色部分像素300px × 300px
图片img标签200px × 200px

2 object-fit: none

object-fit:none; 保留原有元素内容的长度和宽度,不对图片进行变化。
图片的中心会自动对准img标签的中心位置。
这种情况下:大图只显示一部分;小图尺寸不变正常显示。
在这里插入图片描述

3 object-fit: fill

object-fit:fill; 是object-fit的默认属性,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 img 标签。
这种情况下:大图被缩小变形;小图被放大、变形、失真。
在这里插入图片描述

4 object-fit: contain

object-fit:contain; 保持图片原有比例,将保证图片的长边可以被完整的显示出来,图片会被缩放。
这种情况下:大图被缩小;小图被放大;
在这里插入图片描述

5 object-fit: cover

object-fit:cover; 保持原有比例,使图片短边能被显示出来,多余部分内容不被显示。
这种情况下:大图长边被裁剪;小图被放大,长边被裁剪;
在这里插入图片描述

6 object-fit: scale-down

object-fit:scale-down; 保持原有比例。内容的尺寸与 none 或 contain 中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。
这种情况下:大头被缩小,使长边能显示出来;小图长宽无编号。
在这里插入图片描述

7 示例所有代码

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .box {
        width: 900px;
        height: auto;
        display: grid;
        grid: auto-flow 300px / repeat(3, 300px);
        column-gap: 5px;
        row-gap: 20px;
        margin: 0 auto;
      }

      .box > div {
        display: grid;
        place-items: center;
        place-content: center;
        background: #000;
      }

      .box > div > span {
        color: #fff;
        min-height: 30px;
        text-align: center;
        margin-top: 10px;
      }

      .box > div > img {
        width: 200px;
        height: 200px;
        background: #aaa;
      }
    </style>
  </head>

  <body>
    <div class="box">
      <div>
        <span>图片原尺寸大于img标签尺寸</span>
        <img src="./image/big.jpg" alt="" srcset="" style="object-fit: none" />
      </div>
      <div>
        <span>object-fit:none; 保留原有元素内容的长度和宽度。</span>
        <span>这种情况下:</span>
        <span>大图只显示一部分</span>
        <span>小图正常显示,但是留白很大</span>
      </div>
      <div>
        <span>图片原尺寸小于于img标签尺寸</span>
        <img
          src="./image/small.jpg"
          alt=""
          srcset=""
          style="object-fit: none"
        />
      </div>
      <div>
        <span>图片原尺寸大于img标签尺寸</span>
        <img src="./image/big.jpg" alt="" srcset="" style="object-fit: fill" />
      </div>
      <div>
        <span
          >object-fit:fill;
          默认属性,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 img
          元素</span
        >
        <span>这种情况下:</span>
        <span>大图被缩小、变形</span>
        <span>小图被放大、变形、失真</span>
      </div>
      <div>
        <span>图片原尺寸小于于img标签尺寸</span>
        <img
          src="./image/small.jpg"
          alt=""
          srcset=""
          style="object-fit: fill"
        />
      </div>

      <div>
        <span>图片原尺寸大于img标签尺寸</span>
        <img
          src="./image/big.jpg"
          alt=""
          srcset=""
          style="object-fit: contain"
        />
      </div>
      <div>
        <span
          >object-fit:contain;
          保持图片原有比例,将保证图片的长边可以被完整的显示出来,图片会被缩放。</span
        >
        <span>这种情况下:</span>
        <span>大图被缩小</span>
        <span>小图被放大</span>
      </div>
      <div>
        <span>图片原尺寸小于于img标签尺寸</span>
        <img
          src="./image/small.jpg"
          alt=""
          srcset=""
          style="object-fit: contain"
        />
      </div>

      <div>
        <span>图片原尺寸大于img标签尺寸</span>
        <img src="./image/big.jpg" alt="" srcset="" style="object-fit: cover" />
      </div>
      <div>
        <span
          >object-fit:cover;
          保持原有比例,使图片短边能被显示出来,多余部分内容不被显示。</span
        >
        <span>这种情况下:</span>
        <span>大图长边被裁剪</span>
        <span>小图被放大,长边被裁剪</span>
      </div>
      <div>
        <span>图片原尺寸小于于img标签尺寸</span>
        <img
          src="./image/small.jpg"
          alt=""
          srcset=""
          style="object-fit: cover"
        />
      </div>

      <div>
        <span>图片原尺寸大于img标签尺寸</span>
        <img
          src="./image/big.jpg"
          alt=""
          srcset=""
          style="object-fit: scale-down"
        />
      </div>
      <div>
        <span
          >object-fit:scale-down; 保持原有比例。内容的尺寸与 none 或 contain
          中的一个相同,取决于它们两个之间谁得到的对象尺寸会更小一些。</span
        >
        <span>这种情况下:</span>
        <span>大图被缩小,是长边能被显示出来</span>
        <span>小图长宽无变化</span>
      </div>
      <div>
        <span>图片原尺寸小于于img标签尺寸</span>
        <img
          src="./image/small.jpg"
          alt=""
          srcset=""
          style="object-fit: scale-down"
        />
      </div>
    </div>
  </body>
</html>

标签:fit,img,标签,object,尺寸,CSS,图片
From: https://blog.csdn.net/qq_39410252/article/details/136815961

相关文章

  • jQuery+CSS3自动轮播焦点图特效源码
    jQuery+CSS3自动轮播焦点图特效源码,源码由HTML+CSS+JS组成,双击html文件可以本地运行效果,也可以上传到服务器里面下载地址jQuery+CSS3自动轮播焦点图特效源码......
  • 新人基础笔记css的文本属性及字体样式
    css的字体属性 1.字体系列CSS使用font-family属性定义文本的字体系列。语法:p{font-family:“微软雅黑”;}div{font-family:Arial,“MicrosoftYahei”,"微软雅黑";}各种字体之间必须使用英文状态下的逗号隔开一般情况下,如果有空格隔开的多个单词组成的字体,加引号......
  • CSS样式表和调试工具及语法及符合选择器
    注:CSS样式表,chrome调试工具,Emmet语法,css符合选择器一.样式表按照CSS样式书写的位置(或者引入的方式),CSS样式表可以分为三大类:1.行内样式表(行内式)行内样式表(内联样式表)是在元素标签内部的style属性中设定CSS样式。适合于修改简单样式。语法:<divstyle="color......
  • css实现一个三排数组滚动抽奖
    简单理解可视化版本:<divclass="slot-machine"><divclass="reel"><div>Item1</div><div>Item2</div><div>Item3</div><div>Item1<......
  • html css 两栏 三栏布局
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device......
  • 关于scss手动遍历生成类名
    1、自动生成宽度类名$width-name:300,100;@each$namein$width-name{.w#{$name}{width:$name+px;}};//以上代码将会生成.w300{width:300px;};.w100{width:100px;}2、自动生成间距类名$margin-name:(mt:(16,24,10),mb:(16),ml:......
  • css的基本使用
    CSS2.3结构伪类选择器伪类<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><style>ulli:first-child{background:brown;}......
  • 详细了解前端中css的相对定位和绝对定位
    序言:今天要说的是前端中css经常使用的相对定位和绝对定位,相信你在看完这篇文章后,对它的使用,以及它们出现的各种嵌套都会了如指掌,得心应手。目录概念理解:1、对相对定位的概念理解2、对绝对定位的概念理解应用实践:1、在相对定位方框体内的其他方框的定位情况分析:<1>在相......
  • JAVA面向对象高级:继承:权限修饰符(继承注意事项) 单继承 Object类 方法重写
    权限修饰符(共四个):publilcprivateprotected缺省   单继承:   Object类:所有类的祖宗类。类均继承了Object类  方法重写     方法重写在开发中的应用场景:子类重写Object类中toString方法  ......
  • CSS3一些总结
    1.标准流2.浮动3.定位1.relative[相对定位]以当前相对定位的元素原有的位置作为参照物移动指定的距离相对定位的元素移动后,原有的位置仍然会被占用2.absolute[绝对定位]绝对定位的元素移动后,原有的位置不会被占用以其他定位的元素[默认值static不算]作为参照物移......