我最近在创建一个隐藏对象游戏时遇到了完全相同的问题,该游戏需要将图像放置在背景图像之上以保持其位置,而不管浏览器尺寸如何。
这是我所做的:
您可以包含背景图像的模板版本作为实际版本(因此它不可见,但仍会占用 DOM 中的空间,<img>
并visibility:hidden
以此为基础确定大小(和背景图像大小)。
HTML:
<div class="image-container">
<img src="http://www.w3.org/html/logo/downloads/HTML5_Logo_512.png" class="img-template">
<div class="item"></div>
</div>
CSS:
/* This is your container with the background image */
.image-container {
background:url('http://www.w3.org/html/logo/downloads/HTML5_Logo_512.png') no-repeat;
background-size:100%;
overflow-x: hidden;
position:relative;
}
/* This is the template that resizes the DIV based on background image size */
img.img-template {
visibility: hidden;
width:100%;
height:auto;
}
/* This is the item you want to place (plant pot) */
.item {
position: absolute;
left: 14.6%;
bottom: 80.3%;
width: 15%;
height: 15%;
background: yellow;
border: 2px solid black;
}
这是一个工作示例:http: //jsfiddle.net/cfjbF/3/