object-fit 解决图片指定大小被压缩问题
2017-05-23 14:12
309 查看
object-fit 解决图片指定大小被压缩问题
第一次遇到这个属性,是在给video 写 poster的时候,选取的作为poster的img的尺寸有点小,导致video播放器两边有留白。在控制台查看video默认样式的时候看到了这个属性。
chrome中默认是
object-fit:contain,当poster尺寸过小的时候就会如下问题:
注意播放器两边的留白,显然 这不是我们想要的样式,如果能完全覆盖就更好了。尝试按照background-size属性的写法尝试了改写为cover。效果如下:
perfect,可是还有点美中不足。。。不过我们还是先来了解下object-fit这个属性。
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. —MDN
MDN上给的解释,object-fit这个属性指定 可替换元素 在已被设定好的宽高中展示的方式。
也就是说以前我们给img指定宽高,会影响图像本身的比例,导致被压缩拉伸等。现在我们可以通过object-fit来控制这个图像在指定宽高中如何显示的问题(或者可以这样理解,我们指定图片的宽高,就相当于是一个指定大小的div,我们调整图片的object-fit属性,就相当于给这个div调整背景的background-size属性)
一共有五个值
fill | contain | cover | none | scale-down效果可以在这里查看
下面是在项目中应用的场景:
这是我在淘宝头条的文章list上截取的图片。可以看出它的文章配图都是采用div.pic通过内联的background-image来显示配图的。用意 很明显,当从文章提取的图片和文章list的展示块尺寸比例不一致的时候,背景图可通过指定
background-size:cover来避免对图片造成的压缩或者拉伸。
下图是我用
object-fit:fit对结构的一次改写:
这样页面的结构更为清晰,语义化更好,而且对前端绑定数据更为方便。
(这里我们不讨论更深层次的img和背景图的优劣势问题)
另外还有一个object-position和background-position性质差不多,我可以指定显示的位置,来完成上面我说的美中不足的问题~
我们来看下兼容性的问题,可以看出虽然是个草案属性,但是浏览器在移动端支持度还是挺好的。在移动端开发还是可以应用这个属性的。
相关文章推荐
- 图片按指定比例缩放并压缩至指定大小,解决保存图片文件体积过大bug。
- 解决UIImage在压缩时失真问题,压缩图片的大小
- 【问题帖】压缩图片大小至指定Kb以下
- Android Zxing框架扫描解决扫描框大小,图片压缩问题
- AR插入图片只能插入8K大小的问题解决
- WinCE中解决“图片采集及压缩”问题的开发历程
- Javascript按比例压缩图片,解决onload无法读取图片的高度和宽度问题
- toolStrip 困扰的问题|按钮大小不能修改|图片大小不能修改|toolStrip问题解决
- 【CSDN常见问题解答】Web上传图片生成指定大小图片
- 解决Outlook2007中指定字体大小显示却“字体显示忽大忽小”的问题
- iphone 压缩图片到指定的大小
- 图片超过指定大小后等比例压缩图片
- [Android算法] bitmap 将图片压缩到指定的大小
- toolStrip 困扰的问题|按钮大小不能修改|图片大小不能修改|toolStrip问题解决
- ios-->截图、生成指定大小图片以及压缩
- bitmap 将图片压缩到指定的大小
- bitmap 将图片压缩到指定的大小 JAVA
- 将图片缩放成指定大小(压缩方法)
- dedecms中[field:imglink/]图片大小问题解决办法
- Ecstore 默认图片压缩质量差的问题解决方法