CSS 背景样式

397 阅读2分钟

在 CSS 中,背景样式有两个方面,背景颜色和背景图片,背景颜色使用 background-color 属性设置,而背景图片有多个属性。

一、背景颜色

背景颜色使用 background-color 属性设置,其值可以为关键字,也可以为 16 进制 RGB 值。(注意区分 color 和 background-color 属性,前者用于设置文本颜色,后者设置背景颜色)。

二、背景图片

1、背景图片样式 background-image

使用 background-image 属性设置背景图片,属性值为 url(),注意给元素添加宽高属性,否则图片不会显示。

2、背景图片重复 background-repeat

使用此属性定义背景图片的重复方式,其取值如下:

属性值说明
repeat在水平和竖直方向上同时平铺(默认)
repeat-x只在水平方向平铺
repeat-y只在竖直方向平铺
no-repeat不平铺

注意,只有元素的宽高大于背景图片的宽高时,才会有重复效果,示例如下:

<!DOCTYPE html>
<html>
    <head>
        <meta name="keywords" content="个人主页,HTML学习笔记"/>
        <meta name="author" content="Like_Frost"/>
        <meta name="description" content="学习示例"/>
        <meta name="copyright" content="版权所有,转载前请联系"/>
        <style type="text/css">
            div{
                background-image: url(cat.svg);
                height: 100px;
                width: 100px;
                border: black 1px solid;
            }
            .div1{
                background-repeat: repeat;
            }
            .div2{
                background-repeat: repeat-x;
            }
            .div3{
                background-repeat: repeat-y;
            }
            .div4{
                background-repeat: no-repeat;
            }
        </style>
    </head>
    <body>
        <div class="div1"></div>
        <div class="div2"></div>
        <div class="div3"></div>
        <div class="div4"></div>
    </body>
</html>

在浏览器中效果如下:

image.png

3、背景图片位置 background-position

此属性取值有两种,一种是像素值,一种是关键字。

  • 像素值,以 px 为单位,要同时注明水平距离和垂直距离,使用方式:background-position: 水平距离 垂直距离;,示例如下:
<!DOCTYPE html>
<html>
    <head>
        <meta name="keywords" content="个人主页,HTML学习笔记"/>
        <meta name="author" content="Like_Frost"/>
        <meta name="description" content="学习示例"/>
        <meta name="copyright" content="版权所有,转载前请联系"/>
        <style type="text/css">
            div{
                background-image: url(cat.svg);
                height: 100px;
                width: 100px;
                border: black 1px solid;
                background-repeat: no-repeat;
                background-position: 20px 20px;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
</html>

在浏览器中的效果:

image.png

  • 关键字,先竖直后水平,使用方式:background-position: 竖直关键字 水平关键字;,水平关键字有:left、center、right;垂直关键字有:top、center、bottom,其位置对应关系如下:

image.png

有如下示例:

<!DOCTYPE html>
<html>
    <head>
        <meta name="keywords" content="个人主页,HTML学习笔记"/>
        <meta name="author" content="Like_Frost"/>
        <meta name="description" content="学习示例"/>
        <meta name="copyright" content="版权所有,转载前请联系"/>
        <style type="text/css">
            div{
                background-image: url(cat.svg);
                height: 100px;
                width: 100px;
                border: black 1px solid;
                background-repeat: no-repeat;
                background-position: center left;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
</html>

在浏览器中效果如下:

image.png

4、背景图片固定 background-attachment

此属性用于定义背景图片是随元素一起滚动还是固定不动,取值有 scroll(随元素滚动,默认值),fixed(固定不动),示例如下:

<!DOCTYPE html>
<html>
    <head>
        <meta name="keywords" content="个人主页,HTML学习笔记"/>
        <meta name="author" content="Like_Frost"/>
        <meta name="description" content="学习示例"/>
        <meta name="copyright" content="版权所有,转载前请联系"/>
        <style type="text/css">
            div{
                background-image: url(img.jpg);
                height: 1000px;
                width: 100vw;
                border: black 1px solid;
                background-repeat: no-repeat;
                background-position: top left;
                background-attachment: fixed;
            }
        </style>
    </head>
    <body>
        <div></div>
    </body>
</html>

在滚动条滚动时,背景图片不滚动:

image.png

image.png

将 background-attachment 改为 scroll(或者不写,默认为 scroll),背景图片会随着滚动条滚动:

image.png

image.png