美文网首页Python知识锦集
Python HTML和CSS 10:background属性

Python HTML和CSS 10:background属性

作者: IIronMan | 来源:发表于2019-03-01 15:31 被阅读11次

总体内容
1、background属性的解释
2、具体的举例

一、background属性的解释:background属性是css中应用比较多,且比较重要的一个属性,它是负责给盒子设置背景图片和背景颜色的,background是一个复合属性,它可以分解成如下几个设置项:

  • 1.1、background-color 设置背景颜色

  • 1.2、background-image 设置背景图片地址

    设置背景图片地址
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>background属性</title>
        <style type="text/css">
             .box1{
                  width: 200px;
                  height: 200px;
                  border: 1px solid #000;
                  margin: 50px auto 0;
                  background-color: yellow;
                  background-image: url("images/bg.jpg");
              }
         </style>
    </head>
    <body>
         <div class="box1"></div>
    </body>
    </html>
    

    默认设置一个图片地址,图片会从盒子的左上角开始将盒子铺满。

  • 1.3、background-repeat 设置背景图片如何重复平铺,推荐一篇 background-repeat 相关播客

    • (1)、no-repeat:背景不重复,背景和盒子左上角对齐,盒子其他部分显示背景颜色


      no-repeat:背景不重复,背景和盒子左上角对齐
      .box1{
           width: 200px;
           height: 200px;
           border: 1px solid #000;
           margin: 50px auto 0;
           background-color: yellow;
           background-image: url("images/bg.jpg");
           background-repeat: no-repeat;
      }
      
    • (2)、repeat:背景图像将向垂直和水平方向重复。这是默认,也就是上面看到的 1.3 的现象

    • (3)、inherit:指定background-repea属性设置应该从父元素继承

    • (4)、round:background-repeat取值为round时,会像repeat一样,背景图片会平铺整个容器,但和repeat不一样的是,他会根据容器尺寸和图片尺寸做一个自适应处理,不会像repeat一样,造成图片显示不全。当图片重铺的次数不适合一个整数时,会重新调整,使图片按整数平铺在整个容器中。类似于background-size一样会自动计算背景图片尺寸。

      round
    • (5)、space:background-repeat取值为space时,和round又会不一样,但也有类似之处。类似之处是,背景图片会平铺整个容器,不会造成背景图片裁剪;但也和round将不一样,使用space时,不够整数背景图片平铺整个容器的时候,会将剩余的空间平均分配给相邻背景之间。假设我们的容器是200 x 200,而背景图片的尺寸是80 x 80。那么水平方向将会平铺2张背景图,而相邻两张背景图之间会有一个40/(2-1) = 40间距。同样道理,在垂直方向会有一个40/(2-1) = 40的间距。

      space
    • (6)、repeat-x:横向平铺盒子,盒子其他部分显示背景颜色。


      横向平铺盒子,盒子其他部分显示背景颜色
      .box1{![WechatIMG38.jpeg](https://img.haomeiwen.com/i1728484/3bae0cf89f2e8e35.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
      
           width: 200px;
           height: 200px;
           border: 1px solid #000;
           margin: 50px auto 0;
           background-color: yellow;
           background-image: url("images/bg.jpg");
           background-repeat: repeat-x;
      }
      
    • (7)、repeat-y:纵向平铺盒子,盒子其他部分显示背景颜色


      repeat-y:纵向平铺盒子,盒子其他部分显示背景颜色。
      .box1{
           width: 200px;
           height: 200px;
           border: 1px solid #000;
           margin: 50px auto 0;
           background-color: yellow;
           background-image: url("images/bg.jpg");
           background-repeat: repeat-x;
      }
      
  • 1.4、background-position 设置背景图片的位置,可以在水平方向设置 leftcenterright,在垂直方向设置 topcenterbottom,除了设置这些方位词之外,还可以设置具体的数值,可以任意组合,举例如下:

    • (1)、举例 1:水平居中,靠近底部

      .box1{
          width: 200px;
          height: 200px;
          border: 1px solid #000;
          margin: 50px auto 0;
          background-color: yellow;
          background-image: url("images/bg.jpg");
          background-repeat: no-repeat;
          background-position: center bottom;
      }
      
      水平居中,靠近底部
    • (2)、举例 2:设置具体的数值


      设置具体的数值

    提示:background-position 后面跟两个参数是代表水平和垂直方向的设置

  • 1.5、background-attachment 设置背景图片是固定还是随着页面滚动条滚动

提示:实际应用中,我们可以用background属性将上面所有的设置项放在一起,而且也建议这么做,这样做性能更高,而且兼容性更好,比如:“background: #00FF00 url(bgimage.gif) no-repeat left center fixed”,这里面的“#00ff00”是设置background-color;“url(bgimage.gif)”是设置background-image;“no-repeat”是设置background-repeat;“left center”是设置background-position;“fixed”是设置background-attachment,各个设置项用空格隔开,有的设置项不写也是可以的,它会使用默认值。

二、具体的举例

  • 2.1、通过雪碧图来做如下布局:


    通过雪碧图来布局
    雪碧图
  • 2.2、代码如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
         <meta charset="UTF-8">
         <title>雪碧图的制作</title>
         <style type="text/css">
            .box{
                background-color: yellow;
                width: 300px;
                height: 315px;
                list-style: none;
                margin: 50px auto 0;
                padding: 0px;
             }
            .box li{
                height: 60px;
                border-bottom: 1px dotted #000000;
                line-height: 60px;
                text-indent: 50px;
                background: url(images/bg01.png) 0px 10px no-repeat;
             }
            .box .icon2{
                background-position: 0px -71px;
            }
            .box .icon3{
                background-position: 0px -154px;
            }
            .box .icon4{
                background-position: 0px -235px;
            }
            .box .icon5{
                background-position: 0px -315px;
            }
        </style>
    </head>
    <body>
        <ul class="box">
            <li>飞驰人生</li>
            <li class="icon2">飞驰人生</li>
            <li class="icon3">飞驰人生</li>
            <li class="icon4">飞驰人生</li>
            <li class="icon5">飞驰人生</li>
        </ul>
    </body>
    </html>
    

    分析:5个 li 本来要加载5张图片,由于我们使用的雪碧图在重复利用,改变的是同一张图片的 background-position,从而减少请求来获取图片的效果

相关文章

网友评论

    本文标题:Python HTML和CSS 10:background属性

    本文链接:https://www.haomeiwen.com/subject/hctduqtx.html