CSS属性之------background

---恢复内容开始---

今天看了一下<css权威指南>,回想起前几天看的<css 揭秘>,发现background这个属性使用频率很高,并且属性也比较多,于是我决定仔细看一下这个属性,今天写一下background的基本概念和用法。

首先来了解一下background是哪些属性的缩写:

  • background-color
  • background-image
  • background-position
  • background-origin
  • background-clip
  • background-repeat
  • background-size
  • background-attachment

没错是8个属性的缩写,下面,一个一个看看这些属性。

1.background-color

这个属性是规定元素背景色的

1 body {
2     background: #ccc; /* 规定body的背景为#ccc */
3 }

这个属性使用的时候注意点:

  1.和其他属性混用的时候,要放在最后面,作为备用属性

2.background-image

这个属性用于给元素插入背景图片,特别要注意的是,<Gradient>产生的是一个图片,而不是background-color

使用定义:

1 background-image: <image>: [<url> | <linear-gradient> | <radial-gradient>]

html代码如下:

<div id="box"></div>

css代码:

#box {
  display: block;
  width: 200px;
  height: 200px;
  border: 1px solid black;
  background-image: url("background/boats.png"); /* 此处使用url */
}

效果如下:

注意点:

  1. background-image可以同时插入多张图片,使用 “,”(逗号)分开,然后使用background-position来决定各个图片在元素中的位置
  2. 使用background-color时最后后面写上background-color,防止图片意外没有加载,使用background-color作为fallback

  

1 #box {  background-image: url("1.jpg"), url("2.jpg"), url("3.jpg");  background-position: top left, center center, bottom 10px right 10px; /* 后面介绍 */  background-repeat: no-repeat;  background-color: blue; /* as fallback */}

3.background-position

  可以使用的值有:

  1. 使用关键字<keywords>: top, right, bottom, left, center
  2. 使用百分比<percentage>,如30%,50%
  3. 使用<values>,如4em 30px...

   注意点:

    • 初始值 0% 0%,即元素的top left位置
    • 只有一个值时,如background-position: top; 另一个值默认为 center(或 50%),即 background-position:center top;
    • 混合使用关键字,百分比,数值时应当先写水平方向的值,然后写垂直方向的值

      #box{  background-position: right 10px; /* 表示在右边(水平方向),离元素上边界10px(垂直方向) */  
        background-position: 10px right;/* 错误写法 被忽略此属性 */
      }
    • 当使用keywords表示时,书写比较自由

      #box {  background-position: top left; /* 可以不用考虑先写水平还是垂直方向的值 */  background-position: top 30px right 30%; /* 甚至可以使用多个值表示 但不能不能使用center作参考 */
      }
    • 这个值是相对于background-origin设置的区域   

4. background-origin

这个属性是规定背景图片的初始位置,共有3个值

  • border-box
  • padding-box (默认值)
  • content-box

注意点,与background-clip区别

5.background-clip

这个属性规定图片可绘制区域,也有3个值

  • border-box(默认值)
  • padding-box
  • content-box
#box {

  display: block;
  width: 400px;
  height: 400px;
  padding: 50px;
  background-image: url(background/boats.png);
  background-repeat: no-repeat;
  background-origin: padding-box;
  -webkit-background-clip: content-box; /* clip区域比图片起始位置origin小的情况 */
  -moz-background-clip: content-box;
  background-clip: content-box;
  background-color: yellow;

border: 1px solid black;

}

  

可以看到图片只有部分显示出来,因为可绘制区域为content-box(background-clip),而图片要出现的起始位置要在padding-box(background-origin)

6.background-repeat

这个值一看就通俗易懂,是规定是否复制的,有以下几个值:

  • repeat      x,y轴都复制
  • repeat-x
  • repeat-y
  • space       这个值表示在给定轴(axis)上一个图片能够复制多少次,自动给一个常规的间距,x,y方向的间距可以不一样,可以改写background-position属性
  • round       这个值表示复制背景图片时,自动对图片进行缩小或放大,  这个值不能改写background-position属性

示例:

    #box {
        display: block;
        width: 400px;
        height: 400px;
        padding: 50px;
        background-image: url(background/boats.png);
        background-repeat: space; /* round */
        background-color: yellow;
        border: 1px solid black;

    }

  1.space

2.round

7.background-size

这个属性比较有意思,也比较重要

定义:<background-size>: [<length> | <percentage> | auto]{1,2} | cover | contain

注意点:

  1. 初始值(即默认值)为 auto
  2. 百分比<percentage>值的大小是针对background-origin区域,而不是background-clip区域

    解释一下这条:比如background-origin:padding-box, background-clip: border-box;background-size: 25% 50%;表示:  图片宽是元素padding-box的宽度值的25%, 高度是padding-box的50%
  3. 当只写一个auto值时,表示水平和垂直方向都是auto
  4. auto和<length>混合写的时候,如 background-size: auto 30px;

    假设图片固有属性宽高为 200px * 100px (宽高比为2:1)有以下几种情况  1.auto值计算出为 30px*2 = 60px  2.auto值计算失败 则auto自动变为图片默认的宽度值: 200px  3.第1,2步都失败,auto = 100%,这种情况矢量图出现的比较多,如SVG,<Gradient>图片
  5. cover      就是覆盖填充整个绘制区域

    #box {

      display: block;
      width: 400px;
      height: 400px;
      background-image: url(background/boats.png);

      background-size: cover;

      background-color: yellow;
      border: 1px solid black;

    }
     
  6. contain   通过自动缩小或放大把整个图片能够完整的包含进去

    #box {

      display: block;
      width: 40px;
      height: 40px;
      background-image: url(background/boats.png);
      background-repeat: no-repeat;
      background-size: contain;

      background-color: yellow;
      border: 1px solid black;

    }

    
    

