CSS 背景

w3school 在线教程

## CSS 基础教程

- CSS 教程
- CSS 简介
- CSS 基础语法
- CSS 高级语法
- CSS 派生选择器
- CSS id 选择器
- CSS 类选择器
- CSS 属性选择器
- CSS 创建

## CSS 样式

- CSS 背景
- CSS 文本
- CSS 字体
- CSS 链接
- CSS 列表
- CSS 表格
- CSS 轮廓

## CSS 框模型

- CSS 框模型概述
- CSS 内边距
- CSS 边框
- CSS 外边距
- CSS 外边距合并

## CSS 定位

- CSS 定位概述
- CSS 相对定位
- CSS 绝对定位
- CSS 浮动

## CSS 选择器

- CSS 元素选择器
- CSS 选择器分组
- CSS 类选择器详解
- CSS ID 选择器详解
- CSS 属性选择器详解
- CSS 后代选择器
- CSS 子元素选择器
- CSS 相邻兄弟选择器
- CSS 伪类
- CSS 伪元素

## CSS 高级

- CSS 对齐
- CSS 尺寸
- CSS 分类
- CSS 导航栏
- CSS 图片库
- CSS 图片透明
- CSS 媒介类型
- CSS 注意事项
- CSS 总结

## CSS 实例

- CSS 实例

## CSS 测验

- CSS 测验

## CSS 参考手册

- CSS 参考手册
- CSS 选择器
- CSS 听觉参考手册
- CSS 网络安全字体
- CSS 单位
- CSS 颜色
- CSS 颜色值
- CSS 颜色名
- CSS 颜色十六进制

## 建站手册

- 网站构建
- 万维网联盟 (W3C)
- 浏览器信息
- 网站品质
- 语义网
- 职业规划
- 网站主机

## 关于 W3School

## 帮助 W3School

## 广告刊例

# CSS 背景

- CSS 创建
- CSS 文本

CSS 允许应用纯色作为背景，也允许使用背景图像创建相当复杂的效果。

CSS 在这方面的能力远远在 HTML 之上。

## 背景色

可以使用 background-color 属性为元素设置背景色。这个属性接受任何合法的颜色值。

这条规则把元素的背景设置为灰色：

    p {background-color: gray;}

如果您希望背景色从元素中的文本向外少有延伸，只需增加一些内边距：

    p {background-color: gray; padding: 20px;}

如需查看本例的效果，可以亲自试一试！

可以为所有元素设置背景色，这包括 body 一直到 em 和 a 等行内元素。

background-color 不能继承，其默认值是 transparent。transparent 有“透明”之意。也就是说，如果一个元素没有指定背景色，那么背景就是透明的，这样其祖先元素的背景才能可见。

## 背景图像

要把图像放入背景，需要使用 background-image 属性。background-image 属性的默认值是 none，表示背景上没有放置任何图像。

如果需要设置一个背景图像，必须为这个属性设置一个 URL 值：

    body {background-image: url(/i/eg_bg_04.gif);}

大多数背景都应用到 body 元素，不过并不仅限于此。

下面例子为一个段落应用了一个背景，而不会对文档的其他部分应用背景：

    p.flower {background-image: url(/i/eg_bg_03.gif);}

您甚至可以为行内元素设置背景图像，下面的例子为一个链接设置了背景图像：

    a.radio {background-image: url(/i/eg_bg_07.gif);}

如需查看上述例子的效果，可以亲自试一试！

理论上讲，甚至可以向 textareas 和 select 等替换元素的背景应用图像，不过并不是所有用户代理都能很好地处理这种情况。

另外还要补充一点，background-image 也不能继承。事实上，所有背景属性都不能继承。

## 背景重复

如果需要在页面上对背景图像进行平铺，可以使用 background-repeat 属性。

属性值 repeat 导致图像在水平垂直方向上都平铺，就像以往背景图像的通常做法一样。repeat-x 和 repeat-y 分别导致图像只在水平或垂直方向上重复，no-repeat 则不允许图像在任何方向上平铺。

默认地，背景图像将从一个元素的左上角开始。请看下面的例子：

    body
      {
      background-image: url(/i/eg_bg_03.gif);
      background-repeat: repeat-y;
      }

如需查看上例的效果，可以亲自试一试。

## 背景定位

可以利用 background-position 属性改变图像在背景中的位置。

下面的例子在 body 元素中将一个背景图像居中放置：

    body
      {
        background-image:url('/i/eg_bg_03.gif');
        background-repeat:no-repeat;
        background-position:center;
      }

为 background-position 属性提供值有很多方法。首先，可以使用一些关键字：top、bottom、left、right 和 center。通常，这些关键字会成对出现，不过也不总是这样。还可以使用长度值，如 100px 或 5cm，最后也可以使用百分数值。不同类型的值对于背景图像的放置稍有差异。

