0

我正在寻找解决问题的方法,我正在制作带有位置的地图,位置用点表示,但是我一直在使用 position:relative; 所以它从容器顶部计算左上角,但现在我意识到它不是这样做的,它会向下移动,因为有几个“点”,我找不到解决这个问题的方法,有一个简单的方法吗?

预览:删除了看一下missisipy(海边)的点和右边的点,它们的意思是在相同的高度,但它们不是..

4

3 回答 3

1

我认为 position:absolute 可能会更好。相对将从原始位置计算。w3schools 的准确报价:

相对定位的元素是相对于其正常位置定位的。

最有可能在原始 DOM 结构中,一个“点”位于另一个之上,因此如果高度的位置相同,那么如您所见,一个将高于另一个。

但是对于绝对而言,另一个直接的 w3s 报价:

绝对位置元素相对于第一个具有非静态位置的父元素定位。如果没有找到这样的元素,则包含块是 html:

只要不存在位置不是静态的父元素,absolute 就应该工作而无需更改任何其他内容。如果有然后返工数字,你应该很好。

固定的也可以工作,但如果查看屏幕对于整个地图来说不够大,那会导致问题,我的在这里不是问题,但是......

于 2012-04-16T02:06:43.687 回答
0

我不是 100% 确定我是否理解您遇到的问题,但我认为这是因为点是相对于锚标签定位的,每次添加锚标签时,它都会放置在前一个锚标签的下方. 我认为定位锚标签而不是锚标签内的 div 会起作用。所以而不是

<a href="http://www.tampaport.com/" target="_blank" class="dot_class">
  <div class="dot" style="top: 255px; left: 642px; opacity: 1; " data-title="Tampa Port Athority">
  </div>
</a>

你可以试试

<a href="http://www.tampaport.com/" target="_blank" class="dot_class" style="top: 255px; left: 642px; opacity: 1; ">
  <div class="dot"  data-title="Tampa Port Athority">
  </div>
</a>

并确保将锚显示为具有相对位置的块:

a.dot_class{
  display: block;
  position: relative;
}
于 2012-04-16T01:47:35.643 回答
0

您必须使用我们absolute positionning,它允许您相对于父容器定位元素。

唯一的规则是你的父容器也必须定位,所以你可以添加position: relative它,它的位置不会受到影响,但它会成为一个定位元素

您的 HTML:

<div class='map'>
    <span class='point p1'></span>
    <span class='point p2'></span>
    <span class='point p3'></span>
    <span class='point p4'></span>
</div>​

你的 CSS:

.map {
    position: relative;
    [...other styling...]
}

.point {
    position: absolute;
    left: [...X coordinate...];
    top: [...Y coordinate...];
    [...other styling...]
}

在这里演示:http: //jsfiddle.net/YYmde/

于 2012-04-16T07:17:36.667 回答