html - 保持 css 点到位

标签 html css

大家下午好

我正在为我的工作做一个小元素,他们要求我制作一张 map 并精确定位特定城市。我已经在我的电脑上完成了它,我试图确保当我将它加载到另一台电脑(例如他们的笔记本电脑)上时,这些点保持原位。我希望这是我想要做的事情的足够信息,因为这是我的第一篇文章。任何和所有帮助将不胜感激。

代码的基础是:

<html>
<head>
<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>States/Cities</title>
</head>
<style media="screen">
  html,body{
  background-color: #AADAFE;
  } 
  .Vegasdot{
  height: 10px;
  width: 10px;
  border-radius: 50%;
  background-color: black;
  top: 246px;
  left: 306px;
  position: absolute;
  z-index: 2;
  }

  .SaltLakedot{
  height: 10px;
  width: 10px;
  border-radius: 50%;
  background-color: black;
  top: 88px;
  left: 395px;
  position: absolute;
  z-index: 2;
  }

  .Phoenixdot{
  height: 10px;
  width: 10px;
  border-radius: 50%;
  background-color: black;
  top: 333px;
  left: 386px;
  position: absolute;
  z-index: 2;
  }

  .statesMap{
  padding-top:3%;
  padding-left:12%;
  position: absolute;
  z-index: 1;
  }

<img src="StatesGIMP.png" alt="States Map"
class="statesMap" usemap="#States">

<span class="Vegasdot"></span>
<span class="SaltLakedot"></span>
<span class="Phoenixdot"></span>

最佳答案

这里发生了几件事。

首先,position: absolute; 是相对于其父容器的。因此,如果您将图像和圆点包装在包装器 div 中,则可以相对于此 .wrapper 定位圆点。此 .wrapper 需要 position: relative; 才能作为 position: absolute; children

的相对父级

其次,您需要用百分比定位点,以便它们随图像缩放

第三,我们应用一个transform: translate(-50%,-50%),它是相对于自身的高度和宽度的。这将使点的中心成为我们定位的位置,这样当图像缩放时点的中心保持不变

此外,我们可以通过将通用规则移动到 .dot 类中来干燥您的 css

示例:https://codepen.io/tylerfowle/pen/MrwreX

HTML:

<div class="wrapper">
  <img src="http://ontheworldmap.com/usa/usa-states-map.jpg" alt="States Map"
       class="statesMap" usemap="#States">
  <span class="Vegasdot dot"></span>
  <span class="SaltLakedot dot"></span>
  <span class="Phoenixdot dot"></span>
</div>

CSS:

html,body{
  background-color: #AADAFE;
}

.wrapper {
  position: relative;
}

.dot {
  height: 10px;
  width: 10px;
  border-radius: 50%;
  background: black;
  z-index: 2;
  position: absolute;
  transform: translate(-50%,-50%);
}
.Vegasdot{
  top: 48%;
  left: 17%;
}

.SaltLakedot{
  top: 37%;
  left: 24.5%;
}

.Phoenixdot{
  top: 60%;
  left: 22%;
}

.statesMap{
  width: 100%;
  z-index: 1;
}

关于html - 保持 css 点到位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47821669/

相关文章:

javascript - HTML/jQuery : How to properly include external jQuery file

javascript - 上传文件大小限制为 32kB,我收到错误 "CGI.pm: Server closed socket during multipart read (client aborted?)."

jquery - 在悬停时滑动输入并停留几秒钟

html - 从左到右定位一定数量的div,然后在下部再次从左到右定位

html - CSS - 没有填充的斜边框

javascript - 未捕获的类型错误 : Failed to execute 'getImageData' on 'CanvasRenderingContext2D' : The provided double value is non-finite

javascript - 是否有可能在*不*捆绑浏览器的情况下构建独立的 HTML5 应用程序?

css - 如何使用 css 使 nav 自动调整其菜单项?

css - 如何使宽度为 25% 的文本框和宽度为 75% 的图像的高度相同?

javascript - 如何在不使用输入类型数字/电话的情况下在手机上显示小键盘?