https://www.douban.com/note/314793848/ 随意的一个博客ie6的兼容

这个博客比较好 http://blog.csdn.net/chuyuqing/article/details/37561313/

这个博客更牛http://www.jb51.net/css/97298.html

ie6 http://www.cnblogs.com/duanhuajian/archive/2012/09/23/2699119.html

这个值得一看 http://www.tuicool.com/articles/6bAjim

http://blog.csdn.net/chow__zh/article/details/9132883

=======================================================

比如 两个前后的元素一个左浮动一个右浮动 在ie6就自动换行了,

比如 select在ie6是最顶层的元素,就是z-index永远是最高的,一般ie6下要套个frame

比如..

css兼容大部分上可以用hack方式解决。

js方面就更多了,

比如事件监听,非ie用addEventListener,新一点的ie用attachEvent,旧一点的(ie5)用element[onEvent]..

比如事件这个对象,非ie是用window.event调用,ie要把event作为参数调用进去

比如..

========================================================

========================================================

一些常见的js的兼容性问题

1、document.formName.item(“itemName”) 问题 
说明:IE下,可以使用document.formName.item(“itemName”)或document.formName.elements[“elementName”]; 
Firefox下,只能使用document.formName.elements[“elementName”]。 
解决方法:统一使用document.formName.elements[“elementName”]。

2、集合类对象问题 
说明:IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象。 
解决方法:统一使用[]获取集合类对象。

3、自定义属性问题 
说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性,Firefox下,只能使用getAttribute()获取自定义属性。 
解决方法:统一通过getAttribute()获取自定义属性,不过更推荐直接通过“点”运算符访问元素属性。

4、eval(“idName”)问题 
说明:IE下,可以使用eval(“idName”)或getElementById(“idName”)来取得id为idName的HTML对象,Firefox下只能使用getElementById(“idName”)来取得id为idName的HTML对象。 
解决方法:统一用getElementById(“idName”)来取得id为idName的HTML对象。

5、变量名与某HTML对象ID相同的问题 
说明:IE下,HTML对象的ID可以作为document的下属对象变量名直接使用;Firefox下则不能.Firefox下,可以使用与HTML对象ID相同的变量名;IE下则不能。 
解决方法:使用document.getElementById(“idName”)代替document.idName,最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var,以避免歧义。

6、const问题 
说明:Firefox下,可以使用const关键字或var关键字来定义常量,IE下,只能使用var关键字来定义常量。 
解决方法:统一使用var关键字来定义常量。

7、input.type属性问题 
说明:IE下input.type属性为只读,但是Firefox下input.type属性为读写。 
解决方法:可以创建两个输入框,比如平时咱们有密码框,想通过把type为password的值改为text,IE下是不允许的。

8、 window.event问题 
说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用。Firefox必须从源处加入event作参数传递。IE忽略该参数,用window.event来读取该event。 
解决方法: var e = e || window.event;

9、event.x与event.y问题 
说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;Firefox下,even对象有pageX,pageY属性,但是没有x,y属性。 
解决方法:使用var x = e.x ? e.x : e.pageX; 来代替IE下的event.x或者Firefox下的e.pageX;

10、event.srcElement问题 
说明: IE下,event对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性。 
解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target,请同时注意event的兼容性问题。

11、body问题 
说明:Firefox的body在body标签没有被浏览器完全读入之前就存在;而IE的body则必须在body标签被浏览器完全读入之后才存在。

12、firefox与IE的父元素(parentElement)的区别 
说明:IE支持parentElement和parentNode获取父节点,而FF只能使用后者。 
解决方法:统一使用parentNode;

13、innerText问题 
说明:innerText在IE中能正常工作,但是innerText在FireFox中却不行. 需用textContent。 
解决方法:elem.innerText = elem.textContent = “值”

14、样式单位问题 
说明:FireFox中设置HTML标签的style时,所有位置性和字体尺寸的值必须后跟px。这个ie也是支持的。 
15、样式关键字冲突问题 
说明:CSS属性与JavaScript中的保留关键字命名相同,IE中style+属性,非IE中css+属性。

16、class属性冲突问题 
说明:class属性冲突,class是javascript中的保留关键字。

