以前笔者在css盒模型以及如何计算盒子的宽度一文中提到过盒模型可以看成由 元素外边距(margin)、元素边框(border)、元素内边距(padding)和元素内容(content) 4部分组成,不过这只是从2D的视角来看盒模型的组成,而今天笔者将阐述如何从3D的视角看待盒模型的组成。

background(背景)

以前笔者在css盒模型以及如何计算盒子的宽度一文中提到过盒模型可以看成由 元素外边距(margin)、元素边框(border)、元素内边距(padding)和元素内容(content) 4部分组成,不过这只是从2D的视角来看盒模型的组成,而今天笔者将阐述如何从3D的视角看待盒模型的组成。

从2D视角看盒模型示意图:

从3D视角看盒模型示意图:

从3D视角看盒模型可以发现多了两个属性:background-image和background-color,而这两个属性都可以归纳到元素的background中,同时在元素的background中还有6个属性[1]可以影响到background-image和background-color的绘制情况,这篇博文主要是用来介绍background-image和background-color还有其余6个属性以及它们是怎样影响到浏览器对元素盒子background的绘制的。

background-color(背景颜色)

背景颜色是背景中最常用的属性,它支持的值类型有:

类型示例
颜色名称red, white, black, transparent
16进制颜色码#FF0000, #FFF, #000, #00000000
rgb颜色值rgb(255, 0, 0), rgb(255, 255, 255), rgb(0, 0, 0)
rgba颜色值rgba(0, 0, 0, 0)
hsla颜色值hsla(0,0%,0%,0)

关于rgba颜色值和hsla颜色值,笔者在有趣的css—隐藏元素的7种思路中写过详细的使用示例,感兴趣的读者可以看看。

background-color(背景颜色)示例html代码:

background-color(背景颜色)示例

background-color(背景颜色)示例效果图:

background-image(背景图片)

背景图片的书写示例:
background-image: url(path);

path代表存放图片的路径,它可以是绝对路径,也可以是相对路径。

背景图片在z轴上比背景颜色更靠近用户,背景图片在完全不透明的情况下,会完全遮盖住背景颜色。

background-image(背景图片)示例html代码:

background-image(背景图片)示例

background-image(背景图片)示例效果图:

background-size(背景图片尺寸大小)

背景图片尺寸大小支持的值类型有:

类型示例含义
百分比20% 30%背景图片占据背景区宽度的百分之20,高度的百分之30
像素200px 300px背景图片的宽度为200像素,高度为300像素
覆盖cover保持图片宽高比进行拉伸,使其完全占据背景区
包含contain保持图片宽高比进行缩放,使其恰好适合背景区

background-size(背景图片尺寸大小)示例html代码:

background-size(背景图片尺寸大小)示例

background-size(背景图片尺寸大小)示例效果图:

background-repeat(背景图片重复方式)

背景图片重复方式支持的值以及含义:

含义
no-repeat背景图片不重复
repeat默认值,背景图片在垂直和水平方向都重复
repeat-x背景图片在水平方向重复
repeat-y背景图片在垂直方向重复

background-repeat(背景图片重复方式)示例html代码:

background-repeat(背景图片重复方式)示例

background-repeat(背景图片重复方式)示例效果图:

background-position(背景图片位置)

background-position总共有5个属性,分别是top、right、bottom、left、center,这个5个属性可以单独使用,也可以两两使用。

单独使用时,默认第二个参数为center,两两使用时背景图片占据位置如下图:


background-position(背景图片位置)示例html代码:

background-position(背景图片位置)示例

background-position(背景图片位置)示例效果图:

background-attachment(背景图片是否固定)

背景图片是否固定支持的值以及含义:

含义
scroll默认值,背景图片不固定,在视窗内滚动元素时,背景图片跟随元素一起滚动
fixed背景图片固定,在视窗内滚动元素时,背景图片不跟随元素一起滚动

背景图片不固定示例html代码:

背景图片不固定示例1  Fatman2  Fatman3  Fatman4  Fatman5  Fatman6  Fatman7  Fatman8  Fatman

背景图片不固定示例效果图:

背景图片固定示例html代码:

背景图片固定示例1  Fatman2  Fatman3  Fatman4  Fatman5  Fatman6  Fatman7  Fatman8  Fatman

背景图片固定示例效果图:

background-clip(背景裁剪)

含义
border-box背景(图片+颜色)占据盒模型的 border+padding+content 3个区域
padding-box背景(图片+颜色)占据盒模型的 padding+content 2个区域
content-box背景(图片+颜色)占据盒模型的 content 1个区域

注:设置background-clip:border-box时需要让元素边框完全透明或部分透明,否则边框样式会完全遮盖住background-clip:border-box的效果。

background-clip(背景裁剪)示例html代码:

background-clip(背景裁剪)示例

background-clip(背景裁剪)示例效果图:

background-origin(背景图片定位参考系)

笔者在css详解position五种属性用法及其含义中提到过相对定位参考系是其在常规流中的位置,绝对定位的参考系是离其最近的定位祖先元素,固定定位的参考系是视窗。
background-position的定位参考系就与background-origin有关:

含义
border-box背景图片相对于元素border区域进行定位
padding-box背景图片相对于元素padding区域进行定位
content-box背景图片相对于元素content区域进行定位

注:background-clip控制背景(图片+颜色)裁剪的区域,是将背景(图片+颜色)根据设置的属性值裁剪掉;而background-origin控制背景(图片)定位时使用的参考系,它在不同属性值切换下影响的表现效果是背景图片随着属性值改动带来的背景(图片)扩大或缩放。

background-origin(背景图片定位参考系)示例html代码:

background-origin(背景图片定位参考系)示例

background-origin(背景图片定位参考系)示例效果图:

尾言

笔者才疏学浅,慌忙之下难免有遗漏或是疏忽,如有错误之处,还望各位看官不吝赐教,笔者在此感谢。


©著作权归作者所有:来自51CTO博客作者wx60877cc7b61d6的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 容器 - Web服务示例(6)
  2. 25个iptables常用示例
  3. 【DB笔试面试467】Oracle中行列互换有哪些方法?
  4. 【死磕ibatis】SqlMapClient 基本操作示例
  5. 第12部分- Linux ARM汇编 控制指令
  6. LeetCode go
  7. Java基础编程练习10:求1!+2!+3!+…+n!, n<=15。
  8. Token Bucket在QoS中入门级介绍python示例
  9. Java基础编程练习5:求1~100之间的偶数和?

随机推荐

  1. 设置组件圆角
  2. Android(安卓)Sliding Menu
  3. Android android:exported = true 用法详
  4. Android存储-SharedPreferences
  5. Android系统启动流程 -4
  6. Android中设置控件可见与不可见详解
  7. Multitasking the Android(安卓)Way
  8. Android(安卓)support v7 TabLayout 自定
  9. Android startservice & bindservice的区
  10. Android的四大天王