2013-11-15 258 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/