17、年份获取问题 
说明:使用getFullYear替换getYear。

18、for属性冲突问题 
说明:lable标签的属性for冲突,在IE浏览器中getAttribute(“htmlFor”),在非IE浏览器中getAttribute(“for”)。 
19、removeChild和removeNode的问题 
说明:appendNode在IE和Firefox下都能正常使用,但是removeNode只能在IE下用,FF支持removeChild。

20、事件监听函数的问题 
说明:标准浏览器的写法addEventListener()和IE的写法attachEvent()。 
解决方法:判断addEventListener是否存在,如果存在则用否则用IE8以下的版本(含IE8)的绑定方法attachEvent,removeEventListener()和detachEvent()也是一样的用法。

21、阻止事件冒泡 
说明: stopPropagation()和cancelBubble,前者是方法,是标准的写法,后者是属性,赋值true表示阻止,是IE的写法。 
解决方法:判断stopPropagation是否存在,如果存在则用标准写法否则则用IE的写法,不可反过来判断。 
22、阻止默认事件 
说明: preventDefault()和returnValue()前者标准写法,后者IE写法。 
解决方法:一般情况建议直接使用return false阻止,但和取消默认事件的含义是不同的。

===============================================================================

===============================================================================

前端常见兼容性问题笔记

 

计算一定要精确

ie6子元素会撑开父级设置好的宽高

会出现兼容性问题 所以要计算好padding值

不要让内容的宽高超出父级设置的宽高

在ie6、7下元素浮动,

如果宽度需要内容撑开,就给里面的块元素都加浮动。

ie67下元素要通过浮动并列在一行就要都给元素加浮动  不然会出现兼容性问题

标签嵌套规范   内联不能嵌套块状

ie6最小高度问题 overflow解决

1px dotted 在ie6下不支持  解决  切背景平铺

margin 传递   浮动或者有宽高 或者

在ie6下解决margin传递要触发haslayout

在ie6下父级有边框的时候子元素margin值消失

解决 触发haslayout 尽量触发

ie6只支持 a标签的四个伪类[伪元素]

inline-block  ie6不支持块标签

浮动:

1.双倍边距bug        块 浮动 横向margin         display:inline

2.li本身没浮动内容浮动 ie6 li 内容浮动            给li加浮动     li加vertical-alian

其实就是浮动块状元素前面不能有内联文本的出现

ie6 下,下margin消失

当一行子元素占有的宽度之和和父级的宽度相差超过3px,或者有不满行状态的时候最有一行的子元素的下margin值就会失效、

ie6下文字溢出bug

原因 1.浮动元素前面有注释 或者内联元素

内联元素越多,溢出越多

子元素的宽度和父级的宽度相差小于3px的时候

解决办法用div包起来 或者把父级元素宽度调大

当浮动元素和绝对定位是并列关系的时候 绝对定位元素  会消失掉

解决办法给绝对定位元素套一层  包一个div 取消并列关系

相对定位:

在ie六下  元素有相对定位的话 父级的overflow 就包不住子级

解决办法 :给父级也加相对定位

绝对定位

在ie6下定位 元素的父级宽高是奇数的时候元素right 和bottom值会有1px的偏差 没办法解决尽量避免

固定定位 ie6不兼容。

表单元素

ie7 6下输入类型表单控件

上下有1px的间隙问题

解决:给input加浮动

boder:none失效

解决:input重新设置下背景 白色也设置下

输入文字把背景图挤出去

解决:把背景加给父级  清除自身背景 background:none;

-------------------------------------------------------------------

png问题 js文件解决

条件注释语句:

css  hack

important

margin负值  在ie6下超出父级 就被截掉

然后相对定位就可以解决

圣杯  据对定位

、等高布局

