如何使用纯 HTML/CSS 创建响应式图像映射?

约翰斯顿05

我希望在地图内的某些地方使用带有图钉的世界地图图片。一旦鼠标悬停在这些图钉上,我希望它们可点击,因此一旦点击,它们将跳转到网页的某个部分。我了解如何使用区域和地图标签,但我不知道如何使其响应并在图像缩小到不同屏幕尺寸的尺寸时强制区域/地图标签留在一个地方。

如果有人能指导我完成这个过程,那就太好了。我对插件不是很熟悉,所以如果可能的话,我试图远离它。

我添加了一个示例,我发现它同样代表了我正在尝试做的事情。

body {
  font-family: "bookman old style";
}

:target {
  color: lightyellow;
  background: indianred;
}

h3,
h1 {
  color: indianred;
}

img {
  border: 3px dashed indianred;
}

body {
  counter-reset: srl;
}

h3::before {
  counter-increment: srl;
  content: counter(srl)". ";
}
<h1 style="text-align:center;">The 7 Continents</h1>


<h4 style="text-align:center;">&#10148; Click on the dots in the image to go to a continent section</h4>

<map name="continents_map">
  <area shape="circle" coords="70,70,10" href="#north_america">
  <area shape="circle" coords="133,185,10" href="#south_america">
  <area shape="circle" coords="270,137,10" href="#africa">
  <area shape="circle" coords="292,44,10" href="#europe">
  <area shape="circle" coords="469,201,10" href="#australia">
  <area shape="circle" coords="374,65,10" href="#asia">
  <area shape="circle" coords="340,267,10" href="#antartica">
</map>

<figure style="text-align:center;">
  <img usemap="#continents_map" src= https://rpsthecoder.github.io/img-repo/world_continents.png width="600px" />
  <figcaption>World Map</figcaption>
</figure>


<div>
  <h3 id="africa">Africa</h3>
  <p>Africa is the world's second-largest and second-most-populous continent. At about 30.2 million km<sup>2</sup> (11.7 million sq mi) including adjacent islands, it covers six percent of Earth's total surface area and 20.4 percent of its total land area.
    With 1.1 billion people as of 2013, it accounts for about 15% of the world's human population.</p>
</div>

<div>
  <h3 id="asia">Asia</h3>
  <p>Asia is the Earth's largest and most populous continent, located primarily in the eastern and northern hemispheres. Though it covers only 8.7% of the Earth's total surface area, it comprises 30% of Earth's land area, and has historically been home to
    the bulk of the planet's human population (currently roughly 60%).</p>
</div>

<div>
  <h3 id="europe">Europe</h3>
  <p>Europe is the world's second-smallest continent by surface area, covering about 10,180,000 square kilometres (3,930,000 sq mi) or 2% of the Earth's surface and about 6.8% of its land area. Of Europe's approximately 50 countries, Russia is by far the
    largest by both area and population, taking up 40% of the continent (although the country has territory in both Europe and Asia), while Vatican City is the smallest. Europe is the third-most populous continent after Asia and Africa, with a population
    of 739–743 million or about 11% of the world's population. The most commonly used currency is the euro.</p>
</div>

<div>
  <h3 id="south_america">South America</h3>
  <p>South America has an area of 17,840,000 square kilometers (6,890,000 sq mi). Its population as of 2005 has been estimated at more than 371,090,000. South America ranks fourth in area (after Asia, Africa, and North America) and fifth in population (after
    Asia, Africa, Europe, and North America).</p>
</div>

<div>
  <h3 id="north_america">North America</h3>
  <p>North America covers an area of about 24,709,000 square kilometers (9,540,000 square miles), about 4.8% of the planet's surface or about 16.5% of its land area. As of 2013, its population was estimated at nearly 565 million people across 23 independent
    states, representing about 7.5% of the human population. Most of the continent's land area is dominated by Canada, the United States, Greenland, and Mexico, while smaller states exist in the Central American and Caribbean regions. North America is
    the third largest continent by area, following Asia and Africa, and the fourth by population after Asia, Africa, and Europe.</p>
</div>

<div>
  <h3 id="antartica">Antarctica</h3>
  <p>Antarctica is Earth's southernmost continent, containing the geographic South Pole. It is situated in the Antarctic region of the Southern Hemisphere, almost entirely south of the Antarctic Circle, and is surrounded by the Southern Ocean. At 14.0 million
    km<sup>2</sup> (5.4 million sq mi), it is the fifth-largest continent in area after Asia, Africa, North America, and South America. For comparison, Antarctica is nearly twice the size of Australia. About 98% of Antarctica is covered by ice that averages
    1.9 kilometres (1.2 mi) in thickness, which extends to all but the northernmost reaches of the Antarctic Peninsula.</p>
</div>

<div>
  <h3 id="australia">Australia</h3>
  <p>With a total land area of 8,560,000 square kilometres (3,310,000 sq mi), the Australian continent is the smallest and lowest-lying human-inhabited continent on Earth. The continental shelf connecting the islands, half of which is less than 50 metres
    (160 ft) deep, covers some 2,500,000 square kilometres (970,000 sq mi), including the Sahul Shelf and Bass Strait. As the country of Australia is mostly on a single landmass, and comprises most of the continent, it is sometimes informally referred
    to as an island continent, surrounded by oceans.</p>
</div>

谢谢。

陪伴阿菲

想法是使用您使用绝对位置放置在图像上方的标签。然后您只需使用顶部/左侧指定 % 值。

body {
  font-family: "bookman old style";
  margin: 0;
}

img {
  border: 3px dashed indianred;
  display: block;
}

figure {
  position: relative;
  display: inline-block;
}

figure a {
  position: absolute;
  width: 2%;
  height: 4%;
  border-radius: 50%;
  background: #000;
}

.north_america {
  top: 22%;
  left: 11.4%;
}

.south_america {
  top: 59.3%;
  left: 21.8%;
}
<figure style="text-align:center;">
  <a href="#north_america" class="north_america"></a>
  <a href="#south_america" class="south_america"></a>
  <img usemap="#continents_map" src="https://rpsthecoder.github.io/img-repo/world_continents.png" width="300" />
  <figcaption>World Map</figcaption>
</figure>

<figure style="text-align:center;">
  <a href="#north_america" class="north_america"></a>
  <a href="#south_america" class="south_america"></a>
  <img usemap="#continents_map" src="https://rpsthecoder.github.io/img-repo/world_continents.png" width="600" />
  <figcaption>World Map</figcaption>
</figure>
<figure style="text-align:center;">
  <a href="#north_america" class="north_america"></a>
  <a href="#south_america" class="south_america"></a>
  <img usemap="#continents_map" src="https://rpsthecoder.github.io/img-repo/world_continents.png" width="1000" />
  <figcaption>World Map</figcaption>
</figure>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章