多个背景:左半部分和右半部分

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

您好!本文比较旧了。 我们在这里对其进行了修订,其中包含更多更好的信息。

Example of left and right layout with differnet backgrounds

过去几天推出全新的 CSS-Tricks 论坛 感觉很棒!我担心它需要一段时间才能流行起来,但过去几天大约有 150 个帖子,涵盖了许多很棒的主题。

其中一个很棒的主题是 John Steven 的背景挑战

我面临着一个挑战,为了庆祝这个新论坛,我想请您就这个问题启发我。我们需要一个 100% 宽度的背景,但在屏幕的 50% 上采用不同的图案。例如,制作宽度为 2500px 并重复 y 的背景图像并不是我想要的。

我的第一个想法是创建 2 个 div,一个 leftHalf 和一个 rightHalf

#leftHalf {
   background: url(images/bg-1.jpg);
   width: 50%;
   position: absolute;
   left: 0px;
   height: 100%;
}
#rightHalf {
   background: url(images/bg-2.jpg);
   width: 50%;
   position: absolute;
   right: 0px;
   height: 100%;
}

这可以工作,但它有一个“小”(字面意思)问题。当浏览器窗口的宽度为奇数像素时,该数字没有偶数的 50% 分割,并且您会在两个 div 之间的中间得到一条细细的白条。

John 本人建议对该解决方案进行完美的调整,从而解决了这个问题。不要使用 leftHalf,只需将该背景图像应用于整个 body 元素即可。这解决了白条问题,并且也减少了标记的使用!

查看演示

(是的,左半部分的图案排列得不太正确,但这里重要的是理论!)