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 相关文章推荐
css3截图_动力节点Java学院整理
Jul 11 HTML / CSS
CSS3 选择器 伪类选择器介绍
Jan 21 HTML / CSS
在css3中background-clip属性与background-origin属性的用法介绍
Nov 13 HTML / CSS
详解CSS3阴影 box-shadow的使用和技巧总结
Dec 03 HTML / CSS
CSS3 实现图形下落动画效果
Nov 13 HTML / CSS
HTML5中实现拖放效果无须借助javascript
Dec 26 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
Aug 24 HTML / CSS
Html5+CSS3+EL表达式问题小结
Dec 19 HTML / CSS
基于HTML十秒做出淘宝页面
Oct 24 HTML / CSS
新的CSS 伪类函数 :is() 和 :where()示例详解
Aug 05 HTML / CSS
table不让td文字溢出操作方法
Dec 24 HTML / CSS
什么是clearfix (一文搞清楚css清除浮动clearfix)
May 21 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
PHP.MVC的模板标签系统(一)
2006/09/05 PHP
PHP 编程的 5个良好习惯
2009/02/20 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
最短的IE判断代码
2011/03/13 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
Python牛刀小试密码爆破
2011/02/03 Python
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
python判断数字是否是超级素数幂
2018/09/27 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
工程造价专业大学生职业规划范文
2014/03/09 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
php实现自动生成验证码的实例讲解
2021/11/17 PHP
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