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 相关文章推荐
用CSS禁用输入法(CSS3 UI规范)实例解析
Dec 04 HTML / CSS
简单掌握CSS3中resize属性的用法
Apr 01 HTML / CSS
用CSS3打造HTML5的Logo(实现代码)
Jun 16 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
Jul 04 HTML / CSS
HTML5 File接口在web页面上使用文件下载
Feb 27 HTML / CSS
localStorage的过期时间设置的方法详解
Nov 26 HTML / CSS
浅析HTML5中的download属性使用
Mar 13 HTML / CSS
html5 canvas手势解锁源码分享
Jan 07 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
Jun 10 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
Aug 12 HTML / CSS
纯html+css实现奥运五环的示例代码
Aug 02 HTML / CSS
CSS作用域(样式分割)的使用汇总
Nov 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
使用PHP批量生成随机用户名
2008/07/10 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
javascript基本语法
2016/05/31 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
护理实习自我鉴定
2013/12/14 职场文书
高考励志标语
2014/06/05 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
学校党员干部承诺书
2015/05/04 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
详解Python类和对象内容
2021/06/22 Python
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript