【发布时间】:2017-04-21 12:10:12
【问题描述】:
我正要在这个上拔头发。
我有一个由不同的divs 组成的水平条。它们的宽度由总条带宽度的百分比定义(未知)
例如:
---------------------------------
| | | | |
---------------------------------
0% 20% 40% 80% 100%
现在我想要一个基本上跨越整个条带的背景图像,但我必须在每个 div 上单独定义它们,因为它们可能会根据它是哪个 div 有不同的变化。
所以第一个 div (0% - 20%) 将有一个 background-width 的 500% 和一个 (0, 0) 的 background-position
第二个 (20% - 40%) 也将有一个 background-width 的 500% 和一个 (25%, 0) 的 background-position(稍后会详细介绍)
第三个 (40% - 80%) 将具有 background-width 的 250% 和 background-position (~66.66%, 0)
最后一个 (80%-100%) 将再次具有 background-width 的 500% 和 background-position 的 (100%, 0)
现在这听起来可能是一个非常愚蠢的问题,但我无法理解如何根据条带上的 div 宽度和位置计算 background-positions 的正确值,尽管我认为我大致了解百分比定位的工作原理。我非常感谢有人指出我正确的方向。
编辑:经过一些涂鸦后,我想我想通了,但我还没有将其作为答案发布,因为我的大脑太油腻了,甚至无法理解其背后的原因。也许有人会花时间解释为什么会这样。我肯定会在睡一觉后尝试。我可以像这样计算正确的值:
background_position_x = div_strip_position_x + div_width * div_strip_position_x / (100 - div_width)
(所有变量均以百分比表示)
【问题讨论】:
-
为什么不把所有div的背景设置为透明,然后为包含的div设置背景?
-
@Zze 因为实际的背景图像文件可能因 div 不同而不同。