发现几处IE与firefox的js和css几处不同点
作者:guodong828 来源:星火燎原 时间:2008-02-02 10:15:00
终于完成了偶的拖动窗口,花了近15个小时,庆祝一下(*^__^*);以前写了IE下的功能,于是又写了firefox下的功能,在firefox上花了很多时间,发现了firefox中几处与IE中不同的地方:
1.firefox不能对innerText支持,也不知道为什么。firefox支持innerHTML但却不支持innerText,所以上网查了一下,原来它改支持textContent来实现innerText,不过实现得没有那么好,默认把多余的空格也保留了。如果不用textContent,如果字符串里面不包含HTML代码也可以用innerHTML代替
2.禁止选取网页内容:
在IE中一般用js:
obj.onselectstart=function(){return false;}
而firefox用CSS:
-moz-user-select:none
3.滤镜的支持(例:透明滤镜):
文章推荐:苏沈小雨css样式表滤镜中文手册chm(filter)下载;css样式表滤镜全接触
IE:filter:
alpha(opacity=10);
firefox:
-moz-opacity:.10;
4.捕获事件:
IE:obj.setCapture() 、obj.releaseCapture()
Firefox: document.addEventListener("mousemove",mousemovefunction,true);
document.removeEventListener("mousemove",mousemovefunction,true);
5.获取鼠标位置:
IE:event.clientX、event.clientY
firefox:需要事件函数传递事件对象
obj.onmousemove=function(ev){
X= ev.pageX;Y=ev.pageY;
}
6.DIV等元素的边界问题:
比如:设置一个div的CSS::
{width:100px;height:100px;border:#000000 1px solid;}
IE中:div的宽度(包括边框宽度):100px,div的高度(包括边框宽度):100px;
而firefox:div的宽度(包括边框宽度):102px,div的高度(包括边框宽度):102px;
所以在做这个兼容IE和firefox的拖动窗口时,在js和css的写法上要动点脑筋,给大家两个小技巧
一.判断浏览器类型:
var isIE=document.all? true:false;
我写了一个变量,如果支持document.all语法那么isIE=true,否则isIE=false
二.在不同浏览器下的CSS处理:
一般可以用!important来优先使用css语句(仅firefox支持)比如:
{border-width:0px!important;border-width:1px;}
在firefox下这个元素是没有边框的,在IE下边框宽度是1px
又发现几处XHTML与正常状态下的JS、CSS的区别
今天又写了兼容XHTML的版本,因为现在不是流行web标准嘛,偶不能落后啊!再说现在ASP.NET中的所有页面都是应用XHTML标准的,如果在布局页面中删了这句标准代码,里面的布局和控件visual studio就不显示了。
呵呵,在网页开头加了这个代码就是所谓的XHTML标准了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
相关阅读:网页设计选择什么样的DOCTYPE
改了一下JS和CSS,调试了N次,发现了XHTML标准下的几个不同点:
1.document.documentElement 与 document.body代码中设置页面的CSS时一定要用:document.documentElement 比如:
document.documentElement.style.overflow='hidden';
overflow-X、overflow-Y 这两个分坐标属性XHTML是不支持的;
2.在取得网页窗口区域和获取滚动条位移距离时也要用document.documentElement
即这四个属性(clientWidth、clientHeight、scrollLeft、scrollTop)一定要用document.documentElement 但是document.body.appendChild()和document.body.removeChild()却是可以用的,而且用document.documentElement.appendChild()和document.documentElement.removeChild() 代替却会报错;
所以我总结了一下仅clientWidth、clientHeight、scrollLeft、scrollTop和document.documentElement.style时才用document.documentElement
3.呵呵,加了这个标准以后IE的边框问题也出现了变化,现在和firefox趋于一致了,是不是这个就是XHTML的优点——跨浏览器的标准
上面提到:
设置一个div的CSS::
{width:100px;height:100px;border:#000000 1px solid;}
IE中(正常情况):div的宽度(包括边框宽度):100px,div的高度(包括边框宽度):100px;
firefox(正常情况)::div的宽度(包括边框宽度):102px,div的高度(包括边框宽度):102px;
加了XHTML标准后的(IE和firefox打和了,^_^):
IE中(XHTML):div的宽度(包括边框宽度):102px,div的高度(包括边框宽度):102px;
firefox(XHTML)::div的宽度(包括边框宽度):102px,div的高度(包括边框宽度):102px;


猜你喜欢
交互设计实用指南系列(9)—一次点击

JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】

使用Python脚本和ADB命令实现卸载App

Python实现自动化域名批量解析分享

无法使用pip命令安装python第三方库的原因及解决方法

vue中使用svg封装全局消息提示组件

教你使用pyqt实现桌面歌词功能

Python实现的十进制小数与二进制小数相互转换功能

区别Javascript中的Null与Undefined
Python实现列表拼接和去重的三种方式
Python初学者必须掌握的25个内置函数详解
教你pycharm运行Django第一个项目

Python存储读取HDF5文件代码解析
phpstudy无法启动MySQL服务的完美解决办法

javascript中的Function.prototye.bind
详解CSS的优先权
element跨分页操作选择详解
flask session组件的使用示例
基于Python编写一个有趣的进程勾选器(Process Selector)
