羽扇轻摇

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  CSS 允许应用纯色作为背景,也允许使用背景图像创建相当复杂的效果.CSS 在这方面的能力远远在 HTML 之上.

  背景色

  可以使用 background-color 属性为元素设置背景色.这个属性接受任何合法的颜色值.
  可以为所有元素设置背景色,这包括 body 一直到 em 和 a 等行内元素.
  background-color 不能继承,其默认值是 transparent.transparent 有“透明”之意.
  也就是说,如果一个元素没有指定背景色,那么背景就是透明的,这样其祖先元素的背景才能可见.

  比如:p {background-color: gray;}
  为P元素指定灰色背景,当然也可以指定其他的属性.

  背景图像

  要把图像放入背景,需要使用 background-image 属性.background-image 属性的默认值是 none,表示背景上没有放置任何图像.
  如果需要设置一个背景图像,必须为这个属性设置一个 URL 值:

  body {background-image: url("bg.gif");}

  大多数背景都应用到 body 元素,不过并不仅限于此.下面例子为一个段落应用了一个背景,而不会对文档的其他部分应用背景:

  p.flower {background-image:url("bg.gif");}

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

  a.radio {background-image:url("bg.gif");}

  理论上讲,甚至可以向 textareas 和 select 等替换元素的背景应用图像,不过并不是所有用户代理都能很好地处理这种情况.
  另外还要补充一点,background-image 也不能继承.事实上,所有背景属性都不能继承.


  背景重复

  如果需要在页面上对背景图像进行平铺,可以使用 background-repeat 属性.
  属性值 repeat 导致图像在水平垂直方向上都平铺,就像以往背景图像的通常做法一样.
  repeat-x 和 repeat-y 分别导致图像只在水平或垂直方向上重复,no-repeat 则不允许图像在任何方向上平铺.
  默认地,背景图像将从一个元素的左上角开始.请看下面的例子:

  body
    {
    background-image: url("bg.gif");
    background-repeat: repeat-y;
    }

  背景定位

  可以利用 background-position 属性改变图像在背景中的位置.下面的例子在 body 元素中将一个背景图像居中放置:
  body
    {
      background-image:url("bg.gif");
      background-repeat:no-repeat;
      background-position:center;
    }

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

  关键字

  图像放置关键字最容易理解,其作用如其名称所表明的.例如,top right 使图像放置在元素内边距区的右上角.
  根据规范,位置关键字可以按任何顺序出现,只要保证不超过两个关键字 - 一个对应水平方向,另一个对象垂直方向.
  如果只出现一个关键字,则认为另一个关键字是 center.
  所以,如果希望每个段落的中部上方出现一个图像,只需声明如下:

  p
    {
      background-image:url("bg.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("bg.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("bg.gif");
      background-repeat:no-repeat;
      background-position:66% 33%;
    }

  如果只提供一个百分数值,所提供的这个值将用作水平值,垂直值将假设为 50%.这一点与关键字类似.
  background-position 的默认值是 0% 0%,在功能上相当于 top left.这就解释了背景图像为什么总是从元素内边距区的左上角开始平铺,除非您设置了不同的位置值.

  长度值

  长度值解释的是元素内边距区左上角的偏移.偏移点是图像的左上角.
  比如,如果设置值为 50px 100px,图像的左上角将在元素内边距区左上角向右 50 像素、向下 100 像素的位置上:
  body
    {
      background-image:url("bg.gif");
      background-repeat:no-repeat;
      background-position:50px 100px;
    }

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


  背景关联

  如果文档比较长,那么当文档向下滚动时,背景图像也会随之滚动.当文档滚动到超过图像的位置时,图像就会消失.
  您可以通过 background-attachment 属性防止这种滚动.通过这个属性,可以声明图像相对于可视区是固定的(fixed),因此不会受到滚动的影响:

  body
    {
    background-image:url("bg.gif");
    background-repeat:no-repeat;
    background-attachment:fixed
    }

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

posted on 2012-11-22 20:05  羽扇轻摇  阅读(169)  评论(0编辑  收藏  举报