zoukankan      html  css  js  c++  java
  • css 背景 background

    前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

        

      background我们一般用到的的属性有

    • background-attachment:背景(图片)是否随页面滚动;
    • background-origin:背景(图片)的位置的原点(图片位置从哪开始);
    • background-color:背景颜色;
    • background-image:背景图片;
    • background-clip:背景(图片和背景色)的可视区域(有一部分被裁剪掉);
    • background-position:背景(图片)的位置;
    • background-size:背景(图片)大小;
    • background-repeat:是否重复背景图片;

      这些属性可以全部合并成一个缩写格式,background : attachment  origin  color  image  clip  position/size repeat  ;

      background 缩写谨记:

    • 如果同时设置 background-position 和 background-size,那么它们要连着一起写,并用"/"隔开,前面的是 background-position,后面的是 background-size;
    • 如果你只想设置 background-size,不设置 background-position,方法就是写成 0 0 / size ,是两个 0;如果只写了一个 0,那么垂直位置默认为 center。如果两个 0 都不写,那么浏览器就会把 background-size 值当成 background-position 值,然后就没有 background-size 值了。
    • background-clip 默认是 border-box,background-origin 默认是 padding-box;都可设置 border-box | padding-box | content-box;当缩写中只出现一个值时,background-clip 和 background-origin 都会变成这个值;如果设置了两个不同的值,那么前者是 background-origin(位置原点),后者是 background-clip(图片裁剪)。

      背景颜色 background-color 默认是占据 padding 和 border 区域的,不占 margin;

      背景图片 background-image 默认位置是从 padding 开始,不占 border;在 IE6/7,background 没有占据 border;

         

        .wrapper {
          width: 200px;
          height: 80px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #0ff;
          background: #f60;
        }

    background-attachment

      页面滚动时,图片的状态,默认 scroll,跟随页面一起滚动。

    • background-attachment:scroll;  默认值,跟随页面滚动。
    • background-attachment:fixed;  background-position 相对浏览器固定,不随页面滚动。

      首先我们需要了解页面(page)和视口(view port)的概念,视口(view port)是浏览器显示网页的部分,位置固定,不会动。

      当向下滚动页面时,视口(view port)不动,页面向上滚动。看起来像是视口(view port)向下滚动,这是默认值scroll的效果。

      但是当 background-attachment 设置 fixed,页面滚动时,背景要待在它原来的位置(background-position 相对于浏览器),也就是不随元素滚动。

      重点是背景图只出现在元素可见的区域,如果它的元素看不见了,背景图也消失;当我们向上或向下滚动页面时,只要元素还能在视口(view port)看到,哪怕一点点,只有1px,背景图都还会显示。我们可以利用这个属性做出视差滚动的效果。

    background-origin

      背景(图片)的位置的参考区域,可以改变原点(背景图片位置从哪开始计算),这个属性和 background-position 配合使用。

      background-origin 默认为 padding-box,可设置为 border-box | padding-box | content-box。

      仔细看 background-position:0 0; 的位置。

    • 默认 padding-box:
    •   border-box:
    • content-box:
        .wrapper {
          width: 100px;
          height: 100px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #f60;
          background: #0f0 url(images/1.jpg) no-repeat 0 0/100px padding-box padding-box;
          /*clip默认都是border-box;可设置border-box | padding-box | content-box*/
          /*origin默认是padding-box;可设置border-box | padding-box | content-box*/
          /*如果缩写中只出现一个值时,clip和origin都会变成这个值*/
          /*如果设置了两个不同的值,那么前者是origin(位置原点),后者是clip(图片裁剪)*/
          /*仔细看position:0 0 的位置哦*/
        }

    background-color

      有多种方式设置颜色:

    • red,green,....
    • rgba(0,0,0,0.6);最后一个 0.6 是不透明度的意思,数值为0到1之间,0为全透明,1为不透明
    • #ff0033;可以写成 #f03
    • 也可以设置 transparent,透明

    background-image

      background-image:url(images/pic.jpg);  注意路径要写对。

      可以和 background-color 连用,如果图片不重复的话,图片没有占据的地方将被颜色占据。

    多重背景

      css3 中,可以对一个元素应用多个图片作为背景,代码用逗号隔开;第一个出现在元素顶部,后面的按顺序排列;

       

        .wrapper {
          width: 300px;
          height: 200px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #0ff;
          background: url(images/1.jpg) 80% 40%/150px 200px no-repeat, url(images/xiaoxin.gif) 20px bottom/ 100px no-repeat;
          /*一个元素可以设置多个图片同时作为背景,中间用逗号隔开*/
          /*如果同时设置position和size,那么它们要连着一起写,并用"/"隔开,前面的是position,后面的是size*/
          /*如果background-size可以设2个值,前者是宽度,后者是高度;如果只写了一个,那就是宽度值,高度值是等比缩放*/
          background-color: #f60;
          /*这个时候如果还想要背景色,就必须单独设置了*/
        }

    background-clip 和 background-origin

      背景(图片和背景色)的可视区域(有一部分看不见,被裁剪掉了);

      background-clip 默认 是 border-box,可设置 padding-box | content-box;

      background-origin 默认是 padding-box;

    • 默认border-box:
    • padding-box:
    • content-box
        .wrapper {
          width: 100px;
          height: 100px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #f60;
          background: #0f0 url(images/1.jpg) no-repeat 0 0/100px padding-box padding-box;
          /*clip默认都是border-box;可设置border-box | padding-box | content-box*/
          /*origin默认是padding-box;可设置border-box | padding-box | content-box*/
          /*如果缩写中只出现一个值时,clip和origin都会变成这个值*/
          /*如果设置了两个不同的值,那么前者是origin(位置基值),后者是clip(图片裁剪)*/
          /*仔细看position:0 0 的位置哦*/
        }

    background-position

      背景图片的位置,指的是图片左上角相对于原点(元素左上角)的位置

      如果 background-origin 是默认值,那么原点位置是在 padiing 左上角;

      可以设置1或2个值,分别是水平位置和垂直位置,如果只有一个值,第二个值默认为 "center";

    • background-position:0 0 ;  默认值,原点,元素左上角;
    • background-position:30px -50px;  向右和向下时正值,向左和向上是负值
    • background-position:left bottom;  可以设置 left/center/right,top/center/bottom;
    • background-position:60% 10%;  将图片百分比位置的点和元素百分比位置的点对齐;

      

        .wrapper {
          width: 300px;
          height: 200px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #0ff;
          /*如果background-origin是默认值,那么position原点位置是在padiing左上角*/
          background: #f60 url(images/1.jpg) 80% 35px/150px no-repeat;
          /*如果同时设置position和size,那么它们要连着一起写,并用"/"隔开,前面的是position,后面的是size*/
          /*background-position可以设1或2个值,前者是水平位置,后者是垂直位置;如果只写了一个,那就是水平位置,垂直位置默认为center*/
          /*background-position当使用百分比的时候,将图片百分比位置的点和元素百分比位置的点对齐*/
          /*background-size可以设1或2个值,前者是宽度,后者是高度;如果只写了一个,那就是宽度值,高度值是等比缩放*/
        }

    background-size

      背景图片的大小,可以设置:contain | cover | 百分比数值 | 单位数值

    • background-size:单位数值;可以设置1或2个值,前者是宽度,后者是高度;如果只写了一个,那就是宽度值,高度值是等比缩放;

       

        .wrapper {
          width: 300px;
          height: 200px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #0ff;
          /*如果background-origin是默认值,那么position原点位置是在padiing左上角*/
          background: #f60 url(images/1.jpg) 80% 35px/150px no-repeat;
          /*如果同时设置position和size,那么它们要连着一起写,并用"/"隔开,前面的是position,后面的是size*/
          /*background-position可以设1或2个值,前者是水平位置,后者是垂直位置;如果只写了一个,那就是水平位置,垂直位置默认为center*/
          /*background-position当使用百分比的时候,将图片百分比位置的点和元素百分比位置的点对齐*/
          /*background-size可以设1或2个值,前者是宽度,后者是高度;如果只写了一个,那就是宽度值,高度值是等比缩放*/
          /*background-size当使用百分比数值的时候,是基于包含元素的尺寸的*/
        }
    • background-size:百分比数值;是基于包含元素的尺寸的;可以设置1或2个值,前者是宽度,后者是高度;如果只写了一个,那就是宽度值,高度值是等比缩放;

      

        .wrapper {
          width: 300px;
          height: 200px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #0ff;
          /*如果background-origin是默认值,那么position原点位置是在padiing左上角*/
          background: #f60 url(images/1.jpg) 80% 35px/30% 60% no-repeat;
          /*如果同时设置position和size,那么它们要连着一起写,并用"/"隔开,前面的是position,后面的是size*/
          /*background-position可以设1或2个值,前者是水平位置,后者是垂直位置;如果只写了一个,那就是水平位置,垂直位置默认为center*/
          /*background-position当使用百分比的时候,将图片百分比位置的点和元素百分比位置的点对齐*/
          /*background-size可以设1或2个值,前者是宽度,后者是高度;如果只写了一个,那就是宽度值,高度值是等比缩放*/
          /*background-size当使用百分比数值的时候,是基于包含元素的尺寸的*/
        }
    • background-size:contain;背景图等比缩放,将图片完全显示在背景区域内;因此,如果背景图宽高比例和元素宽高比例不一致,那么可能会有一部分背景区域留白;

        注意看边框区域

        

        .wrapper {
          width: 250px;
          height: 200px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #0ff;
          /*如果background-origin是默认值,那么position原点位置是在padiing左上角*/
          background: #f60 url(images/1.jpg) center/contain no-repeat;
          /*如果同时设置position和size,那么它们要连着一起写,并用"/"隔开,前面的是position,后面的是size*/
          /*background-position可以设1或2个值,前者是水平位置,后者是垂直位置;如果只写了一个,那就是水平位置,垂直位置默认为center*/
          /*background-position当使用百分比的时候,将图片百分比位置的点和元素百分比位置的点对齐*/
          /*background-size可以设1或2个值,前者是宽度,后者是高度;如果只写了一个,那就是宽度值,高度值是等比缩放*/
          /*background-size当使用百分比数值的时候,是基于包含元素的尺寸的*/
          /*background-size:contain; 背景图等比缩放,将图片完全显示在背景区域内;因此,如果背景图宽高比例和元素宽高比例不一致,那么可能会有一部分背景区域留白*/
          /*background-size:cover; 背景图等比缩放,铺满整个背景区域,宽度或者高度超过背景区域大小;因此,如果背景图宽高比例和元素宽高比例不一致,那么可能会有一部分不在背景区域内(被剪切掉了)*/
        }
    • background-size:cover;背景图等比缩放,铺满整个背景区域,宽度或者高度超过背景区域大小;因此,如果背景图宽高比例和元素宽高比例不一致,那么可能会有一部分不在背景区域内(被剪切掉了);

       注意看边框区域

      

        .wrapper {
          width: 250px;
          height: 200px;
          margin: 100px;
          padding: 30px;
          border: 10px dashed #0ff;
          /*如果background-origin是默认值,那么position原点位置是在padiing左上角*/
          background: #f60 url(images/1.jpg) center/cover no-repeat;
          /*如果同时设置position和size,那么它们要连着一起写,并用"/"隔开,前面的是position,后面的是size*/
          /*background-position可以设1或2个值,前者是水平位置,后者是垂直位置;如果只写了一个,那就是水平位置,垂直位置默认为center*/
          /*background-position当使用百分比的时候,将图片百分比位置的点和元素百分比位置的点对齐*/
          /*background-size可以设1或2个值,前者是宽度,后者是高度;如果只写了一个,那就是宽度值,高度值是等比缩放*/
          /*background-size当使用百分比数值的时候,是基于包含元素的尺寸的*/
          /*background-size:contain; 背景图等比缩放,将图片完全显示在背景区域内;因此,如果背景图宽高比例和元素宽高比例不一致,那么可能会有一部分背景区域留白*/
          /*background-size:cover; 背景图等比缩放,铺满整个背景区域,宽度或者高度超过背景区域大小;因此,如果背景图宽高比例和元素宽高比例不一致,那么可能会有一部分不在背景区域内(被剪切掉了)*/
        }

    background-repeat

      设置背景图片时,默认把图片铺满整个元素空间。但有时候,我们不需要平铺,只需要图片出现一张,也有时候需要图片只往一个方向平铺;

    • background-repeat:repeat;  默认值,铺满元素空间;
    • background-repeat:no-repeat;  不平铺,图片只出现一张;
    • background-repeat:repeat-x;  水平方向平铺;
    • background-repeat:repeat-y;  垂直方向平铺;
    • background-repeat:inherit;  继承父元素的 background-repeat 属性;
  • 相关阅读:
    如何查看IIS的80端口被占用? 拂晓风起
    配置VSS2005(在局域网内搭建服务器) 拂晓风起
    Log4Net ,.net和SQL Server的完美结合 拂晓风起
    SQL Server简单使用配置 拂晓风起
    ztree图标不显示
    oracle添加同义词
    Struts2作用域和标签库(转)
    java实现链表(转)
    unexpected end of subtree(hql拼写有误,仔细查看hql语句,以及参数值的导入)
    http://www.mianwww.com/html/2012/10/17027.html面试题(经典)
  • 原文地址:https://www.cnblogs.com/sspeng/p/6443541.html
Copyright © 2011-2022 走看看