将图片或相册作为网页背景|青训营笔记

257 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的第4天

网站的背景很大程度上决定了网站的美观程度,尤其是内容较少,背景突出的站点。 将图片作为网站的背景既美观又方便,省去了在CSS中费力创作背景的麻烦。

一. 选择合适的图片

选择一张合适的图片看起来最简单,但其中的很多细节往往被忽略。

选择图片时要注意:版权图片比例清晰度图片内容图片体积

1. 图片版权

首先,不是所有图片都可以被拿来当作网站的背景,尤其是您的网站涉及商业用途, 下文中我将推荐两个可以免费下载并使用的优质图片网站。


Pexelshttpss://www.pexels.com/zh-cn/

Pexels拥有巨大的图片素材库,并且自带中文站点,使用及其友好,无需登录即可一键下载原图。Pexel官网中也明确标注了所有的图片与视频都可以免费使用,下图是官方给出的免费使用范围:

从图中可以看出Pexles上的图片与视频都可免费使用,甚至无需标注原作者并且允许自由修改与创造。 良心!


Unsplash

与Pexels类似,Unsplash也提供可免费使用的图片,唯一的小缺点就是没有中文站点,国内访问速度可能较慢。Unsplash也同样给出了具体的免费使用条款:

✅ 所有图片可以免费下载使用

✅ 商业及非商业用途都可使用

✅ 无需任何许可

🚫 禁止在没有对图片进行重大二次创作的前提下售卖

🚫 禁止用Unplash的图片抢他们的生意...

Unplash的使用协议多了一条 “商业及非商业用途都可使用” ,如果涉及商业用途的网站可以优先考虑Unplash。

2. 图片比例及内容

  • 如果网站主要运行在网页端,建议选择接近16:9大小的图片,因为标准的4K/2K/1080P的比例都是16:9,可以保证只对图片进行最小程度的变形。
  • 如果网站即要在网页端也在移动端运行,背景图片的压缩变形是不可避免的了,此时就要选择图片中尽量少出现人,车,动物,家具等形状复杂的物体,因为这些物体一旦变形,对视觉的影响非常大。大自然的风光图片很适合用来当作背景,因为它们清晰度高,景别大,复杂的物体少。

3. 图片体积

为了优化用户体验,一定要在保证对图片质量损失最小的情况下,尽可能压缩图片体积。压缩图片的工具非常多,这里推荐Doc Small


二. 制作网站

下面将以这张图片作为例子:

首先创建一个div容器用来放置背景图片:

  <style>
    .bg-image{
      background-image: url(bg.jpg);
      height: 100vh;
      width: 100vw;
    }
  </style>
  
  <div class="bg-image"></div>

此时,图片充满了整个屏幕,但却没有显示完整,解决方法可以使用 background-size: cover; 让图片自动拉伸,适应屏幕大小。 为了防止图片循环重复,加上一句 background-repeat: no-repeat; 会更保险。

  <style>
    .bg-image{
      background-image: url(bg.jpg);
      background-repeat: no-repeat;
      background-size: cover;
      height: 100vh;
      width: 100vw;
    }
  </style>
​
  <div class="bg-image"></div>

现在的图片已经完全充满屏幕,并且能够根据屏幕的大小自动拉伸调整,但是图片四周却存在白色间隙,通过浏览器调试可以发现这个白色间隙是body的边缘(margin),此时的数值是8,将它修改到0即可解决问题。

  <style>
    body{
      margin: 0;
    }
    .bg-image{
      background-image: url(bg.jpg);
      background-repeat: no-repeat;
      background-size: cover;
      height: 100vh;
      width: 100vw;
    }
  </style>
​
  <div class="bg-image"></div>

给网页加上些内容,另一个问题又出现了,当内容的长度大于图片的高度时,背景有会恢复位白色,因为此时图片已经完全显示完毕,不会再自动延伸。

这里只需要将背景图片的定位元素改为fixed,并将图片置于最下层,图片就会永远停留在屏幕上。

  <style>
    body{
      margin: 0;
    }
    .bg-image{
      position: fixed;
      top: 0;
      left: 0;
      background-image: url(bg.jpg);
      background-repeat: no-repeat;
      background-size: cover;
      height: 100vh;
      width: 100vw;
      z-index: -100;
    }
  </style>
​
  <div class="bg-image"></div>

三. 使用Bootstrap相册作为背景

想要获得更好的视觉效果,可以让背景中的照片滚的起来,下面是我个人网站的例子,可以看到用户甚至可以使用页面下方的bar来自由选择背景照片。

代码直接套用Bootstrap的滚动相册,原理与上述相同:

<!--Back Ground Carousel-->
<div id="carouselExampleIndicators" class="carousel slide vh-100 vw-100" data-bs-ride="carousel"
  style="position: fixed; z-index: -100">
  <div class="carousel-inner">
    <div class="carousel-item active vh-100">
      <img src="bg1" class="d-block vh-100 vw-100" alt="..." />
    </div>
    <div class="carousel-item vh-100">
      <img src="bg2" class="d-block vh-100 vw-100" alt="..." />
    </div>
    <div class="carousel-item vh-100">
      <img src="bg3" class="d-block vh-100 vw-100" alt="..." />
    </div>
    <div class="carousel-item vh-100">
      <img src="bg4" class="d-block vh-100 vw-100" alt="..." />
    </div>
    <div class="carousel-item vh-100">
      <img src="bg5" class="d-block vh-100 vw-100" alt="..." />
    </div>
  </div>
</div>

\