浅谈css中的backgroundcolor="transparent"
2009-03-14 21:35
302 查看
有段时间没写文章了,一直在学校,虽然带着电脑,但是不能上网啊!最近在用javascript写一个网页版的操作系统,写好了一定发上来,写的过程中遇到很多问题,许多都是细节方面的,很麻烦,不过自己一直在努力解决,也是对自己的一种提高吧.下面我来说一下我最近遇到的一个问题.
大家知道,你用createelement新建一个div,默认情况下这个div的style中的backgroungcolor属性是transparent,呵呵,如果我做一个div的蒙板,那么请看下面一段代码:
div.style.position="absolute";
div.style.width=document.body.clientWidth+"px";
div.style.height=document.body.clientHeight+"px";
div.style.left="0px";
div.style.top="0px";
div.style.zIndex="2000";
div.style.backgroundColor="black";
div.style.filter="alpha(opacity="+0+");";
这是很多蒙板div的设置,也就是说屏蔽用户对网页上的其他元素进行操作.
我们主要看后面两行代码,前面不是已经说了嘛,div的默认backgroundcolor属性就是transparent,也就是是透明,那么我们干嘛还要多此一举去设置个black(这个无所谓,随便设置个颜色,只要不是transparent就行,也不能是空字符串,浏览器会默认将空字符串看成transparent),并且设置滤镜让他透明呢.
我自己动手做了试验,一开始还对试验结果很迷惑,但自己静下来想想便发现了其中的区别,如果我们没有上面代码的后两句,那么我们便可以对蒙板后的元素进行操作,也就是说起不到屏蔽的作用,但是这个操作是有限制的,具体说就是我们只可以对有焦点的元素进行操作,比如文本,图片,按钮等,我举个例子:
<div style="border:1px red solid;width:100px;height:100px" onclick="alert(1)">123</div>
正常情况下,只要你点击这个div的任何位置,都会alert的,但是当它被一个backgroundcolor为transparent的元素遮住的时候,我们只有点击123才会alert,因为文本是可以获得焦点的,同理其他元素也一样.顺便说下,这个backgroundcolor为transparent的元素的事件会对被它遮住的元素所截获.如果我们所触发的对象没有焦点,那么事件会交换给transparent的元素处理并按这个元素进行冒泡,否则有焦点的会事件便由有焦点的那个对象处理,不会交换,并且按有焦点的元素进行冒泡.(貌似不是很好理解,可以自己多做做试验就明白了)
这样说,大家明白了吧,这也是为什么要后两句的原因了,只有这样才能对网页元素进行完全屏蔽.
文章有不妥之处还请各位指正,本文内容在ie7.0下测试通过.
大家知道,你用createelement新建一个div,默认情况下这个div的style中的backgroungcolor属性是transparent,呵呵,如果我做一个div的蒙板,那么请看下面一段代码:
div.style.position="absolute";
div.style.width=document.body.clientWidth+"px";
div.style.height=document.body.clientHeight+"px";
div.style.left="0px";
div.style.top="0px";
div.style.zIndex="2000";
div.style.backgroundColor="black";
div.style.filter="alpha(opacity="+0+");";
这是很多蒙板div的设置,也就是说屏蔽用户对网页上的其他元素进行操作.
我们主要看后面两行代码,前面不是已经说了嘛,div的默认backgroundcolor属性就是transparent,也就是是透明,那么我们干嘛还要多此一举去设置个black(这个无所谓,随便设置个颜色,只要不是transparent就行,也不能是空字符串,浏览器会默认将空字符串看成transparent),并且设置滤镜让他透明呢.
我自己动手做了试验,一开始还对试验结果很迷惑,但自己静下来想想便发现了其中的区别,如果我们没有上面代码的后两句,那么我们便可以对蒙板后的元素进行操作,也就是说起不到屏蔽的作用,但是这个操作是有限制的,具体说就是我们只可以对有焦点的元素进行操作,比如文本,图片,按钮等,我举个例子:
<div style="border:1px red solid;width:100px;height:100px" onclick="alert(1)">123</div>
正常情况下,只要你点击这个div的任何位置,都会alert的,但是当它被一个backgroundcolor为transparent的元素遮住的时候,我们只有点击123才会alert,因为文本是可以获得焦点的,同理其他元素也一样.顺便说下,这个backgroundcolor为transparent的元素的事件会对被它遮住的元素所截获.如果我们所触发的对象没有焦点,那么事件会交换给transparent的元素处理并按这个元素进行冒泡,否则有焦点的会事件便由有焦点的那个对象处理,不会交换,并且按有焦点的元素进行冒泡.(貌似不是很好理解,可以自己多做做试验就明白了)
这样说,大家明白了吧,这也是为什么要后两句的原因了,只有这样才能对网页元素进行完全屏蔽.
文章有不妥之处还请各位指正,本文内容在ie7.0下测试通过.
相关文章推荐
- "background-color"和"bgColor"用法上区别
- android 设置各种颜色 android:background="@color/white"
- jquery设置背景图片:$(this).css("background-image","url(on.jpg)");就可以了
- 你好,色彩 android:background="@color/white" [create file color.xml at res/values/]
- 色彩大全,android:background="@color/white" [create file color.xml at res/values/]
- CSS:background-color
- 详解css中"点","井号","逗号","空格","冒号"的用法 .
- HTML&CSS——利用CSS定位背景图片 background-position
- css实现标题缩略成"..."
- PHP中的$_SERVER["HTTP_REFERER"]用法浅谈
- 详解css中"点","井号","逗号","空格","冒号"的用法
- Set terminal text color and transparent background
- [CSS Hack] border-color:transparent & filter+ClearType bug
- <link rel="stylesheet" type="text/css" href="css/index.css">是啥意思?
- pRichEdit->SetBackgroundColor(FALSE, oldclr); 只能设置一半 的背景色
- 详解css中"点","井号","逗号","空格","冒号"的用法
- Div+CSS+JQuery轻松实现选项卡"选项卡"
- (转)HTML&CSS——background: url() no-repeat 0 -64px;CSS中背景图片定位方法
- Android导入源文件没有自生成R.java和关于"@color"
- CSS文件添加 @charset "utf-8"; 可能会引起样式在IE6下失效