锚定CSS重复的背景图片(Anchoring CSS Repeating Background Im

2019-09-18 18:21发布

我有以下配置一个标题横幅网页:

<---Repeating Image Left--><---Banner Image---><---Repeating Image Right--->

的页面设计有固定宽度的内容,但是横幅横跨在浏览器窗口的整个宽度(因此左侧包括重复图像和右的原因)。

两个重复的图像是不同的,并且它们也不是可定位其中的一次标准的背景图像。 相反,左图像需要被固定/粘在横幅图片的左侧,然后重演向左,从这一点来说,在浏览器窗口中展开。 同样地,右图像需要被固定/贴着横幅图像的右侧,并从该点向右重演。

使用纯background-image:与物业repeat-x一套行不通,因为图像将被重复/从浏览器窗口的左侧平铺,而不是从旗帜图像的左/右侧向外在期望的方向。

任何帮助,以达到预期的效果,将不胜感激。

Answer 1:

你可以用一个单一风格的元素做到这一点,是:

#banner {
  height: 50px;
  width: 50%; margin: 0; padding-right: 50%;
  background-image:url('banner.png'), url('left-bg.png'), url('right-bg.png');
  background-clip: padding-box, content-box, content-box;  
  -webkit-background-clip: padding-box, content-box, padding-box; 
  background-origin: padding-box, content-box, padding-box;
  background-position: center, right, center;
  background-repeat: no-repeat, repeat-x, repeat-x;
}

该元素有三个背景。 诀窍是在得到不同的人出现在左边和右边,我已经通过左侧加入50%的填充完成。 左边是“填充盒子”,右侧是“内容框”。

你可能想使第一背景的<img>所以你可以给它一个标题标签-如果你不那么它只会出现在右侧窗口的50%,所以你必须到左对齐和使用position:relative; left:-250px position:relative; left:-250px把它找回来到中间。

最后,背景图像被锁定的窗口,而不是旗帜的边缘的中间,但你可以通过改变图像本身修复。



Answer 2:

你可以提供一个URL来检查网站? 这听起来像你需要用CSS属性实验:

background-position {x, y}


Answer 3:

banner
{
background-image:url('image.gif');
background-repeat:repeat-x;
vertical-align: middle;
text-align: center; /*optional*/
}

我不知道这是否正常工作,但它是值得一试。



文章来源: Anchoring CSS Repeating Background Image