不同浏览器之间的javascript和css兼容性问题
po主手头维护的网站是上世纪的作品。当时约摸ie所占的市场份额相当大,以至于开发人员都没有考虑到浏览器兼容性问题(这不科学!)。怎奈po主是个强迫症阿。最近在修改的时候,还是没忍住,把兼容性问题解决了。一旦开始改bug,根本停不下来!
主要问题有2个:
1、浮动图标问题。低版本ie下可以实现浮动效果,firefox/高版本ie下无。察看javascript代码,原理上是用javascript对于position:absolute的div,每过固定时间(毫秒级)设置其top和left。语句如下:
img1.style.left = (xPos + document.body.scrollLeft);
img1.style.top = (yPos + document.body.scrollTop);
唔唔,不兼容的原因在于:firefox/高版本ie对于left的值只认像素值。修改成 img1.style.left=****+"px"; 即可。
2、下拉菜单问题。这段代码后来在查疑的时候搜了下,貌似是网上抄过来略作修改的,主要由css达成。其中一些css的名称阿,多余的css阿都保留着。问题在于css生成的下拉菜单无法对齐到指定位置。核心代码如下:
#nav LI A {
COLOR: #fff;
}
#nav LI UL {
Z-INDEX: 9999; BORDER-BOTTOM: #0751b0 1px solid; POSITION: absolute; TEXT-ALIGN: left; BORDER-LEFT: #0751b0 1px solid; LINE-HEIGHT: 23px; MARGIN-TOP: 26px; WIDTH: 104px; BACKGROUND: white; MARGIN-LEFT: -90px; BORDER-TOP: #0751b0 0px solid; BORDER-RIGHT: #0751b0 1px solid; LEFT: -999em; _margin-top: 26px; _margin-left: -90px
}
原理上是在mouseover的时候,把nav LI UL(下拉菜单)的left改成auto。nav LI是nav LI UL前面的区块,该2区块需要上下对齐,方法是调整MARGIN-TOP和MARGIN-LEFT。你看到啦,里面很多干扰属性。以至于我查了2个小时。。。主要是该ul的初始位置在低版本ie和firefox/高版本ie中不一样。解决的方法是:nav LI区块中所包含的有且仅有链接a,因此设置nav LI A,增加display:block。这样就可以保证初始位置一致了。(有显示,并且在left:auto这种文字流对齐的方式下,不同浏览器保持一致的占位情况。)
不同浏览器之间的javascript和css兼容性问题的更多相关文章
- IE和Firefox浏览器CSS兼容性技巧整理
转自:http://homepage.yesky.com/185/11484185all.shtml#p11484185 CSS兼容常用技巧(1) 更多精彩相关文章推荐: 各大浏览器 CSS3 和 H ...
- 表单input按钮在各浏览器之间的兼容性
从网上看了这篇关于表单input按钮的浏览器兼容性问题,总结的还不错,所以copy下来学习下. input按钮在各个浏览器之间的兼容性问题,看下边这段代码: input.item { backgrou ...
- javascript创建css、js,onload触发callback兼容主流浏览器的实现
http://www.fantxi.com/blog/archives/load-css-js-callback/ 由于需要写个函数,既可以加载css,又可以加载js,所以对各主流浏览器对加载js.c ...
- 前端福利之表单input按钮在各浏览器之间的兼容性(转)
从网上看了这篇关于表单input按钮的浏览器兼容性问题,总结的还不错,所以copy下来学习下. input按钮在各个浏览器之间的兼容性问题,看下边这段代码: input.item { backgrou ...
- 浏览器对DIV+CSS兼容性问题大总结
浏览器对DIV+CSS兼容性问题大总结 接触DIV+CSS架构已经快两年了,个人觉得css入门不难,但要学精并非一朝一夕的,现在大部分网络公司都比较主张用div+css来布局,这就面临着一个比较难的问 ...
- 重温JavaScript获取CSS样式的方法(兼容各浏览器)
众所周知,CSS样式有三种类型:行内样式.内部样式和外部样式,JavaScript获取CSS样式时分为两种情况:行内样式获取法 和 非行内样式获取法 . 一.行内样式获取相对简单,通过element. ...
- 第十一章:WEB浏览器中的javascript
客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...
- JavaScript权威指南--WEB浏览器中的javascript
知识要点 1.客户端javascript window对象是所有客户端javascript特性和API的主要接入点.它表示web浏览器的一个窗口或窗体,并且可以用window表示来引用它.window ...
- JavaScript 与 CSS 滚动实现最新指南
一些(网站)滚动的效果是如此令人着迷但你却不知该如何实现,本文将为你揭开它们的神秘面纱.我们将基于最新的技术与规范为你介绍最新的 JavaScript 与 CSS 特性,(当你付诸实践时)将使你的页面 ...
随机推荐
- epplus动态合并列数据
private static void SetColMerge(DataTable tb, ExcelWorksheet worksheet, string dtColumnName) { KeyVa ...
- jQuery动画之自定义动画
语法 $(selector).animate({params}, speed, callback); 参数: params: 必选,要执行动画的CSS属性. speed: 可选,执行动画时长. cal ...
- django分页模块--django-pure-pagination
Django自带有分页的两个类,但是用起来没有第三方这个分页模块方便,下面介绍一下这个模块的使用方法. 1. 安装模块: pip install django-pure-pagination 2. ...
- Yum:[Errno 5] [Errno 2] No such file or directory
出现这样的问题,就是因为之前python2升级到python3之后,yum有些配置文件定位不到之前的python2了,所以这里需要改掉两个配置文件就不会出事了. yum安装软件时,可以连接yum 仓库 ...
- IDEA下载安装及绿色方法
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- shell脚本--监控java进程存活脚本
#!/bin/bash base_dir=/opt war_processor="tomcat" jar_processor="manager-server.jar pl ...
- cygwin执行.py提示找不到模块,但已经安装模块的解决办法
. 在解决了cygwin中make命令不能使用的问题之后(https://www.cnblogs.com/zhenggege/p/10724122.html),make maskrcnn路径下的set ...
- vue-cli构建的项目结构解析
参考: https://www.jianshu.com/p/32beaca25c0d
- oracle 查看数据库和表命令
1.su – oracle 不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面. 2.sqlplus /nolog 或sqlplus system/manager 或./sql ...
- Ironic 裸金属实例的部署流程
目录 文章目录 目录 逻辑架构 部署架构 前提条件 部署流程 iSCSI Deploy UML PXE Deploy Driver Direct Deploy UML IPA Deploy Drive ...