0

0

IE8弹出窗口不能遮罩底层的链接,怎么办?_html/css_WEB-ITnose

php中文网

php中文网

发布时间:2016-06-24 11:39:15

|

1297人浏览过

|

来源于php中文网

原创

制作网页时,做了一个弹出窗口,IE9+/Chrome/Firefox都能将底层链接遮罩,但IE6/7/8不能遮罩,请问怎么办?
具体代码如下:

<!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>


回复讨论(解决方案)

rgba这个透明不兼容,需要用特别的工具来处理掉。
CSS背景颜色属性值转换 v3
在线效果
完整代码:

<!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:

弹窗出现后,仍然没有遮罩住“新浪网”这个链接,请再帮忙看看。(IE8测试)

演示:  http://a7d.net46.net/dark_mask_for_IE.php

IE 系仅在 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>

把 mask 放在 shadow 里最前面位置

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

只需给 shadow 设置一个足够大的 z-index 就行了, 其他的 z-index 都不需要了;

如果把 shadow 放在 body 的最后部, 在没有用其他 z-index 的情况下, shadow 也不用设置 z-index 了

3楼 用了一个 mask 是多余的, 只需要给 shadow 加上低版本 IE 专用的 CSS 就行了
演示:  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:

5楼的代码在IE8下通过了,非常感谢!再请教一下,IE6下怎么办呢?

演示:  http://a7d.net46.net/dark_mask_for_IE.php
IE 6: height: 100%; 不支持;    a>b 选择器不支持.

以下代码 IE6 已测试通过.   IE7 没安装, 没做测试

<!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,真牛! IE6/8都成功了!IE7虽然有点问题,但基本不影响了。对了,请教一下,我是用ieTester测试的,可以吗?

neorobin,真牛! IE6/8都成功了!IE7虽然有点问题,但基本不影响了。对了,请教一下,我是用ieTester测试的,可以吗?



我没有用过 IETESTER, 搜了下, 微软自己也提供了一个  https://www.modern.ie/zh-cn,  还有个与它合作的 BrowserStack. 收费的, 我觉得开发完成前可以用下这些虚拟的浏览器软件或者服务, 到最后还是在实机真实浏览器上跑最有保证

Novelist AI
Novelist AI

专为小说创作者设计的AI小说写作工具,在线创建自己的小说和互动书籍

下载

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

3

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

12

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

69

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

59

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

46

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

24

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

20

2026.02.27

Golang 测试与调试专题:确保代码可靠性
Golang 测试与调试专题:确保代码可靠性

本专题聚焦 Golang 的测试与调试体系,系统讲解单元测试、表驱动测试、基准测试与覆盖率分析方法,并深入剖析调试工具与常见问题定位思路。通过实践示例,引导建立可验证、可回归的工程习惯,从而持续提升代码可靠性与可维护性。

4

2026.02.27

漫蛙app官网链接入口
漫蛙app官网链接入口

漫蛙App官网提供多条稳定入口,包括 https://manwa.me、https

348

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

时间管理,自律给我自由
时间管理,自律给我自由

共5课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号