### 关键字

图像放置关键字最容易理解，其作用如其名称所表明的。例如，top right 使图像放置在元素内边距区的右上角。

根据规范，位置关键字可以按任何顺序出现，只要保证不超过两个关键字 - 一个对应水平方向，另一个对应垂直方向。

如果只出现一个关键字，则认为另一个关键字是 center。

所以，如果希望每个段落的中部上方出现一个图像，只需声明如下：

    p
      {
        background-image:url('bgimg.gif');
        background-repeat:no-repeat;
        background-position:top;
      }

下面是等价的位置关键字：

单一关键字 | 等价的关键字
--- | ---
center | center center
top | top center 或 center top
bottom | bottom center 或 center bottom
right | right center 或 center right
left | left center 或 center left

### 百分数值

百分数值的表现方式更为复杂。假设你希望用百分数值将图像在其元素中居中，这很容易：

    body
      {
        background-image:url('/i/eg_bg_03.gif');
        background-repeat:no-repeat;
        background-position:50% 50%;
      }

这会导致图像适当放置，其中心与其元素的中心对齐。换句话说，百分数值同时应用于元素和图像。也就是说，图像中描述为 50% 50% 的点（中心点）与元素中描述为 50% 50% 的点（中心点）对齐。

如果图像位于 0% 0%，其左上角将放在元素内边距区的左上角。如果图像位置是 100% 100%，会使图像的右下角放在右边距的右下角。

因此，如果你想把一个图像放在水平方向 2/3、垂直方向 1/3 处，可以这样声明：

    body
      {
        background-image:url('/i/eg_bg_03.gif');
        background-repeat:no-repeat;
        background-position:66% 33%;
      }

如果只提供一个百分数值，所提供的这个值将用作水平值，垂直值将假设为 50%。这一点与关键字类似。

background-position 的默认值是 0% 0%，在功能上相当于 top left。这就解释了背景图像为什么总是从元素内边距区的左上角开始平铺，除非您设置了不同的位置值。

### 长度值

长度值解释的是元素内边距区左上角的偏移。偏移点是图像的左上角。

比如，如果设置值为 50px 100px，图像的左上角将在元素内边距区左上角向右 50 像素、向下 100 像素的位置上：

    body
      {
        background-image:url('/i/eg_bg_03.gif');
        background-repeat:no-repeat;
        background-position:50px 100px;
      }

注意，这一点与百分数值不同，因为偏移只是从一个左上角到另一个左上角。也就是说，图像的左上角与 background-position 声明中的指定的点对齐。

## 背景关联

如果文档比较长，那么当文档向下滚动时，背景图像也会随之滚动。当文档滚动到超过图像的位置时，图像就会消失。

您可以通过 background-attachment 属性防止这种滚动。通过这个属性，可以声明图像相对于可视区是固定的（fixed），因此不会受到滚动的影响：

    body
      {
      background-image:url(/i/eg_bg_02.gif);
      background-repeat:no-repeat;
      background-attachment:fixed
      }

如需查看上例的效果，可以亲自试一试。

background-attachment 属性的默认值是 scroll，也就是说，在默认的情况下，背景会随文档滚动。

## CSS 背景实例

设置背景颜色
  本例演示如何为元素设置背景颜色。
设置文本的背景颜色
  本例颜色如何设置部分文本的背景颜色。
将图像设置为背景
  本例演示如何将图像设置为背景。
将图像设置为背景 2
  本例演示如何为多个元素同时设置背景图像。
如何重复背景图像
  本例演示如何重复背景图像。
如何在垂直方向重复背景图像
  本例演示如何垂直地重复背景图像。
如何在水平方向重复背景图像
  本例演示如何水平地重复背景图像。
如何仅显示一次背景图像
  本例演示如何仅显示一次背景图像。
如何放置背景图像
  本例演示如何在页面上放置背景图像。
如何使用%来定位背景图像
  本例演示如何使用百分比来在页面上定位背景图像。
如何使用像素来定位背景图像
  本例演示如何使用像素来在页面上定位背景图像。
如何设置固定的背景图像
  本例演示如何设置固定的背景图像。图像不会随着页面的其他部分滚动。
所有背景属性在一个声明之中
  本例演示如何使用简写属性来将所有背景属性设置在一个声明之中。

## CSS 背景属性

属性 | 描述
--- | ---
background | 简写属性，作用是将背景属性设置在一个声明中。
background-attachment | 背景图像是否固定或者随着页面的其余部分滚动。
background-color | 设置元素的背景颜色。
background-image | 把图像设置为背景。
background-position | 设置背景图像的起始位置。
background-repeat | 设置背景图像是否及如何重复。

- CSS 创建
- CSS 文本