【发布时间】:2013-02-09 03:28:15
【问题描述】:
我正在编写一个小的 WP 主题,需要一些关于新 CSS3 background-size 属性的帮助。
我有一个包含图像作为背景的 DIV。图像本身设置为大于 div 以呈现原始图像的小切口:
.imageContainer {
background-size:154% 102%;
background-position-x:-28%;
background-position-y:0.28%;
}
到目前为止一切都很好。但是如果大小≥ 100%,调用 background-position 属性会变得很棘手。 我整理了一个小 JS/CSS Playground 进行测试:
- 如果图像的宽度 ≤ 99%,则 background-position-x 越小意味着图像向左移动。
- 如果图像 == 100% 宽,则 background-position-x 不执行任何操作
- 如果图像宽度 ≥ 101%,则 background-position-x 越小意味着图像向右。
对于以下情况我计算了:
- 大容器:350x350px
- 图片:540x359px
- 表示:(100/350) * 540 ≙ 154% 宽度
- (100/350) * 359 ≙ 102% 高度。
- 还有:位置-x:-28% 和位置-y:-0.28%
所以我渲染了一个页面(包括自动计算)并且大小大约是正确的大小。 但正如我所说,较少的 background-position-x (-28%) 意味着图像正确,图像位置错误。
它必须向左移动,因为我计算了 -28% 的“左边距”。所以我做了一些试验和错误,结果发现正确的位置应该在 50% 左右。
这仍然是 CSS3 问题,还是我完全误解了这个属性的功能?
这是一张图片来说明我的目标......
【问题讨论】:
-
如果您可以将jsfiddle.net 与真实图像的链接一起展示问题,这将使我们更容易为您提供帮助。此外,
background-position: 0 0也是有效的语法。background-postion-x和background-postion-y实际上不是 W3C 规范的一部分,在 Firefox 或 Opera 中不受支持。 -
你说得对 background-position-x / y。我认为这样阅读会更容易。我正在 Safari 上开发,所以它可以工作。但是当我上网时,我会删除这个语法。所以这是一种生产状态:)我会在几分钟内把小提琴放在一起。
标签: html css background-position