多层背景

Frontend SELF ZH
第 18 级, 课程 4
可用

4.1 基本原则

CSS允许在一个元素中使用多个背景图像,这为创建复杂和有趣的视觉效果提供了广阔的可能性。通过background-image属性及其相关属性 可以设置多个层次的背景图像,控制它们的顺序、位置和其他特性。

语法

要设置多个背景图像,可以使用逗号分隔不同的图像:

    
      element {
        background-image: imageUrl1, imageUrl2, imageUrl3;
      }
    
  

为每个层的属性

除了background-image,还可以使用以下属性来设置每个层的背景图像, 它们也支持用逗号分隔的多个值:

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

层次顺序

图像按列举的顺序排列,其中第一个图像离用户最近,最后一个离元素的背景最近。

4.2 图像叠加

简单的图像叠加。

使用示例:

CSS
    
      .multi-bg {
        width: 300px;
        height: 300px;
        background-image: url('https://via.placeholder.com/150'), url('https://via.placeholder.com/100');
        background-position: center, top left;
        background-repeat: no-repeat, no-repeat;
        border: 1px solid #000;
      }
    
  
HTML
    
      <body>
        <div class="multi-bg">多层背景</div>
      </body>
    
  

代码解释:

  • background-image: url('https://via.placeholder.com/150'), url('https://via.placeholder.com/100');: 设置两个背景图像
  • background-position: center, top left;: 第一个图像居中,第二个图像在左上角
  • background-repeat: no-repeat, no-repeat;: 禁止两个图像的重复

4.3 使用多个图像

使用不同大小的多个背景图像。

使用示例:

CSS
    
      .multi-bg-sizes {
        width: 300px;
        height: 300px;
        background-image: url('https://via.placeholder.com/150'), url('https://via.placeholder.com/100');
        background-position: center, bottom right;
        background-repeat: no-repeat, no-repeat;
        background-size: 50% 50%, 30% 30%;
        border: 1px solid #000;
      }
    
  
HTML
    
      <body>
        <div class="multi-bg-sizes">具有尺寸的多层背景</div>
      </body>
    
  

代码解释:

  • background-size: 50% 50%, 30% 30%;: 第一个图像缩放为元素宽高的50%,第二个图像缩放为元素宽高的30%

4.4 透明图像

叠加透明图像。

使用示例:

CSS
    
      .multi-bg-opacity {
        width: 300px;
        height: 300px;
        background-image: url('https://via.placeholder.com/150'), url('https://via.placeholder.com/100');
        background-position: center, center;
        background-repeat: no-repeat, no-repeat;
        background-size: cover, 50%;
        border: 1px solid #000;
        position: relative;
      }

      .multi-bg-opacity::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
      }
    
  
HTML
    
      <body>
        <div class="multi-bg-opacity">具有透明度的多层背景</div>
      </body>
    
  

代码解释:

  • background-size: cover, 50%;: 第一个图像覆盖整个元素,第二个图像缩放为元素的50%
  • ::before: 伪元素在背景图像上添加半透明的黑色层

4.5 背景剪裁

使用其他属性和多个背景图像。

background-origin 和 background-clip

这些属性控制背景图像的显示区域和剪裁区域。

使用示例:

CSS
    
      .multi-bg-origin-clip {
        width: 300px;
        height: 300px;
        background-image: url('https://via.placeholder.com/150'), url('https://via.placeholder.com/100');
        background-position: center, center;
        background-repeat: no-repeat, no-repeat;
        background-origin: padding-box, content-box;
        background-clip: border-box, padding-box;
        border: 10px solid #000;
        padding: 20px;
      }
    
  
HTML
    
      <body>
        <div class="multi-bg-origin-clip">带有background-origin和background-clip的多层背景</div>
      </body>
    
  

代码解释:

  • background-origin: padding-box, content-box;: 第一个图像从padding内边缘开始,第二个图像从内容开始
  • background-clip: border-box, padding-box;: 第一个图像剪裁到边框外边缘,第二个图像剪裁到padding内
1
任务
Frontend SELF ZH, 第 18 级, 课程 4
已锁定
多个图片
多个图片
1
任务
Frontend SELF ZH, 第 18 级, 课程 4
已锁定
背景裁剪
背景裁剪
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION