2013-11-15 217 views
4

我想从背景制作响应式图像地图。它不必非常精确,所以我一直在寻找解决方案与CSS图像映射。我找到适合我需求的示例,但图像放在div中,我希望它成为全屏幕背景。我试图使它与background-size: cover;一起工作,但它破坏了图像映射。继承人整个代码:css响应式背景图像地图

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> 

回答

3

如果我正确理解你的目标,那么我认为你必须与你的页面的高度问题。当你移除IMG时,你的div会崩溃,因为它们中没有其他的块元素。

一个解决方案是将100%的高度分配给所有相关的divs,包括你的身体。

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%; 
} 

工作例如:http://jsfiddle.net/e3AUx/