css 响应式背景图片贴图

标签 css background imagemap

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

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>

最佳答案

如果我正确理解了您的目标,那么我认为您的页面高度有问题。当您删除 IMG 时,您的 div 会崩溃,因为其中不包含其他 block 元素。

一种解决方案是将 100% 的高度分配给所有相关的 div,包括您的 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%;
}

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

关于css 响应式背景图片贴图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20009361/

相关文章:

html - 我的 CSS 规则部分起作用。你能帮助我吗?

swift - 当应用程序处于后台时,Alamofire 后台上传不会打印进度

jsf - 将初始化参数从 JSF View 传递到后台托管 bean

css - IMAGE MAPS 和 CSS SPRITES 之间的区别

jquery - 如何通过将鼠标悬停在另一个映射图像区域上来显示小图像和段落?

javascript - 即时创建链接区域

javascript - particles.js 没有覆盖整个页面

css - 悬停时更改元素的顶部高度

jquery - 标题下方的响应式全屏叠加导航

html - 如何定位像 wanderfly.com 这样的背景图片?