CSS3属性background-size使用指南


Posted in HTML / CSS onDecember 09, 2014

以下内容摘自MDN。因时间原因没能好好整理学习,先引用下来,有时间时再细细整理。

background-size 设置背景图片大小。

复制代码
代码如下:

/* 关键字 */
background-size: cover
background-size: contain
/* 一个值: 这个值指定图片的宽度,图片的高度隐式的为auto */
background-size: 50%
background-size: 3em
background-size: 12px
background-size: auto
/* 两个值: 第一个值指定图片的宽度,第二个值指定图片的高度 */
background-size: 50% auto
background-size: 3em 25%
background-size: auto 6px
background-size: auto auto
/* 逗号分隔的多个值:设置多重背景 */
background-size: auto, auto /* 不同于background-size: auto auto */
background-size: 50%, 25%, 25%
background-size: 6px, auto, contain
background-size: inherit

Values
<length>
<length> 值,指定背景图片大小,不能为负值。
<percentage>
<percentage> 值,指定背景图片相对背景区(background positioning area)的百分比。背景区由background-origin设置,默认为盒模型的内容区与内边距,也可设置为只有内容区,或者还包括边框。如果attachment 为fixed,背景区为浏览器可视区(即视口),不包括滚动条。不能为负值。
auto
以背景图片的比例缩放背景图片。
cover
缩放背景图片以完全覆盖背景区,可能背景图片部分看不见。
contain
缩放背景图片以完全装入背景区,可能背景区部分空白。
位图一定有固有尺寸与固有比例,矢量图可能两者都有,也可能只有一个。渐变视为只有固有尺寸或者只有固有比例的图片。

背景图片大小计算

如果指定了 background-size 的两个值并且不是auto:
背景图片按指定大小渲染。
contain 或 cover:
保留固有比例,最大的包含或覆盖背景区。如果图像没有固有比例,则按背景区大小。
auto 或 auto auto:
图像如果有两个长度,则按这个尺寸。如果没有固有尺寸与固有比例,则按背景区的大小。如果没有固有尺寸但是有固有比例, 效果同 contain。如果有一个长度与比例,则由此长度与比例计算大小。如果有一个长度但是没有比例,则使用此长度与背景区相应的长度。
一个为 auto 另一个不是auto:
如果图像有固有比例,则指定的长度使用指定值,未指定的长度由指定值与固有比例计算。如果图像没有固有比例,则指定的长度使用指定值,未指定的长度使用图像相应的固有长度,若没有固有长度,则使用背景区相应的长度。
注意,对于没有固有尺寸或固有比例的矢量图不是所有的浏览器都支持。特别注意测试Firefox 7- 与Firefox 8+,以确定不同之处能否接受。

Examples
background-size: cover 演示 与  background-size: contain 演示 在新窗口打开,这样你可以看到当背景区大小变化时 contain 与 cover 是怎样的。 系列演示:background-size 及其与background-*属性的关联  很好的说明了单独使用 background-size 及与其它属性共同使用。

Notes
如果用渐变作为背景并且对它使用了background-size ,最好不要只用一个auto, 或者只指定一个宽度值 (例如 background-size: 50%)。对这两种情况 Firefox 8有所改变, 并且目前各浏览器表现不一致,不是全部浏览器都完全支持 CSS3 background-size 规范 与 CSS3 Image Values gradient 规范。

复制代码
代码如下:

.bar {
width: 50px; height: 100px;
background-image: gradient(...);
/* 不推荐 */
background-size: 25px;
background-size: 50%;
background-size: auto 50px;
background-size: auto 50%;
/* 可行 */
background-size: 25px 50px;
background-size: 50% 50%;
}

特别不推荐对渐变px与auto一起用, 因为Firefox 8之前不能重复渲染,并且对于没有实现Firefox 8渲染特性的浏览器,不知道指定了背景的元素的确切大小。

IE9及以上才支持。

HTML / CSS 相关文章推荐
IE滤镜与CSS3效果(详细整理分享)
Jan 25 HTML / CSS
CSS3媒体查询(Media Queries)介绍
Sep 12 HTML / CSS
使用CSS3来实现滚动视差效果的教程
Aug 24 HTML / CSS
使用CSS3配合IE滤镜实现渐变和投影的效果
Sep 06 HTML / CSS
基于css3 animate制作绚丽的动画效果
Nov 24 HTML / CSS
基于ccs3的timeline时间线实现方法
Apr 30 HTML / CSS
HTML页面中添加Canvas标签示例
Jan 01 HTML / CSS
详解html5 shiv.js和respond.min.js
Jan 24 HTML / CSS
canvas裁剪clip()函数的具体使用
Mar 01 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
Jan 03 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
Dec 08 HTML / CSS
使用CSS实现百叶窗效果示例代码
May 07 HTML / CSS
CSS3属性box-shadow使用指南
Dec 09 #HTML / CSS
CSS3属性box-sizing使用指南
Dec 09 #HTML / CSS
使用css3实现的tab选项卡代码分享
Dec 09 #HTML / CSS
使用css3实现的windows8开机加载动画
Dec 09 #HTML / CSS
css3的transform中scale缩放详解
Dec 08 #HTML / CSS
css3实例教程 一款纯css3实现的发光屏幕旋转特效
Dec 07 #HTML / CSS
css3的transform造成z-index无效解决方案
Dec 04 #HTML / CSS
You might like
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
session 加入redis的实现代码
2016/07/15 PHP
降低PHP Redis内存占用
2017/03/23 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
python局部赋值的规则
2013/03/07 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
python实现FTP服务器服务的方法
2017/04/11 Python
python文件名和文件路径操作实例
2017/09/29 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
化工专业大学生职业生涯规划书
2014/01/14 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
计划生育责任书
2015/05/09 职场文书
工作收入证明模板
2015/06/12 职场文书
房产遗嘱范本
2015/08/06 职场文书
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