【转载】神奇的css属性pointer-events

绝对定位元素盖住链接或添加某事件handle的元素后,那么该链接的默认行为(页面跳转)或元素事件将不会被触发。
现在Firefox3.6+/Safari4+/Chrome支持一个称为pointer-events的css属性。使用该属性可以决定是否能穿透绝对定位元素去触发下面元素的某些行为。如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS:pointer-events</title>
<style type="text/css">
    .overlay1 {
        width:80px;
        height:20px;
        background:gold;
        position:absolute;
        top:5px;
        left:5px;
        opacity:0.5;
    }
    .overlay2 {
        width:80px;
        height:20px;
        background:gold;
        position:absolute;
        top:40px;
        left:5px;
        opacity:0.5;
    }
    .pointer{pointer-events:none;}
</style>
<script type="text/javascript">
window.onload = function(){
    document.getElementById(‘chx‘).onclick = function(){
        document.getElementById(‘a‘).className
            = "overlay1 " + ((this.checked)? "pointer" : "");
        document.getElementById(‘b‘).className
            = "overlay2 " + ((this.checked)? "pointer" : "");
    }
}
</script>
</head>
<body>
    <div id="a" class="overlay1"></div>
    <div id="b" class="overlay2"></div>
    <a href="http://mail.sina.com.cn">SinaMail</a>
    <br/><br/>
    <span onclick="alert(3);">SinaMail</span>
    <p>
        <input id="chx" type="checkbox">
        <label for="chx">开启穿透点击</label>
    </p>
</body>
</html>

默认情况下,链接和span元素被绝对定位的两个div都遮住了。分别点击后无反应,即无法触发链接a的默认行为,无法触发span元素的click事件。但开启穿透点击后支持pointer-events的浏览器Firefox/Safari/Chrome中再次点击链接和span则可以触发相应的行为。

时间: 2024-12-15 01:35:16

【转载】神奇的css属性pointer-events的相关文章

javascript操作html元素CSS属性

下面先记录一下JS控制CSS所使用的方法. 1.使用javascript更改某个css class的属性... <style type="text/css"> .orig { display: none; } </style> 你想要改变把他的display属性由none改为inline. 解决办法: 在IE里: document.styleSheets[0].rules[0].style.display = "inline"; 在firef

bootstrap学习之利用CSS属性pointer-events禁用表单控件

参考链接: CSS3 pointer-events:none应用举例及扩展 首先pointer-events在除去SVG中的应用只有两个值:AUTO | NONE pointer-events:none 该属性可以让应用此属性的元素都会变成“真空”,比如:一个a连接上面覆盖一个div,当该div的css属性中有该属性时,该div就像不存在一样,可以直接点击到下方的a标签 这是一个很神奇的属性,Bootstrap就是利用这个属性,实现禁用控件的效果. Bootstrap中实现禁用效果有两个方法:

常见CSS属性及值

PHP程序员必须掌握的常见CSS属性及值: 一.内容简介: 1. 字体 2. 文本 3. 背景 4. 位置 5. 边框 6. 列表 7. 其他 二.CSS中修饰字体的属性 属性 描述 属性值 Font-family 字体族科 任意字体族科名称都可以使用Times.serif等,而且多个族科的赋值是可以使用的,中间用逗号分隔开,以防止选择不存在的字体族科. Font-size 字体大小 可以使用绝对大小.相对大小.长度或百分比 Font-style 字体风格 Normal(普通).italic(斜

background-size CSS属性[刚刚看到,分享给大家]

如果问是什么让所有男人都生活中恐惧中,回答是不确定.没有人表露,但好奇会害死猫.十个女人中会有九个同意这点.广告商想尽办法让我们觉得不足够,但会告诉我们还可以改进.没错,先生们-.size很重要. 我说的是background-size.CSS里的background-size属性能够让程序员决定如何在指定的元素里展示.MooTools程序员Christoph Pojer在他的网站上运用了background-size技术,使得在浏览器上他的头像始终"全面覆盖"在页头上--甚至是在手机

css属性大全

SS 属性大全文字属性「字体族科」(font-family),设定时,需考虑浏览器中有无该字体.「字体大小」(font-size),注意度量单位.<绝对大小>|<相对大小>|<长度>|<百分比>(一般设置双数)「字体加粗」(font-weight),除了 normal(正常).bold(粗体).bolder(特粗).lighter(细体)外,还有9种以像素为度量为单位的设置方式(100,200,300,400,500,600,700,800,900).「字体

用JavaScript修改CSS属性的代码

用JavaScript修改CSS属性的代码 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-06我要评论 这篇文章主要介绍用原生的javascript修改CSS属性的方法,需要的朋友可以参考下 用JavaScript修改CSS属性 只有写原生的javascript了. 1.用JS修改标签的 class 属性值: class 属性是在标签上引用样式表的方法之一,它的值是一个样式表的选择符,如果改变了 class 属性的值,标签所引用的样式表也就更换了,所以这属于第一种修改方法. 更

IE7浏览器下CSS属性选择器二三事

一.为何专门说起IE7 以前,或者说数年前,我们从事桌面端网页开发的时候,基本上都还要兼顾IE6浏览器, 即使有些特性,IE7支持,我们也会忽略之.于是,我们会不自然地把IE6和IE7浏览器归为一路货色,研究的多半是两个浏览器共性的东西,比方说haslayout之类的. 但是,最近1~2年,至少我个人所从事的桌面PC项目都不需要管IE6浏览器(0.3%)了,但是,还是要关心IE7浏览器(3%+)的.虽然,我们有丰富的处理IE6浏览器的经验,但是,当我们不要管IE6浏览器的时候,我们前端技术的选型

CSS 属性 - position讲解

postion 属性定义了一个元素在页面布局中的位置以及对周围元素的影响.该属性共有5个值: 1. position: static2. position: inherit3. position: relative4. position: absolute5. position: fixed 依次讲解这5个值的应用. position: static static 为position 属性的默认值,static 元素会遵循正常的文档流,且会忽略 top,bottom,left,right 等属性

Mozilla推荐的CSS属性书写顺序及命名规则

传说中的Mozilla推荐 Java代码   /* mozilla.org Base Styles * maintained by fantasai */ /* Suggested order: * display * list-style * position * float * clear * width * height * margin * padding * border * background * color * font * text-decoration * text-alig