I'm trying to make responsive image map from background. It doesn't have to be very precise so I was looking for solution with css image map. I found example that suits my needs but image is placed inside a div and I want it to be full screen background. I was trying to make it work with background-size: cover;
but it breaks image maps. Heres whole code:
CSS
html, body {padding:0; margin:0; width:100%; min-height:100%;}
.wrapper {width:100%; height:100%; }
.page {width:100%; margin:0 auto;}
.imageMap {width:100%; position:relative; margin-bottom:200px;}
.imageMap img {display:block; width:100%; }
.imageMap .hotspots {width:100%; height:100%; position:absolute; left:0; top:0; visibility:hidden;}
.imageMap a {display:block; position:absolute; background:#000; z-index:100; opacity:0.2; filter: alpha(opacity=20); border:1px solid transparent; border-radius:10px;}
.imageMap a.p1 {left:11%; top:5%; width:25%; height:34%;}
.imageMap a.p2 {left:76%; top:13%; width:21%; height:30%;}
.imageMap a.p3 {left:5%; top:44%; width:22%; height:42%;}
.imageMap a.p4 {left:28%; top:41%; width:26.5%; height:43%;}
.imageMap a.p5 {left:55%; top:64%; width:15%; height:26%;}
.imageMap a.p6 {left:72%; top:53%; width:25%; height:35%;}
.imageMap a + p {position:absolute; left:0%; top:102%; width:100%; color:#000; display:none;}
.imageMap:hover .hotspots {visibility:visible;}
.imageMap p strong {display:block; padding:0; margin:0; font: bold 25px/30px 'times new roman',serif; color:#000;}
.imageMap p {padding:0; margin:0; font: normal 18px/22px 'times new roman',serif; color:#444;}
.imageMap .hotspots div:hover b {width:0; padding:0;}
.imageMap .hotspots div:hover p {display:block;}
.imageMap .hotspots div:hover a {background:#fff; z-index:100; opacity:0.3; filter: alpha(opacity=30); }
HTML
<div class="wrapper" onclick="">
<div class="page">
<div class="imageMap" aria-haspopup="true">
<img src="images/bg.jpg" alt="" />
<div class="hotspots">
<div><a href="#" class="p1" rel="nofollow"></a></div>
<div><a href="#" class="p2" rel="nofollow"></a></div>
<div><a href="#" class="p3" rel="nofollow"></a></div>
<div><a href="#" class="p4" rel="nofollow"></a></div>
<div><a href="#" class="p5" rel="nofollow"></a></div>
<div><a href="#" class="p6" rel="nofollow"></a></div>
</div>
</div>
</div>
</div>
If I understand your goal correctly, then I think you have a problem with the height of your page. When you remove the IMG your divs collapse, because there are no other block elements contained within them.
One solution is to assign a height of 100% to all the relevant divs, including your body.
body {
width: 100%;
height: 100%;
background-image: url('bg.jpg');
background-size: cover;
}
.wrapper {
width:100%;
height:100%;
}
.page {
width:100%;
height: 100%;
}
.imageMap {
width:100%;
height: 100%;
}
Working example: http://jsfiddle.net/e3AUx/