我有以下 CSS
.bloodparam > .highvalue { bottom: 12px; right: 25%; }
和
.bloodparam > .highvalue { bottom: 12px; left: 75%; }
理想情况下,无论我使用哪个元素,元素的位置都必须相同,但我看到的位置不同。任何想法为什么?
请看这个 fiddle http://jsfiddle.net/956y5/1/ - 您会看到第一行和第二行的正确指示符不同
最佳答案
left
位置值从给定的指定左侧值开始计算,并将宽度放在该位置的右侧
右
位置值是从给定的指定右值开始计算的,并将宽度放在该位置的左
在您的示例中,您可以直观地看到这一点,前 100 名的右侧部分与底部的左侧部分匹配。
这是有充分理由的。以 left:0
和 right:0
的比较为例。如果它们是等价的,left
版本将位于屏幕的最左侧,显示全宽,但 right
版本将位于屏幕的最左侧屏幕的最右侧,不可见。但是,实际上,它将元素定位在显示全宽的位置,但它处于可能的最右边值
从技术上讲,您的两个值都是错误的,因为 left
和 right
考虑了它定位的元素的宽度。为了完全准确,您还需要在被定位元素宽度的一半的一侧有一个负边距。通过给左值 100%
可以很容易地看到错误,然后标记完全移出范围
关于css - 为什么 CSS Left 75% 和 Right 25% 的工作方式不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19371201/