首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按比例调整子图像与父图像的大小?

如何按比例调整子图像与父图像的大小?
EN

Stack Overflow用户
提问于 2021-11-01 11:52:04
回答 2查看 140关注 0票数 3

我有一个很大的图像,换句话说,一张地图。我还有一些标记附在地图的某些位置上。在下面,您可以看到一个示例。

映射和标记被包装在map-wraper中,并被定位为绝对。

代码语言:javascript
复制
<div class="map-wrapper">
  <img src="map.png" id="map" alt="Map">
  <img src="marker-1.png" id="marker-1" alt="Shop">
  <img src="marker-2.png" id="marker-2" alt="House">
</div>

CSS

代码语言:javascript
复制
.map-wrapper {
  position: relative;
}

#map {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

#marker-1 {
  position: absolute;
  top: 140px;
  left: 300px;
}

#marker-2 {
  position: absolute;
  top: 80px;
  left: 40px;
}

问题是,当我调整浏览器的大小时,标记就不正确了。我希望这些标记也能按照父母的比例调整大小。在这种情况下,map-wrapper

我尝试过这个CSS技巧,但没有帮助。https://css-tricks.com/scaled-proportional-blocks-with-css-and-javascript/

我之所以不只是将标记与地图合并,是因为我想给标记设置悬停效果。

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-01 12:13:50

保持标记在地图上的位置

对标记的topleft CSS属性使用相对百分比单位。

这样,相对于相对定位的父容器<div class="map-wrapper">,标记应该保持在相同的位置。

代码语言:javascript
复制
#marker-1 {
  position: absolute;
  top: ...%;
  left: ...%;
}

#marker-2 {
  position: absolute;
  top: ...%;
  left: ...%;
}

保持标记相对包装尺寸()的大小

对标记的height使用相对百分比单位,并将其width设置为auto

这样,标记相对于相对定位的父容器的<div class="map-wrapper">高度应该保持相同的大小。

代码语言:javascript
复制
#marker-1 {
 ... some properties here...
 height: ...%;
 width: auto;
}

#marker-2 {
 ... some properties here...
 height: ...%;
 width: auto;
}
票数 3
EN

Stack Overflow用户

发布于 2021-11-01 12:01:53

使用calc()函数根据浏览器大小(%)计算位置。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69796534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档