基于 CSS 的图像映射的不变缩放
invariant scaling for CSS based image map
我正在使用基于 CSS 的图像映射,无论浏览器的大小如何,我都想正确显示它 window。当然其实还有多个链接。
我的 HTML ...
<div id="sitemap" >
<img src="img.jpg" class="center"/>
<a href="url1.html" id='id1'></a>
</div
还有 CSS ...
#sitemap img{
max-width: 100vw;
max-height: 100vh;
position: relative;
}
#sitemap a {
display: block;
position: absolute;
}
#sitemap a:hover {
background: rgba(255, 255, 0, 0.5);
border-radius: 20px;
}
a#archive {
top: 48%;
margin-left: 14%;
width: 20%;
height: 15%;
}
这在又高又窄的浏览器中效果很好,但是当浏览器 window 比高度宽时,百分比会考虑空白边栏中的死 space。如何让百分比只考虑实际图像?
所以你知道原因。
这是因为 div(id=sitemap) 的宽度。
这个怎么样?
#sitemap {
/* for debug background-color: red; */
/* make sure the div width only size of contents */
display: inline-flex;
/* You set position relative to "img", but it semmed doesn't work because it isn't a parent‐child relationship */
position: relative;
}
#sitemap img{
max-width: 100vw;
max-height: 100vh;
/* position: relative; */
}
a#archive {
/* I think it's good enough setting two properties, unless you aren't particular about the details. */
top: 10%;
left: 10%;
}
我正在使用基于 CSS 的图像映射,无论浏览器的大小如何,我都想正确显示它 window。当然其实还有多个链接。
我的 HTML ...
<div id="sitemap" >
<img src="img.jpg" class="center"/>
<a href="url1.html" id='id1'></a>
</div
还有 CSS ...
#sitemap img{
max-width: 100vw;
max-height: 100vh;
position: relative;
}
#sitemap a {
display: block;
position: absolute;
}
#sitemap a:hover {
background: rgba(255, 255, 0, 0.5);
border-radius: 20px;
}
a#archive {
top: 48%;
margin-left: 14%;
width: 20%;
height: 15%;
}
这在又高又窄的浏览器中效果很好,但是当浏览器 window 比高度宽时,百分比会考虑空白边栏中的死 space。如何让百分比只考虑实际图像?
所以你知道原因。 这是因为 div(id=sitemap) 的宽度。 这个怎么样?
#sitemap {
/* for debug background-color: red; */
/* make sure the div width only size of contents */
display: inline-flex;
/* You set position relative to "img", but it semmed doesn't work because it isn't a parent‐child relationship */
position: relative;
}
#sitemap img{
max-width: 100vw;
max-height: 100vh;
/* position: relative; */
}
a#archive {
/* I think it's good enough setting two properties, unless you aren't particular about the details. */
top: 10%;
left: 10%;
}