8.background-attachment

这个值比较简单,就是将图片在滚动条存在的时候,是固定不动,还是跟一起滚动,两个属性值:

  • scroll (默认值)
  • fixed

  

background综合属性

注意点:

  1. 所有的background子属性都不继承
  2. 书写综合属性时,background-position要写在background-size前面,并用“/”隔开

    #box {  background: url(1.jpg) repeat-y top left / 50% 50% fixed padding-box border-box yellow;}
    
    可以写为 #box {  background-image: url(1.jpg);  background-repeat: repeat-y;  background-position: top left;  background-size: 50% 50%;  background-attachment: fixed;  background-origin: padding-box;  background-clip: border-box;  background-color: yellow;}
  3. background-origin属性要写在background-clip属性前面,如2

最后发张图,下一次一起学习一下linear-gradient和radial-gradient

---恢复内容结束---

时间: 2024-07-28 17:24:07

CSS属性之------background的相关文章

【CSS3】css属性之——background

一.background设置一个元素的背景样式 语法格式:background: color position size repeat origin clip attachment image; 1.background-color:设置元素的背景颜色(默认是透明) .div{ height:200px; width:200px; margin:auto; background-color:#eadc32; background-color:blue; background-color:rgb(

CSS属性选择器

属性选择器 1 <!DOCTYPE html> 2 <html lang="zh-cn"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <link rel="stylesheet" type="text/css" href="./css/属性选择器.css&qu

CSS属性

CSS样式属性 一.字体 1.font-family:Tahoma,Arial,"Hiragino Sans GB";字体,第一种字体不能显示时,用第二种字体 2.font-size:xx-small or 10px字体大小:绝对大小:xx-small.x-small.medium.large.x-large.xx-large.x-large.xx-l相对大小:large smaller 使用数字和度量单位绝对单位:px:显示器像素个数mm.cm.in:毫米 厘米 英寸,使用这类单位,

Day49:CSS属性操作(文本、背景、边框、列表、display、边距)

一.CSS属性操作 1.CSS text 文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 - 如:  red p { color: rebeccapurple; } 水平对齐方式 text-align 属性规定元素中的文本的水平对齐方式. left       把文本排列到左边.默认值:由浏览器决定. right     把文本排列到右边. center 把文

jQuery修改操作css属性实现方法

在jquery中我们要动态的修改css属性我们只要使用css()方法就可以实现了,下面我来给各位同学详细介绍介绍. css()方法在使用上具有多样性,我们先来了解css()方法基本知识. css() 方法设置或返回被选元素的一个或多个样式属性. 返回 CSS 属性如需返回指定的 CSS 属性的值,请使用如下语法: css("propertyname");下面的例子将返回首个匹配元素的 background-color 值: 实例 $("p").css("b

css 中的background:transparent到底是什么意思有什么作用

有时我在看css时,看到有的css属性定义为background:transparent.意思就是背景透明.实际上background默认的颜色就是透明的属性.所以写和不写都是一样的 有段时间没写文章了,一直在学校,虽然带着电脑,但是不能上网啊!最近在用javascript写一个网页版的操作系统,写好了一定发上来,写的过程中遇到很多问题,许多都是细节方面的,很麻烦,不过自己一直在努力解决,也是对自己的一种提高吧.下面我来说一下我最近遇到的一个问题. 大家知道,你用createelement新建一

十个实用但IE不支持的CSS属性

对IE浏览器尤其是IE6的抱怨基本已进入麻痹状态,偶尔甚至产生非常消极的想法:这个世界只有一个浏览器就好了,哪怕这唯一的浏览器就是IE6.当然,这样的想法是非常病态的,马上打消.本文里面,介绍了10个很实但IE却不支持的CSS属性,列出这些属性并不是为了数落IE(数落也没用),而是你了解了哪些CSS属性是IE不支持的,就更有针对性的去编写CSS和Hack了. 1. Outline 在调试CSS问题的时候,我常常在指定元素上添加border来精确的查看该元素会发生什么并帮助确定问题的来源.这常常是

javascript操作html元素CSS属性

下面先记录一下JS控制CSS所使用的方法. 1.使用javascript更改某个css class的属性... <style type="text/css"> .orig { display: none; } </style> 你想要改变把他的display属性由none改为inline. 解决办法: 在IE里: document.styleSheets[0].rules[0].style.display = "inline"; 在firef

CSS属性定义 文本修饰 边框效果 背景修饰

一.CSS属性定义1.css颜色表示方法[重点]rgb(红绿蓝3个颜色通道 强度值为0-255)rgb(0,0,0)rgba(alpha a是透明度 值为0-1)rgba(123,123,123,0) hslhsla(h:色相,色环上(ppt78页)的角度值,0-360 s:饱和度,0-100% l:明度,0-100% a:不透明度,0-1之间的小数)color:hsla(30,100%,50%,0.8); 十六进制(一般格式为#ffffff)(字母范围从A-F,数字从0-9 ) opacity