[英]responsive html overlay on top of page with close button
我正在尝试创建响应式html叠加层(包含一个图像和关闭按钮)。 它应该从页面顶部向下30px。
我尝试下面的代码:
HTML
<div class="wrapper">
<div class="overlaymain">
<img class="overlayimage" src="http://assets.cobaltnitra.com/teams/repository/export/v/1/391/435a06bcb100589f410145edef087/391435a06bcb100589f410145edef087.png">
</div>
</div>
CSS
.wrapper {
position:relative;
height:100%;
background:red;
opacity:0.9;
}
.overlaymain {
top:30px;
position:absolute;
}
我无法使其工作。
您可以尝试以下操作-它使用css3来使叠加图像保持居中状态(使用下面的代码段中的完整页面链接,并调整浏览器的大小以进行测试),并且可以在所有主流浏览器中使用。
我不确定wrapper div的用途,所以我将其删除。 您可以根据需要将其添加回去,因为它与下面的代码没有任何区别。
var overlay = $('.overlay'), close = $('<div class="close">close</div>'); overlay.append(close); $(overlay, close).on('click', function () { overlay.fadeOut(); });
.overlay { position:fixed; left:0; right:0; top:30px; bottom:0; background:rgba(255, 0, 0, 0.7); /* use this so that the image doesn't go opaque too */ } .overlay > img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); /* center the image in the overlay */ } .close { border-radius:5px; color:#ffffff; background-color:#000000; display:inline-block; padding:5px 10px; position:absolute; bottom:10px; right:10px; cursor:pointer; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> watsapppwatsapppwatsappp <br> <br>watsapppwatsapppwatsappp <div class="overlay"> <img class="overlayimage" src="http://assets.cobaltnitra.com/teams/repository/export/v/1/391/435a06bcb100589f410145edef087/391435a06bcb100589f410145edef087.png"> </div>
在包装器CSS中进行更改
.wrapper {
position:absolute;
background:red;
opacity:0.5;
top:30px;
}
.overlaymain {
position:absolute;
}
嗯,您没有将内容放入包装器中。 我假设包装器是您的常规内容,而overlaymain是您的覆盖物。
http://jsfiddle.net/u0kp6k0x/5/
<div class="wrapper">watsapppwatsapppwatsappp
<br />
<br />watsapppwatsapppwatsappp
<div class="overlaymain">
<img class="overlayimage" src="http://assets.cobaltnitra.com/teams/repository/export/v/1/391/435a06bcb100589f410145edef087/391435a06bcb100589f410145edef087.png">
</div>
</div>
试试这个CSS,它应该可以工作:
.wrapper {
background:red;
opacity:0.9;
position:absolute; /*needed*/
display: block; /*needed*/
height:350px; /*choose desired height*/
width: 550px; /*choose desired width*/
top: 30px; /*distance to page-top*/
left: 0; /*needed*/
right: 0; /*needed*/
margin: auto; /*this centers the div horizontally*/
}
.overlaymain {} /*this is not needed for the overlay*/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.