我如何在left
上设置div
,以使其尽管宽度不同但总是在另一个div
上方居中?
jsFiddle:http://jsfiddle.net/y04nse5x/
我正在尝试使每个标签在点上完全对齐,而无需使用容器。我敢肯定offsetWidth
和offsetLeft
可以做到,但我无法正确理解数学。
将点放置在页面上的任意位置,每个点都有一个mouseover
事件侦听器,该事件侦听器将在该点上放置一个标签。我可以使用offsetLeft
使标签显示在圆点上方,但它不会居中,因为标签的宽度可能会有所不同,这是因为不同的文本取决于它出现在哪个圆点上。
我遇到此问题的实际网站:http://briennakh.me/world-around-you/(悬停在右上角的菜单按钮上)
答案 0 :(得分:2)
在CSS中,您正在设置说明的left
。让我们看看left
等于什么。
documentation
希望我的图有意义,因此:
var leftValue = this.offsetLeft-(description.offsetWidth-this.offsetWidth)/2;
答案 1 :(得分:1)
您必须考虑描述宽度和按钮宽度。
这是一个小提琴:http://jsfiddle.net/khe8j2ms/
但是我可能会使用其他容器和样式:
left: 50%;
transform: translateX(-50%);