Home  >  Article  >  Web Front-end  >  IE8 pop-up window cannot mask the underlying link, what should I do? _html/css_WEB-ITnose

IE8 pop-up window cannot mask the underlying link, what should I do? _html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:39:151119browse

When making a web page, I created a pop-up window. IE9/Chrome/Firefox can mask the underlying link, but IE6/7/8 cannot. What should I do?
The specific code is as follows:

<!DOCTYPE html><html>  <head>	<style>	* {font-family:宋体; font-size:12px; border:0;}	</style>  	<script type="text/javascript">		function edit()		{						document.getElementById("shadow").style.visibility = 'visible';		}  	</script>  </head>  <body>  	<div id="shadow" style="text-align:center; visibility:hidden; position:absolute; left:0; top:0; width:100%; height:100%; background-color: rgba(0,0,0,0.5); z-index:100; border:0; overflow:hidden;">  		<div style="border:1px solid #57667d; background-color:#dfe8f6; top:50%; left:50%; width:502px; height:342px; margin:-171px 0 0 -251px; position: absolute; z-index:101; box-shadow:6px 8px 6px #666;" >  			<div style="float:right; margin-right:7px; margin-top:5px;"><a href="#" title="关闭" onclick="document.getElementById('shadow').style.visibility = 'hidden';">X</a></div>			<div id="editbox" style="width:100%; margin-top:30px;">我是弹出窗口,在IE6/7/8下不能遮罩住上面的超链接。请问怎么办?</div>		</div>  	</div>	<div id="content" style="width:100%; height:300px; top:80px; left:0; border:0; background-color:white; text-align:center; position:absolute; z-index:0;">	<a href="#" onclick="edit()">弹出窗口</a>  <a href="http://www.sina.com.cn">新浪网</a>	</div>  </body></html>


Reply to discussion (solution)

rgba is transparent and incompatible, so you need to use special Tools to dispose of.
CSS background color attribute value conversion v3
Online effect
Full code:

