背景重复

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

3.1 属性 background-repeat

CSS 中的background-repeatbackground-size属性用来管理背景图像在元素内的重复和缩放方式。这些属性为 web 开发者提供了灵活调整背景视觉效果的工具。让我们详细看看每一个。

background-repeat属性定义了背景图像在元素中的重复方式。默认情况下,背景图像在水平和垂直方向上都重复。

  • repeat: 图像水平和垂直重复(默认)
  • repeat-x: 图像仅水平重复
  • repeat-y: 图像仅垂直重复
  • no-repeat: 图像不重复

1. 值 repeat:

在水平和垂直方向上重复图像。

CSS
    
      .repeat {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/50');
        background-repeat: repeat;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="repeat">在水平和垂直方向上重复</div>
    
  

2. 值 repeat-x:

图像仅水平重复。

CSS
    
      .repeat-x {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/50');
        background-repeat: repeat-x;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="repeat-x">仅水平方向重复</div>
    
  

3. 值 repeat-y:

图像仅垂直重复。

CSS
    
      .repeat-y {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/50');
        background-repeat: repeat-y;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="repeat-y">仅垂直方向重复</div>
    
  

4. 值 no-repeat:

图像不重复。

CSS
    
      .no-repeat {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/50');
        background-repeat: no-repeat;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="no-repeat">不重复</div>
    
  

代码解释

  • .repeat: 图像水平和垂直重复,填满整个元素
  • .repeat-x: 图像仅水平重复
  • .repeat-y: 图像仅垂直重复
  • .no-repeat: 图像不重复,只显示一次

3.2 属性 background-size

background-size属性用于控制背景图像的大小。它允许我们调整图像大小,让其更好地适应元素。

值:

  • auto: 图像大小自动确定(默认)
  • cover: 图像缩放以完全覆盖元素,保持比例
  • contain: 图像缩放以完全适应元素,保持比例
  • 绝对值: 比如 100px 50px 设置图像的宽度和高度为像素单位
  • 百分比值: 比如 50% 50% 设置图像宽度和高度为元素大小的百分比

1. 默认大小 (auto):

图像大小自动确定(默认)。

CSS
    
      .size-auto {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/50');
        background-size: auto;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-auto">默认大小 (auto)</div>
    
  

2. cover:

图像缩放以完全覆盖元素,保持比例。

CSS
    
      .size-cover {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/150');
        background-size: cover;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-cover">缩放以覆盖元素 (cover)</div>
    
  

3. contain:

图像缩放以完全适应元素,保持比例。

CSS
    
      .size-contain {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/150');
        background-size: contain;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-contain">完全适应缩放 (contain)</div>
    
  

4. 绝对值:

比如,100px 50px 设置图像的宽度和高度为像素单位。

CSS
    
      .size-pixels {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/150');
        background-size: 100px 50px;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-pixels">像素大小 (100px 50px)</div>
    
  

5. 百分比值:

比如,50% 50% 设置图像宽度和高度为元素大小的百分比。

CSS
    
      .size-percent {
        width: 200px;
        height: 200px;
        background-image: url('https://via.placeholder.com/150');
        background-size: 50% 50%;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-percent">百分比大小 (50% 50%)</div>
    
  

代码解释:

  • .size-auto: 图像大小自动确定
  • .size-cover: 图像缩放以完全覆盖元素,保持比例。部分图像可能被裁剪
  • .size-contain: 图像缩放以完全适应元素,保持比例。图像完全可见,但可能有空白区域
  • .size-pixels: 图像大小用像素设置(宽度为 100px,高度为 50px)
  • .size-percent: 图像大小用元素尺寸的百分比设置(宽度为 50%,高度为 50%)

3.3 联合使用 background-repeat 和 background-size

background-repeatbackground-size属性经常结合使用,以达到想要的背景图像显示效果。

使用示例:

CSS
    
      .combined {
        width: 300px;
        height: 300px;
        background-image: url('https://via.placeholder.com/150');
        background-repeat: no-repeat;
        background-size: cover;
        border: 1px solid #000;
      }
    
  
HTML
    
      <body>
        <div class="combined">背景图像不重复,并缩放以覆盖元素</div>
      </body>
    
  

代码解释:

  • background-repeat: no-repeat;: 图像不重复
  • background-size: cover;: 图像缩放以完全覆盖元素,保持比例。部分图像可能被裁剪
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION