codecamp

CSS Backgrounds (背景)

CSS 背景


CSS 背景属性用于定义 HTML 元素的背景。

CSS 属性定义背景效果:

  • background-color
  • background-image
  • background-repeat
  • background-attachment
  • background-position

背景颜色

background-color 属性定义了元素的背景颜色。

页面的背景颜色使用在 body 的选择器中:

实例

body {background-color:#b0c4de;}

尝试一下 »

CSS 中,颜色值通常以以下方式定义:

  • 十六进制 - 如:"#ff0000"
  • RGB - 如:"rgb(255,0,0)"
  • 颜色名称 - 如:"red"

以下实例中, h1, p, 和 div元素拥有不同的背景颜色:

实例

h1 {background-color:#6495ed;}
p {background-color:#e0ffff;}
div {background-color:#b0c4de;}

尝试一下 »

提示:你可以为所有元素设置背景色,包括 body 一直到 ema 等行内元素。

提示:background-color 不能继承,其默认值是 transparent。如果一个元素没有指定背景色,那么背景就是透明的,这样其父元素的背景才可见。


背景图像

background-image 属性描述了元素的背景图像.

默认情况下,背景图像进行平铺重复显示,以覆盖整个元素实体。

页面背景图片设置实例:

实例

body {background-image:url('paper.gif');}

尝试一下 »

下面是一个例子是一个糟糕的文字和背景图像组合。文本可读性差:

实例

body {background-image:url('bgdesert.jpg');}

尝试一下 »


背景图像 - 水平或垂直平铺

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

默认情况下 background-image 属性会在页面的水平或者垂直方向平铺。

一些图像如果在水平方向与垂直方向平铺,这样看起来很不协调,如下所示: 

实例

body
{background-image:url('gradient2.png'); }

尝试一下 »

如果图像只在水平方向平铺 (repeat-x) , 页面背景会更好些:

实例

body
{background-image:url('gradient2.png');
background-repeat:repeat-x;}

尝试一下 »


背景图像- 设置定位与不平铺

Remark 让背景图像不影响文本的排版

如果你不想让图像平铺,你可以使用 background-repeat 属性:

实例

body
{background-image:url('img_tree.png');
background-repeat:no-repeat;}

尝试一下 »

以上实例中,背景图像与文本显示在同一个位置,为了让页面排版更加合理,不影响文本的阅读,我们可以改变图像的位置。

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

实例

body
{background-image:url('img_tree.png');
background-repeat:no-repeat;
background-position:right top;}

尝试一下 »

提示:background-position 属性提供值有很多方法。首先,可以使用一些关键字:topbottomleftrightcenter;其次,可以使用长度值,如 100px 或 5cm;最后也可以使用百分数值。不同类型的值对于背景图像的放置稍有差异。

关键字

图像放置关键字最容易理解的作用就像其名字的意义。例如,top left 使图像放置在元素内边距区的左上角。

只要保证不超过两个关键字:一个对应水平方向,另一个对应垂直方向,那么你可以设置位置关键字以任何顺序出现。

如果只有一个关键字,则会默认另一个关键字为 center

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

p        

{background-image:url('img_tree.png');        

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('img_tree.png');  

background-repeat:no-repeat;    

background-position:50% 50%;}

这会导致图像适当放置,其中心与其元素的中心对齐。

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

body      

{background-image:url('img_tree.png');   

background-repeat:no-repeat;   

background-position:66% 33%;}

长度值

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

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

body

{background-image:url('img_tree.png');

background-repeat:no-repeat;

background-position:50px 100px;}

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


背景- 简写属性

在以上实例中我们可以看到页面的背景颜色通过了很多的属性来控制。

为了简化这些属性的代码,我们可以将这些属性合并在同一个属性中.

背景颜色的简写属性为 "background":

实例

body {background:#ffffff url('img_tree.png') no-repeat right top;}

尝试一下 »

当使用简写属性时,属性值的顺序为::

  • background-color
  • background-image
  • background-repeat
  • background-attachment
  • background-position

以上属性无需全部使用,你可以按照页面的实际需要使用.

这个实例使用了先前介绍的 CSS,你可以查看相应实例: CSS 实例


Examples

更多实例

如何设置固定的背景图像
本例演示如何设置固定的背景图像。图像不会随着页面的其他部分滚动。


CSS 背景属性

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


CSS 创建
CSS Text(文本)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

CSS 相关教程

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }