object-fit?
知道有这个属性存在,是一个很偶然的机会。有一天,设计部的一个小伙伴给了我一个网址,说很有个性,让我看一下,当发现一个很有意思的效果时,作为一个前端小兵的我当然是第一时间开始审查元素,然后看到了这个从没听说过的属性 object-fit 。
object-fit是什么属性?
MDN上的解释是:
The object-fit CSS property specifies how the contents of a replaced element should be fitted to the box established by its used height and width.
其实我是没看太明白,所以呢,只能求助大神的博客了,以下内容是对他们的博客内容的参考,借此加深自己对这个属性的理解。深入学习了解请点击-->半深入理解CSS3 object-position/object-fit
属性中的object指的是replaced element(替换元素)。
什么是替换元素? (详情-->这里)
其内容不受CSS视觉格式化模型控制的元素,例如image,嵌入的文档(iframe之类)或者applet。img元素的内容通常会被其src属性指定的图像替换掉。替换元素通常有其固有的尺寸:一个固有的宽度,一个固有的高度和一个固有的比率。css模型渲染模型不考虑替换元素内容的渲染,这些替换元素独立展现于CSS。object,video,textarea,input也是替换元素,audio和canvas在某些特定情形下为替换元素。使用css的content属性插入的对象是匿名替换元素。
object-fit属性只针对替换元素有作用,也就是form表单控件,img,video标签。
object-fit属性可以有五种取值。 fill | contain | cover | none | scale-down
1.fill-->替换内容填满整个content-box,不保持原有比例。
2.contain-->操持原尺寸比例。保证替换内容尺寸一定可以在容器中放得下。但可能回留出空白。
3.cover--> 保持原有尺寸比例,保证替换内容尺寸一定大于容器的大小,宽度和高度至少有一个和容器一致。但可能会使替换内容部分区域不可见。
4.none--> 保持原有尺寸比例。同时保持替换内容原始尺寸大小。
5.scale-down-->类似依次设置none或contain,最终呈现的是尺寸较小的那个。
概念理解:
img是个替换元素,如果没有src属性,依然是个替换元素,在浏览器中的解析依然是正确的,图片的src属性指向的图片属于替换内容,替换内容和替换元素是盒子与内容的关系,二者是独立的。在CSS3时代,object-fit控制的永远是替换内容的尺寸表现。不是替换元素img。我们对img设置宽和高为100%时,实际上控制的是img这个元素,这个盒子的尺寸是100%撑满容器。
注意:IE浏览器不支持object-fit属性。
项目中使用:在做一个需要响应式网站的时候,在移动端banner图显需要只显示大图的中心部分,其他部分隐藏。使用obeject-dit属性完美解决这个问题。
object-fit?的更多相关文章
- Java类是如何默认继承Object的?
原:https://juejin.im/post/5ca1e8ade51d454e6a300048 前言 学过Java的人都知道,Object是所有类的父类.但是你有没有这样的疑问,我并没有写exte ...
- [你必须知道的.NET]第二十七回:interface到底继承于object吗?
发布日期:2009.03.05 作者:Anytao © 2009 Anytao.com ,Anytao原创作品,转贴请注明作者和出处. 说在,开篇之前 在.NET世界里,我们常常听到的一句话莫过于“S ...
- Java泛型Object和?区别
在写spark streamming读取kafka latest offset的时候,有一下语句: Map<TopicAndPartition, Object> latestOffsets ...
- Python 为什么要继承 object 类?
自己搬运自己在知乎上的回答,感觉破乎吃枣药丸,哪天挂了这里就是个备份. 链接:https://www.zhihu.com/question/19754936/answer/229327803 2017 ...
- vue android低版本 白屏问题 你是不是用了Object.assign ??
问题描述 在部分比较低版本的手机中,发现apk安装后白屏,但是大部分手机都能安装. 本人在使用android4.4时候,也是安装后打开白屏. 原因: 代码写法不兼容 this.user = Objec ...
- Python2.7版本:定义类时为什么要继承object类?
********此答案摘自知乎,且经过自己实际运行后得出******** 继承 object 类的是新式类,不继承 object 类的是经典类 例子: 新式类: 经典类: B.C 是 A 的子类,D ...
- Vue 的响应式原理中 Object.defineProperty 有什么缺陷?为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?
Object.defineProperty无法监控到数组下标的变化,导致通过数组下标添加元素,不能实时响应: Object.defineProperty只能劫持对象的属性,从而需要对每个对象,每个属性 ...
- 你真的知道typeof null的结果为什么是‘object‘吗?
到目前为止,ECMAScript 标准中定义了8种数据类型,它们分别是Undefined.Null.Number.Boolean.String.Symbol.BigInt.Object. 为了判断变量 ...
- SW加载标准库时出现failed to create Toolboxlibrary object怎么办?
友情提示:Windows+r打开 输入smd 注意操作前要关闭solidworks, 重新打开软件. 下面就可以找到很多标准件了.
- 为什么说对象字面量赋值比new Object()高效?
http://www.cnblogs.com/mushishi/p/5811743.html
随机推荐
- Hibernate的基础入门(一)
一Java三层结构 1 web层:struts框架 2 service层:Spring框架 3 dao层 :hibernate框架 相当于MVC的思想 1 M:模型èhibernate框架 2 V: ...
- [转载] Netty教程
转载自http://blog.csdn.net/kobejayandy/article/details/11493717 先啰嗦两句,如果你还不知道Netty是做什么的能做什么.那可以先简单的搜索了解 ...
- PHP常用的函数与小技巧
密码加密与验证 password_hash - 创建密码的哈希(hash) string password_hash ( string $password , integer $algo [, arr ...
- 如何从零开始对接第三方登录(Java版):QQ登录和微博登录
前言 个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了QQ和微博这2大常用软件的一键登录,总的来说其实都挺简单的,可能会有一点小坑,但不算多,完整记录下来方便后来人快速对接. 后台设 ...
- python 按每行读取文件怎么去掉换行符
python按每行读取文件后,会在每行末尾带上换行符,这样非常不方便后续业务处理逻辑,需要去掉每行的换行符,怎么去掉呢?看下面的案例: >>> a = "hello wor ...
- python 多线程批量传文件
#!/usr/bin/env python #_*_ coding:utf-8 -*-#autho:leiyong#time:2017-06-05#version: 1.3 import parami ...
- C# WPF动点任意移动气泡画法(解决方案使用到数学勾股定理、正弦定理、向量知识)。
许久没写博客了,最近在研究WPF下气泡的画法,研发过程还是比较艰辛的(主要是复习了高中的数学知识,MMP全忘光了),这篇博客主要是提供一个思路给大家参考,如果有大神还有更好的解决方案可以不吝您的言论尽 ...
- css 单行文本居中显示,多行文本左对齐
父级元素 text-align:center; 自级元素 text-align:left; display:inline-block;
- GItCandy版本库搬迁步骤
1.编译GitCandy,源码地址http://git.newlifex.com/NewLife/GitCandy 2.发布网站到文件夹 3.git网站停止运行 4.拷贝发布的网站到服务器目录&quo ...
- 字节、十六进制字符串相互转换(asc2hex、hex2asc)
//================================================================== /** 功能: 将16进制数组转换成asc字符数组(短转长) ...