html - 锚定 CSS 重复背景图片

标签 html css background-image

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

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

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

这两张重复的图片是不同的,它们也不是可以随意放置的标准背景图片。相反,左侧图像需要锚定/固定在横幅图像的左侧,然后随着浏览器窗口的展开,从该点开始向左重复。同样,正确的图像需要锚定/粘贴到横幅图像的右侧,并从该点向右重复。

使用带有 repeat-x 设置的纯 background-image: 属性不起作用,因为图像将从左侧重复/平铺浏览器窗口,而不是从横幅图像的左侧/右侧向外按所需方向。

任何有助于实现预期效果的帮助都将不胜感激。

最佳答案

您可以使用单个样式元素来做到这一点,是的:

#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% 的填充来完成。左边是“padding box”,右边是“content box”。

您可能希望将第一个背景设为 <img>所以你可以给它一个标题标签 - 如果你这样做那么它只会出现在窗口的右侧 50% 所以你必须左对齐它并使用 position:relative; left:-250px让它回到中间。

最后,背景图像被锁定在窗口的中间,而不是横幅的边缘,但您可以通过更改图像本身来解决这个问题。

关于html - 锚定 CSS 重复背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11260986/

相关文章:

sass - 悬停时使用 CSS 的光滑效果

jQuery 简单背景 slider 循环

javascript - 如何控制使用 jQuery/JavaScript 提交哪些表单字段?

html - anchor 标记继承自非预期元素

jQuery cropit 导出方法只返回 'data:,' 字符串

javascript - 拖动元素后更改值 css 属性

background-image - 将 CSS 与背景图片/登录一起使用

html - 背景图片加载但不显示

html - 左边是表格,右边是图片的列没有响应

php - $.post 返回(空字符串)