#060:论坛自定义标题,第二部分(快速媒体查询)

Nick 的插图有三个不同的头部图层,它们只是略微不同的变体。我们可以用动画或 JavaScript 替换这些图像,但始终运行的动画(甚至是在每次页面加载时运行的动画)可能会让论坛的重度用户感到非常烦人。所以我们将把它做成一个彩蛋,也就是说,你可能不会注意到它,除非你偶然碰巧碰上了它。

我们将做的是,当浏览器窗口大小调整通过 @media 查询时,替换图像。我们不会仅仅使用少量 @media 查询来更改头部几次,而是会制作大量的 @media 查询,每隔几个像素就更改一次。本质上是借鉴了 Arley McBlain 的 “Lark Queries。” 的精神。

我们使用 Sass 循环来创建所需的多个 @media 查询。最终

@for $i from 25 through 125 {
  @media (min-width: (($i+5)*15)+6+px) and (max-width: (($i+5)*15)+10+px) {
    .forum-wrap { background-image: url(../wp-content/themes/CSS-Tricks-10/images/header-forums-2.png);
    }
  }
  @media (min-width: (($i+5)*15)+11+px) and (max-width: (($i+5)*15)+15+px) {
    .forum-wrap { background-image: url(../wp-content/themes/CSS-Tricks-10/images/header-forums-3.png);
    }
  }
}

这样做的好处是,除非页面大小发生改变,否则我们不会加载这些额外的图像,因此我们不会仅仅为了一个彩蛋而加载额外的内容。