<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <style>        *{ font-family:'宋体'; font-size:12px; border:0; }        .a {            filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#7F000000', endColorstr='#7F000000');        }        :root .a {            filter:none;	 /*处理IE9浏览器中的滤镜效果*/            background-color:rgba(0,0,0,0.5);        }    </style>    <script type="text/javascript">        function edit(){            document.getElementById("shadow").style.visibility = 'visible';        }    </script></head><body><div id="shadow" class="a" style="text-align:center; visibility:hidden; position:absolute; left:0; top:0; width:100%; height:100%; background-color:rgba(0,0,0,0.5); z-index:100; border:0; overflow:hidden;">    <div style="border:1px solid #57667d; background-color:#dfe8f6; top:50%; left:50%; width:502px; height:342px; margin:-171px 0 0 -251px; position: absolute; z-index:101; box-shadow:6px 8px 6px #666;">        <div style="float:right; margin-right:7px; margin-top:5px;">            <a href="#" title="关闭" onclick="document.getElementById('shadow').style.visibility = 'hidden';">X</a>        </div>        <div id="editbox" style="width:100%; margin-top:30px;">我是弹出窗口,在IE6/7/8下不能遮罩住上面的超链接。请问怎么办?</div>    </div></div><div id="content" style="width:100%; height:300px; top:80px; left:0; border:0; background-color:white; text-align:center; position:absolute;z-index:0;">    <a href="#" onclick="edit()">弹出窗口</a>          <a href="http://www.sina.com.cn">新浪网</a></div></body></html>

To jikeytang:

Pop-up window After it appears, the link "Sina.com" is still not covered. Please help me check again. (IE8 test)

Demo: http://a7d.net46.net/dark_mask_for_IE.php

IE system is only tested on IE8

<!DOCTYPE html><html><head><style>* {	font-family: 宋体;	font-size: 12px;	border: 0;    margin:0;    padding:0;}#shadow {	text-align: center;	visibility: hidden;	position: absolute;	left: 0;	top: 0;	width: 100%;	height: 100%;	background-color: rgba(0, 0, 0, 0.5);	z-index: 100;	border: 0;	overflow: hidden;}#shadow>div {	border: 1px solid #57667d;	background-color: #dfe8f6;	top: 50%;	left: 50%;	height: 342px;	width: 502px;	margin: -171px auto auto -251px;	position: absolute;	z-index: 101;	box-shadow: 6px 8px 6px #666;}#x_btn {	float: right;	margin-right: 7px;	margin-top: 5px;}#editbox {	width: 100%;	margin-top: 30px;}#content {	width: 100%;	height: 300px;	top: 80px;	left: 0;	border: 0;	background-color: white;	text-align: center;	position: absolute;	z-index: 0;}</style><!--[if lte IE 8]><style>#mask {    display: block;    width:100%;    height:100%;    position: absolute;    background-color: black;    filter:Alpha(Opacity=50);    /* 调试用 */    /*    box-sizing: border-box;    border:20px green solid;    */}</style><![endif]--></head><body>	<div id="shadow">		<div>			<div id="x_btn">				<a href="#" title="关闭" onclick="shadow.style.visibility = 'hidden';">X</a>			</div>			<div id="editbox">我是弹出窗口,在IE6/7/8下不能遮罩住上面的超链接。请问怎么办?</div>		</div>        <!--[if lte IE 8]><a id="mask"></a><![endif]-->	</div>	<div id="content">		<a href="#" onclick="edit()">弹出窗口</a> <a href="http://www.sina.com.cn">新浪网</a>	</div></body></html><script type="text/javascript">    function edit() {        shadow.style.visibility = 'visible';    }</script>

Place mask at the front of shadow

    <div id="shadow">        <!--[if lte IE 8]><a id="mask"></a><![endif]-->        ...

Just set a z-index large enough for shadow, and other z-indexes are not needed;

If the shadow is placed at the end of the body, without using other z-index, there is no need to set the z-index for the shadow

On the 3rd floor, using a mask is redundant, you only need to set the shadow Just add the CSS specific to the lower version of IE
Demo: http://a7d.net46.net/dark_mask_for_IE.php

<!DOCTYPE html><html><head><style>* {    font-family: 宋体;    font-size: 12px;    border: 0;    margin:0;    padding:0;}#shadow {    text-align: center;    visibility: hidden;    position: absolute;    left: 0;    top: 0;    width: 100%;    height: 100%;    background-color: rgba(0, 0, 0, 0.5);    border: 0;    overflow: hidden;}#shadow>div {    border: 1px solid #57667d;    background-color: #dfe8f6;    top: 50%;    left: 50%;    height: 342px;    width: 502px;    margin: -171px auto auto -251px;    position: absolute;    box-shadow: 6px 8px 6px #666;}#x_btn {    float: right;    margin-right: 7px;    margin-top: 5px;}#editbox {    width: 100%;    margin-top: 30px;}#content {    width: 100%;    height: 300px;    top: 80px;    left: 0;    border: 0;    background-color: white;    text-align: center;    position: absolute;}</style><!--[if lte IE 8]><style>#shadow {    background-color: black;    filter:Alpha(Opacity=50);}</style><![endif]--></head><body>    <div id="content">        <a href="#" onclick="edit()">弹出窗口</a>        <a href="http://www.sina.com.cn">新浪网</a>    </div>    <div id="shadow">        <div>            <div id="x_btn">                <a href="#" title="关闭" onclick="shadow.style.visibility = 'hidden';">X</a>            </div>            <div id="editbox">我是弹出窗口,在IE6/7/8下不能遮罩住上面的超链接。请问怎么办?</div>        </div>    </div></body></html><script type="text/javascript">    function edit() {        shadow.style.visibility = 'visible';    }</script>

To neorobin:

The code on floor 5 passed under IE8, thank you very much! Let me ask you again, what should I do under IE6?

Demo: http://a7d.net46.net/dark_mask_for_IE.php
IE 6: height: 100%; Not supported; a>b selector is not supported.

The following The code IE6 has been tested and passed. IE7 has not been installed and has not been tested

<!DOCTYPE html><html><head><style>* {    font-family: 宋体;    font-size: 12px;    border: 0;    margin:0;    padding:0;}#shadow {    text-align: center;    visibility: hidden;    position: absolute;    left: 0;    top: 0;    width: 100%;    height: 100%;    _height:expression(document.documentElement.clientHeight+"px"); /* for IE6 */       background-color: rgba(0, 0, 0, 0.5);    border: 0;    overflow: hidden;}#diagbox {    border: 1px solid #57667d;    background-color: #dfe8f6;    top: 50%;    left: 50%;    height: 342px;    width: 502px;    margin: -171px auto auto -251px;    position: absolute;    box-shadow: 6px 8px 6px #666;}#x_btn {    float: right;    margin-right: 7px;    margin-top: 5px;}#editbox {    width: 100%;    margin-top: 30px;}#content {    width: 100%;    height: 300px;    top: 80px;    left: 0;    border: 0;    background-color: white;    text-align: center;    position: absolute;}</style><!--[if lte IE 8]><style>#shadow {    background-color: black;    filter:Alpha(Opacity=50);}</style><![endif]--></head><body>    <div id="content">        <a href="#" onclick="edit()">弹出窗口</a>        <a href="http://www.sina.com.cn">新浪网</a>    </div>    <div id="shadow">        <div id="diagbox">            <div id="x_btn">                <a href="#" title="关闭" onclick="shadow.style.visibility = 'hidden';">X</a>            </div>            <div id="editbox">我是弹出窗口,在IE6/7/8下不能遮罩住上面的超链接。请问怎么办?</div>        </div>    </div></body></html><script type="text/javascript">    function edit() {        shadow.style.visibility = 'visible';    }</script>

neorobin is awesome! IE6/8 are all successful! Although IE7 has some problems, it basically doesn't affect it. By the way, please tell me, I used ieTester to test, is that okay?

neorobin, awesome! IE6/8 are all successful! Although IE7 has some problems, it basically doesn't affect it. By the way, please tell me, I used ieTester to test, is that okay?



I have never used IETESTER. After searching, Microsoft itself also provides one https://www.modern.ie/zh-cn, and there is also a BrowserStack that cooperates with it. There is a fee. , I think you can use these virtual browser software or services before the development is completed. In the end, it is most guaranteed to run on a real browser on a real machine
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn