CSS - 背景图像水平拉伸并垂直重复?

Posted

技术标签:

【中文标题】CSS - 背景图像水平拉伸并垂直重复?【英文标题】:CSS - Background image stretch horizontally and repeat vertically? 【发布时间】:2017-04-22 21:05:21 【问题描述】:

使用background-size: cover 我可以使背景拉伸以适应页面的整个宽度。

使用repeat-y 我可以使背景重复或垂直平铺到页面的整个高度。

有什么办法可以将这两种效果结合起来吗?不幸的是,它们似乎不能一起工作(至少在 Chrome 中)。看来我可以使用background-size: cover 在两个方向上拉伸,或者不在 x 方向上拉伸,而是在 y 方向上重复。

编辑:使用background-size: 100% Npx(其中 N 是图像的高度)我可以完成上述操作,但它会使背景图像倾斜,因为它仅在一个方向上拉伸。有没有办法让它按比例缩放?

【问题讨论】:

你可以只用 background-size:100%; @Chiller 你是对的,但你需要同时指定 x 和 y。即background-size: 100% auto @ 可能你是对的,但如果你在这里看到它可以在不添加自动 jsfiddle.net/qp4093h2 的情况下工作 【参考方案1】:

使用background-size: 100% auto; 代替封面,将背景图像的大小调整为浏览器的全宽,同时保持其高度的纵横比。将此与background-repeat: repeat-y; 结合使用以垂直平铺。

【讨论】:

由于背景大小 x 是 100% 宽度,它不应该重复 -x,所以你实际上不需要指定重复 -y,只需让它默认......但它没有不疼。 对于那些正在寻找我的人——上面的 auto 属性指定了一个高度,所以如果你像在代码 background-size: 100% 150px; 中那样输入一个固定高度,那么你的图像将水平拉伸,而保持 150px 尺寸。 在我的情况下它不起作用,我将其更改为 background-size: 100% calc(100%),它对我有用

以上是关于CSS - 背景图像水平拉伸并垂直重复?的主要内容,如果未能解决你的问题,请参考以下文章

在CSS中拉伸背景图像[重复]

CSS背景-图像拉伸高度[重复]

使用CSS设置背景图像大小而不拉伸[重复]

如何使用 CSS 拉伸表格单元格的背景图像?

如何确保图像不会水平或垂直拉伸[重复]

CSS 中心可调整图像垂直和水平在一个容器中的悬停和背景