【问题标题】:How to Set Up a Responsive Background-Image with CSS如何使用 CSS 设置响应式背景图像
【发布时间】:2013-08-21 16:29:04
【问题描述】:

有两个 div 类:一个 bar 嵌套了一个 menu

background-image 在放置在 bar 类中时没有正确缩放或响应,并且在放置在 menu 类中时没有出现,在该类中似乎适合响应式样式。

此外,图像是 png,但在空白空间中呈现为空白……为什么会这样?

现在都作为内联样式进行测试,但是,在嵌套在“css”文件夹中的外部样式表中,如何将图像指向与“css”文件夹路径相邻的“img”文件夹中?

为了响应性……背景图像应根据浏览器的高度/宽度进行缩放……

当前的 CSS:

.bar {
  position: static;
  bottom: 0;
  height: 10%;
  width: 100%;
  display: block;
  margin: 0 auto;
  text-align: center;
}

.menu {
  display: inline-block;
  background-image: url("img/menu-bar.png");
}

【问题讨论】:

  • “不起作用”是一个非常宽泛的术语。 究竟是什么不起作用 - 请更详细地解释您的问题
  • 背景尺寸:封面????
  • 您确定背景图片的路径正确吗?这通常是缺少背景图片的问题。
  • 确保 background-image url 是相对于 css 的,而不是你包含 css 的页面。Partial URLs are interpreted relative to the source of the style sheet, not relative to the document
  • 好的,所以它部分是“相对于 css”的问题。将样式移到文档中,它在 'bar' 类中工作,但它的大小不合适......而且不是在“菜单”类中工作,这可能是它可以做出响应的地方..

标签: html css background-image


【解决方案1】:

您在这里问了几个问题。所以,按顺序:

默认情况下,background-image 将以其实际大小重复。如果您希望它扩展,您应该设置background-size 并可能禁用background-repeat。要将图像缩放到容器的大小,您可以设置background-size: 100% 100%; 或者您可以使用background-size: cover 来填充较小尺寸的容器并剪掉其余部分。另一种选择是使用background-size: contain 来避免剪切图像。

关于路径问题,路径总是相对于 CSS 文件。因此,如您所说,如果样式表位于与 img 文件夹相邻的 css 文件夹中,您只需设置相对于 css 文件夹的路径即可。

最终的 CSS 可能看起来像这样:

.menu {
  display: inline-block;
  background-image: url(../img/menu-bar.png);
  background-size: cover;
  background-color: transparent;
  background-repeat: no-repeat;
}

请注意,我删除了引号,因为它们不是必需的。

最后,如果您的透明度不起作用,那么图像文件本身一定有问题。 CSS与PNG透明度无关。确保您的图形编辑器以适当的透明度保存 PNG。

【讨论】:

  • 你说的一切都说得通当这些样式是为嵌套在 'bar' 类中的 'menu' 类编写的..关于为什么的任何想法?
  • 另外,图像的透明度保持不变,这似乎与栏的 10% 高度有关,这故意导致页面的其余内容从栏上方滚动出来.. 这可能适合另一个问题,但是 10% 的高度可以用于图像并且它的透明度吗?
  • 我认为您的问题与您的定位和显示模式有关...没有宽度或高度的 display: inline-block 将只是内容的大小,因此如果您没有内容,则 div 将看不见。您可能想尝试display: block 的宽度和高度。给父母position: relative;,这样孩子就会被包含在其中。
  • 很好的建议,@nullability。我真的很喜欢使用background-size: cover; 的想法。这似乎可以缓解100% 100% 的一些常见问题。再次感谢。 +1
猜你喜欢
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多