渐变色 filter:progid:DXImageTransform.Microsoft.Gradient 影响div的鼠标响应区域?

本文探讨了在Internet Explorer浏览器中使用特定的CSS渐变色会导致div元素上的鼠标按下事件无法正常触发的问题,并提供了解决方案。

引用地址:http://nongfuit.com/problem/html_1246.aspx


我在CSS文件中设置了一个类以设置某div属性,其中加入了渐变色:

filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr= '#C3DAF5 ', endColorStr= '#edf5ff ', gradientType=1);

在我的代码中,设置了对div的onmousedown事件,我在运行时发现只有点击该区块上文字才会触发事件,甚郁闷!!! 我在网了查了下资料,加上了hasLayout的属性,依然不行。最后调试发现罪魁祸首居然是filter:progid:DXImageTransform.Microsoft.Gradient(),请问各位大侠这是什么原因引起的,thx!!
回答 1:
用这个渐变把

<div onMouseDown= "javascript:alert( 'aa '); "STYLE= "width:200px; FILTER: Alpha( style=1,opacity=25,finishOpacity=100,
startX=50,finishX= 100,startY=50,finishY=100);
background-color: skyblue; "> 渐变 </div>

解决方式可以参照Sina的Css,IE就背景色了

.seconenav .messagebox .mess_num{ border:2px solid #fff;
background-color:#ca0206;
background-image:-webkit-gradient(linear, left top, left bottom, from(#f59499), to(#ca0206));
background-image:-webkit-linear-gradient(top, #f59499, #ca0206);
background-image:-moz-linear-gradient(top, #f59499, #ca0206);
background-image:-ms-linear-gradient(top, #f59499, #ca0206);
background-image:-o-linear-gradient(top, #f59499, #ca0206);
background-image:linear-gradient(top, #f59499, #ca0206);
position:absolute; right:-2px; top:-6px; height:20px; line-height:20px;-webkit-border-radius: 18px;-moz-border-radius:18px;-ms-border-radius: 18px;border-radius: 18px; padding:0px 6px; color:#fff; font-size:14px;-webkit-box-shadow:2px 2px 12px #ccc; font-weight:900}


### 设置 `div` 上下渐变背景的 CSS 教程与示例 在 CSS 中,可以通过 `linear-gradient` 函数实现上下方向的背景渐变效果。该函数允许指定渐变的方向以及颜色过渡的多个停止点,从而创建平滑的渐变背景。 要实现从上到下的渐变背景,可以使用 `to bottom` 作为方向参数,后接多个颜色停止点。例如,一个从深蓝色渐变到浅蓝色的背景可以这样定义: ```css background: linear-gradient(to bottom, #003366, #66ccff); ``` 这种写法适用于现代浏览器,并且可以进一步扩展,例如添加透明度变化。例如,通过 `rgba()` 颜色格式设置透明度值,可以实现背景的上下虚化效果: ```css background-image: linear-gradient(to bottom, rgba(171, 0, 0, 0.7) 0%, rgba(171, 0, 0, 0.3) 15%, rgba(13, 36, 67, 0) 50%, rgba(171, 0, 0, 0.3) 85%, rgba(171, 0, 0, 0.7) 100%); ``` 此代码定义了一个从红色渐变到透明再回到红色的背景,其中 `0%` 到 `100%` 表示颜色过渡的相对位置[^3]。 为了兼容不同浏览器,还可以添加浏览器前缀,例如 `-webkit-`、`-moz-` 和 `-o-`,以确保在旧版本浏览器中也能正常显示: ```css background: -webkit-linear-gradient(top, #003366, #66ccff); background: -moz-linear-gradient(top, #003366, #66ccff); background: -o-linear-gradient(top, #003366, #66ccff); background: linear-gradient(to bottom, #003366, #66ccff); ``` 此外,还可以通过 `filter` 属性实现 Internet Explorer 浏览器的渐变背景支持,尽管该方法在现代开发中已不推荐使用: ```css filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0, startColorStr=#003366, endColorStr=#66ccff); ``` 下面是一个完整的 CSS 示例,展示如何为 `div` 设置上下渐变背景: ```html <style type="text/css"> .linear { width: 100%; height: 600px; background: -webkit-linear-gradient(top, #003366, #66ccff); background: -moz-linear-gradient(top, #003366, #66ccff); background: -o-linear-gradient(top, #003366, #66ccff); background: linear-gradient(to bottom, #003366, #66ccff); filter: progid:DXImageTransform.Microsoft.Gradient(gradientType=0, startColorStr=#003366, endColorStr=#66ccff); } </style> <body> <div class="linear"></div> </body> ``` 此代码定义了一个高度为 600px 的 `div`,其背景从顶部的深蓝色(`#003366`)渐变到底部的浅蓝色(`#66ccff`)[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值