css兼容性的问题的更多相关文章

  1. css兼容性问题的整理

    css兼容性问题的整理 1.文字本身的大小不兼容.同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白1 ...

  2. CSS兼容性详解

    前面的话 对于前端工程师来说,不想面对又不得不面对的一个问题就是兼容性.在几年之前,处理兼容性,一般地就是处理IE低版本浏览器的兼容性.而近几年,随着移动端的发展,工程师也需要注意手机兼容性了.本文将 ...

  3. css 兼容性问题,整理

    css 兼容性问题,整理: css 兼容性问题 说明 <input type="number"> 在chrome下,是不能输入非数字的字符的:但是在火狐63.0.3(2 ...

  4. IE和Firefox浏览器CSS兼容性技巧整理

    转自:http://homepage.yesky.com/185/11484185all.shtml#p11484185 CSS兼容常用技巧(1) 更多精彩相关文章推荐: 各大浏览器 CSS3 和 H ...

  5. CSS 兼容性支持

    CSS 兼容性支持 在一个CSS属性还没有成为标准之前,各浏览器厂商已经做了这个属性的实现,可能各浏览器实现不尽相同,所以加入属性前缀区分. safari , chrome:-webkit- oper ...

  6. 浏览器对DIV+CSS兼容性问题大总结

    浏览器对DIV+CSS兼容性问题大总结 接触DIV+CSS架构已经快两年了,个人觉得css入门不难,但要学精并非一朝一夕的,现在大部分网络公司都比较主张用div+css来布局,这就面临着一个比较难的问 ...

  7. 解决css兼容性

    关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HA ...

  8. 前端css兼容性与易混淆的点

    一.常用的骨灰级清除浮动 .clearfix:after { content: "."; display: block; height:; clear: both; visibil ...

  9. IE7,6与Fireofx的CSS兼容性处理方法集结

    CSS对浏览器的兼容性有时让人很头疼,尤其是对于IE6这个问题多多的浏览器版本,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码 ...

  10. IE6 7下常见CSS兼容性处理

    以下是一些比较常见的IE6 7下的兼容性问题. 在当下这个时代,其实我们几乎可以不用再去针对IE6做兼容性的处理,除非你的公司还是诡异的要求你兼容到IE6.但是了解一些常见的兼容性问题还是可以帮助我们 ...

随机推荐

  1. python 解析json loads dumps

    认识 引用模块 重要函数 案例 排序 缩进参数 压缩 参考 认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standa ...

  2. Storm calculate pv

    本题其实就是storm的wordcout,需要把一个gz压缩的文件读取,并使用storm计算其pv. 样本 数据: 存储为accesslog.gz 我把它加载到我的虚拟机中/mnt/下. 没有使用tr ...

  3. Cassandra 分布式集群

    1 实施Cassandra集群,并验证集群功能正常,抓图实验过程 2 为什么说对于布隆过滤器有"确定某个元素是否在某个集合中的代价和总的元素数目无关"?误判率和元素数目有关吗?为什 ...

  4. 调用手机话费充值API的SDK编写思路

    思路 通过将SDK方法中返回的数据划分为正常返回数据以及错误返回的数据两部分,让调用者更简单的对接口调用错误进行处理. 将SDK调用第三方服务接口的流程划分为: 数据准备,http请求,结果处理三部分 ...

  5. MIT jos 6.828 Fall 2014 训练记录(lab 5)

    源代码参见我的github: https://github.com/YaoZengzeng/jos File system perliminaries 我们开发的是一个单用户的操作系统,只提供了足够的 ...

  6. 分享十二个有用的jQuery代码

    分享7个有用的jQuery代码 这篇文章主要介绍了7个有用的jQuery技巧分享,本文给出了在新窗口打开链接.设置等高的列.jQuery预加载图像.禁用鼠标右键.设定计时器等实用代码片段,需要的朋友可 ...

  7. 翻译《Writing Idiomatic Python》(二):函数、异常

    原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...

  8. codeforces 477A A. Dreamoon and Sums(数学)

    题目链接: A. Dreamoon and Sums time limit per test 1.5 seconds memory limit per test 256 megabytes input ...

  9. POJ 1556 The Doors --几何,最短路

    题意: 给一个正方形,从左边界的中点走到右边界的中点,中间有一些墙,问最短的距离是多少. 解法: 将起点,终点和所有墙的接触到空地的点存下来,然后两两之间如果没有线段(墙)阻隔,就建边,最后跑一个最短 ...

  10. 过滤掉combobox里名称相同的选项

    var pname = ""; $('#PartName').combobox({ reload: url, formatter: function (row) {//过滤comb ...