CSS, HTML, JavaScript等兼容性问题案例分析及解决

为什么80%的码农都做不了架构师?>>>   hot3.png

更多请参见:http://www.w3help.org/zh-cn/causes/

  • 渲染-HTML相关

    • [HH] SGML与HTML
    • HH8001: 在 Firefox 中注释内容中如果包含 '-' 字符在某些情况下会使该注释解析错误
    • [HR] HTML文档描述
    • HR9001: 各浏览器对于字符编码别名支持的宽泛程度存在差异
    • [HD] 基本HTML数据类型
    • HD9001: 各浏览器对 URI 中非 ASCII 字符的处理有差异
    • [HG] HTML文档的全局结构
    • HG8001: DTD 之前的非空白字符在某些情况下会使该 DTD 失效
    • HG1002: Chrome 和 Safari 中标签紧密相邻的行内元素在折行显示时存在错误
    • HG2003: META 标签的 content 属性中使用非 ';' 的符号做数据分割时在某些浏览器中不会被识别
    • [HT] 文本
    • HT1001: IE6 IE7 IE8(Q) 会忽略 OBJECT 和 IFRAME 标签之后的空白符
    • HT1002: IE Opera 对 OBJECT 元素之前的 'non-breaking space' 处理有误
    • HT1003: Chrome 和 Safari 中 BR 元素前的空白符不会被忽略
    • [HE] 表格
    • HE1001: IE 中单元格的 colspan 属性在某些情况下会影响 TABLE 元素的自动布局
    • HE8002: Firefox 在 TABLE 元素的宽度属性 (Attribute) 值大于 100% 时会以 100% 计算
    • HE1003: IE 支持某些非 TD 和 TH 元素上的 noWrap 属性
    • HE1004: IE8(S) Firefox Chrome Safari 不再支持 COL 及 COLGROUP 元素的部分属性及为其设定的 CSS 特性
    • HE1005: 各浏览器中对于拥有水平单元格间隙的表格元素内存在过度设定的 colspan 属性的单元格的渲染存在差异
    • [HJ] 链接
    • HJ2001: 各浏览器对 BASE 元素前后的超链接的默认 target 处理存在差异
    • [HO] 嵌入对象
    • HO8001: 各浏览器下使用 OBJECT 元素和 EMBED 元素嵌入 Flash 存在差异
    • HO1002: IMG 元素的 src 属性为空时其尺寸在各浏览器中不一致
    • HO3003: IE6 IE7 IE8(Q) 中 IMG 元素的 alt 属性在没有 title 属性的情况下会被当作提示信息使用
    • HO3004: IE6 不支持 PNG24 格式图片的半透明效果
    • HO9005: 只有 IE6 中给 IMG 设置相同的 src 时会重载图片
    • HO9006: Firefox Opera 不支持通过为 OBJECT 元素设置 classid 引入 Windows 下的 Media Player 或 Flash 插件
    • HO1007: Firefox Opera 中 OBJECT 元素的默认尺寸为不可视
    • HO9008: IE Opera 中可以通过 MAP 元素的 id 属性与 IMG 元素相关联
    • HO2009: 各浏览中对 MAP 和 AREA 元素的事件处理行为不同
    • [HA] 对齐,字体样式和分割线
    • HA8001: 在 IE6 IE7 IE8(Q) 中 CENTER 元素自身也会居中对齐,在 IE(S) 与 Opera(S) 中还会使其包含的表格中的文本居中对齐
    • HA1003: 各浏览器对 align='middle' 的理解有差异
    • [HM] 帧
    • HM9001: Chrome Safari Firefox 中 IFRAME 元素在文档树中发生变化后父子页面间的某些交互方式会失效
    • HM1002: 各浏览器对 'marginwidth' 和 'marginheight' 属性的错误设定值的处理不同
    • HM8003: 各浏览器对 BODY 元素或通常被放置在 BODY 元素内的元素出现在第一个 FRAMESET 元素之前时所生成的文档树存在差异
    • [HF] 表单
    • HF3001: 不同内核的浏览器中文件选择控件的外观也不相同
    • HF1002: 不能以 size 属性精确控制 INPUT 文本框或密码框的宽度
    • HF3003: 各浏览器中密码框掩码的外观不完全一致
    • HF1004: IE6 IE7 IE8(Q) 中 FIELDSET 元素的宽度不是 'auto' 时的表现与行内元素相同
    • HF3005: 仅在 IE6 IE7 IE8中 'disabled' 属性可以作用于非表单控件元素
    • HF3006: Chrome Safari Opera 中 INPUT、TEXTAREA 元素的 disabled 属性值为 true 时其前景颜色会发生变化,但在 Chrome Safari 中某些情况下 disabled 属性值由 true 转为 false 后,其前景颜色不会更新至最初的设定色
    • HF1007: Firefox 中 TEXTAREA 元素根据 'rows' 设置值生成的实际行数为设置值 + 1
    • HF1008: Firefox Opera 中 BUTTON 元素的子元素可以溢出按钮渲染
    • HF9009: 各浏览器对表单元素单选按钮组设置非 CDATA 标准的 name 属性值解析不同
    • HF1010: INPUT[type=file] 的 'value' 属性值在各浏览器中存在差异
    • HF5011: 多个 target 属性设置的目标窗口不为当前窗口的 FORM 同时提交后 Chrome Safari 中仅打开一新个窗口
    • HF3012: IE6 Firefox Chrome(Q) Safari(Q) 不支持 OPTION 元素的 label 属性
    • HF3013: IE6 IE7 不支持 OPTION 和 OPTGROUP 元素的 disabled 属性
    • HF1014: 各浏览器对 TEXTAREA 元素的换行处理存在差异
    • HF9015: IE6 IE7 IE8(Q) 中 BUTTON 元素的 type 属性默认值不是 submit
    • HF2016: 对于 SELECT 元素在使用 OPTGROUP 元素对 OPTION 元素进行分组时,OPTION 元素分组中下拉列表项的缩进不同
    • HF1017: Firefox 中 OPTION 元素可以应用其设定的宽度并撑大其所在 SELECT 元素
    • HF9018: IE 中 OPTION 元素仅包含属性名、没有属性值的 value 属性时会将 OPTION 元素的内容文提交到服务端
    • [HS] 脚本
    • HS9001: IE Opera 中 src 属性为空的 SCRIPT 元素内的脚本不会被忽略,且内联脚本可以通过修改其所在 SCRIPT 元素的 src 属性引入新的外部脚本文件
    • [HY] 容错
    • HY9001: Safari 中错误的注释将导致部分 JavaScript 代码无法执行
    • HY8002: IE6 IE7 IE8(Q) 中同一元素重复定义的 style 属性会被合并
    • HY8003: IE6 IE7 IE8(Q) Firefox(Q) Opera(Q) 会自动修复被大括号包含的 style 属性的值
    • HY1005: IE6 IE7 IE8(Q) 会忽略 LI DD DT 元素的结束标记
    • HY8006: 各浏览器对未闭合标签的容错方式不同
  • 渲染-CSS相关

    • [RN] 语法和基本数据类型
    • RN5001: Chrome Safari 中 '@charset' 声明的位置错误将导致其后的一个规则集无效
    • RN8002: 各浏览器在 HTML 页面与页面中引入的外部 CSS 文件编码不一致时表现不同
    • RN8003: IE6 IE7 IE8(Q) 会忽略 类型的 CSS 值中的换行符与制表符
    • RN8004: 各浏览器对于 CSS 代码中的表意空格的处理存在差异
    • [RS] 选择器
    • RS8001: IE6 IE7(Q) IE8(Q) 不支持子选择器
    • RS8002: IE6 IE7(Q) IE8(Q) 不支持相邻兄弟选择器
    • RS8003: IE6 IE7(Q) IE8(Q) 不支持属性选择器
    • RS8004: IE6 IE7(Q) IE8(Q) 不支持 ':first-child' 伪元素
    • RS3005: IE6 IE7(Q) IE8(Q) 中 A 元素的 :visited :hover :active 伪类未按规范要求的算法来计算针对性
    • RS3007: IE6 IE7(Q) IE8(Q) 不支持 A 元素以外的其他元素的 ':hover' 伪类
    • RS3008: IE6 IE7 IE8(Q) 不支持 A 元素以外的其他元素的 ':active' 伪类
    • RS3009: IE6 IE7 IE8(Q) 不支持 ':focus' 伪类
    • RS8010: IE6 IE7 IE8(Q) 不支持 ':before' 和 ':after' 伪元素
    • [RA] 指定特性值,层叠和继承
    • RA8001: IE6 IE7 IE8(Q) 不支持 CSS 特性的 'inherit' 值及 IE8(S) Opera 对此特性值的支持缺陷
    • RA3002: IE8 Chrome Safari 中具有加粗效果的 HTML 元素的 'font-weight' 特性会受到其祖先元素的影响
    • RA8003: IE6 IE7(Q) IE8(Q) 不完全支持 !important 规则
    • [RB] 盒模型
    • RB1001: IE6 IE7 IE8(Q) 负边距 (margin) 导致元素溢出 hasLayout 容器时显示异常
    • RB5002: Chrome Safari 中为处于浮动元素后创建了 in-flow 的 Block Formatting Context 的元素设置的 'margin-left' 或 'margin-right' 特性会出错
    • RB1003: Firefox 中 'display:table' 的元素的外边距不会与包含块的外边距折叠
    • RB8004: IE6 IE7 IE8(Q) 中浮动元素和绝对定位元素某些情况下会影响普通流中毗邻 'margin' 的折叠
    • RB1005: IE6 IE7 IE8(Q) 中父元素带有 hasLayout 时,其左浮动子元素果存在带有非零值的 margin-bottom 时,则该子元素的 margin-bottom 设置失效
    • RB1006: IE6 IE7 IE8(Q) 中触发了 hasLayout 的元素若包含 TEXTAREA 元素及某些 type 的 INPUT 元素,其 'margin-left' 和 'margin-right' 会与预期不符
    • [RM] 渲染模型
    • RM8001: 各浏览器对 'display' 特性值的支持程度不同
    • RM8002: 不能同时在 IE6 IE7 IE8(Q) 中触发 hasLayout 并在其他浏览器中创建 Block Formatting Context 的元素在各浏览器中的表现会有差异
    • RM8003: 各浏览器中浮动元素与相邻的 Block Formatting Context 之间的关系有差异
    • RM1004: IE6 IE7 IE8(Q) 中零高度的浮动元素会阻挡其兄弟浮动元素
    • RM8005: IE6 IE7 IE8(Q) 中行内元素后相邻的浮动元素在某些情况下会折行放置在之前行内元素所在行框的底部
    • RM8006: IE6 IE7 IE8(Q)中设置了 'clear' 特性的元素 'margin-top' 特性处理有误,某些情况下会与浮动元素重叠
    • RM3007: 在 IE6 IE7 IE8(Q) 中包含被清除浮动的浮动元素的块级元素的背景在某些情况下不是设置值
    • RM8008: IE6 IE7 IE8(Q) 中对浮动元素上 'clear' 特性的解释出现错误,使其自身位置和其后浮动元素的位置与其他浏览器中不同
    • RM1009: IE6 IE7 IE8(Q) 中一些块级元素的默认上下外边距会在其浮动或触碰到 hasLayout 的容器后消失
    • RM1010: IE6 IE7 IE8(Q) 中元素的 'padding-top' 遇到 'clear' 特性在某些情况下复制到 'padding-bottom'
    • RM8011: Firefox 浏览器对 TABLE 中绝对定位元素包含块的判定有错误,某些情况下会导致绝对定位元素位置跟其他浏览器中有差异
    • RM8012: IE6 IE7 IE8(Q) Firefox Opera 中绝对定位元素的静态位置计算某些情况下会出错
    • RM8013: IE6 IE7(Q) IE8(Q) 不支持固定定位(position:fixed)
    • RM8014: IE6 IE7 IE8(Q) 中某些情况下浮动元素会在其浮动方向溢出其包含块
    • RM8015: IE6 IE7 IE8(Q) 中定位元素 'z-index' 为默认值在某些情况下会产生新的层叠上下文
    • RM8016: IE6 IE7 IE8(Q) 中溢出容器的浮动元素导致容器兄弟元素文本定位错误
    • RM1017: IE7(S) 中元素溢出包含块的部分会被 hasLayout 元素遮住
    • RM8018: IE6 IE7(Q) IE8(Q) 中包含块若未触发 hasLayout 则会影响参照其定位的绝对定位元素的偏移位置计算
    • RM1019: IE6 IE7 IE8(Q) Firefox 不支持 'display:run-in'
    • RM1020: 依据行内元素作为包含块的绝对定位子元素的位置在各浏览器中有差异
    • RM8024: 各浏览器对除 TABLE 之外的表格类元素以及它们相对于 CSS 中 display 特性值的相对定位特性的支持存在差异
    • RM1025: Chrome Safari 认为 'float:center' 是合法值且其计算值为 'none'
    • [RD] 渲染模型的细节
    • RD8001: 各浏览器中 'width' 和 'height' 在某些元素上的作用位置有差异
    • RD1002: IE6 IE7(Q) IE8(Q) 中一个非替换元素的 'overflow' 为 'visible' 时其尺寸会为了容纳其非绝对定位的内容而变大
    • RD1003: 零宽高的 IFRAME 元素的实际尺寸在不同浏览器中有差异
    • RD8004: IE6 IE7 IE8(Q) 中浮动元素宽度的 shrink-to-fit 算法与标准规定的算法不同
    • RD8005: Chrome Safari 中浮动元素之前的非 inline 级元素会对包含块的 shrink-to-fit 宽度计算有影响
    • RD8006: IE6 IE7 IE8(Q) 中右浮动元素会撑大其祖先级元素的宽度
    • RD8007: IE Opera 计算 shrink-to-fit 的宽度时会考虑浮动元素的宽度
    • RD8008: IE6 IE7(Q) IE8(Q) 绝对定位元素无法根据其四个方向的偏移量自动计算其尺寸
    • RD8009: IE6 IE7 IE8(Q) 中行框的顶边与底边位置识别有误
    • RD8010: IE6 IE7(Q) IE8(Q) 不支持 'min-width' 和 'max-width' 特性
    • RD1011: IE6 IE7 IE8(Q) 中行内非替换元素中的非文本文字会撑高其高度
    • RD1012: 不同浏览器内 'line-height' 样式设置会影响不同行内替换元素的显示高度
    • RD1013: IE6 IE7 IE8(Q) 中触发 hasLayout 的空块级非替换元素的高度不是 0
    • RD1014: 行内非替换元素的高度和宽度的设置仅在 IE 混杂模式中生效
    • RD8015: IE6 IE7(Q) IE8(Q)不支持 'min-height' 和 'max-height' 特性
    • RD1016: 各浏览器对常用行内替换元素的 'baseline' 位置理解不同
    • RD5017: Safari Chrome 中行框高度计算有误
    • RD5018: Safari Chrome 中元素 'overflow' 值为非默认值时其最后一个内联子元素的半差异高度被忽略
    • RD8019: 各浏览器对行内元素绝对定位后的静态位置的 'top' 特性计算存在差异,IE6 IE7 IE8(Q) 还会考虑半差异的高度
    • RD3020: 在不同的文档模式中,当唯一的非表单控件类行内替换元素存在于其包容块中时,其父框的行高并不一定会计算文本基线高度
    • RD1021: 各浏览器中包含 MARQUEE 元素及替换元素的包含块的 shrink-to-fit 宽度计算存在差异
    • RD8022: 各浏览器中宽度为 0% 的 IMG 元素的包含块的 shrink-to-fit 算法存在差异
    • RD8023: IE6 IE7(Q) IE8(Q) 中包含未明确设定宽度的触发了 hasLayout 的元素的包含块的 shrink-to-fit 算法有误
    • RD1024: 各浏览器对设定了 'min-height'、'max-height' 特性的元素生成的包含块的高度计算存在差异
    • RD8025: 各浏览器对使用 shrink-to-fit 宽度的包含块中行内元素后的绝对定位元素的静态位置判断存在差异
    • RD8026: 各浏览器对于未明确设定高度的包含块内包含百分比单位高度的块级元素或行内块元素的高度计算存在差异
    • RD8027: 各浏览器中 'min-width' 或 'max-width' 值单位为百分比的 IMG 元素的包含块的 'shrink-to-fit' 算法存在差异
    • RD8028: 各浏览器对未明确设定宽度的块级元素通过 margin 导致溢出其宽度为 0 的包含块时的宽度计算值存在差异
    • RD3029: IE6 IE7 IE8(Q) 中空的非替换行内元素渲染方式存在差异
    • [RV] 可视效果
    • RV1001: 各浏览器中当 'overflow-x' 和 'overflow-y' 一个值为 'hidden' 另一个值为 'visible' 时的组合渲染结果存在差异
    • RV1002: IE6 IE7 IE8(Q) 中 'overflow' 特性不为 'visible' 的非定位元素内包含溢出的定位元素时的渲染效果有误
    • RV8003: IE 中同一条规则下的后定义的 overflow 特性值不会覆盖之前设定的 overflow-x 和 overflow-y 特性值
    • [RG] 生成的内容,自动编号以及列表
    • RG1001: IE6 IE7 IE8(Q) 中 UL 和 OL 标记为实现放置 LI 元素标记框 'outside' 设置时所使用的样式设定不同于其他浏览器
    • RG1002: IE6 IE7 IE8(Q) 中如果列表元素设置 'list-style-type:none' 时不影响 'list-style-position:inside' 设置产生的标记块
    • RG1003: LI 元素设置标记类型的特性 'style-list-type' 的 'disc | circle | square' 三个特性值在各浏览器中的渲染方式不同
    • RG1004: Opera 中设定了 display:list-item 与 list-style-type 特性不为 none 的内容为空的元素不会产生高度
    • [RC] 颜色和背景
    • RC3001: IE6 IE7(Q) IE8(Q) 中 IFRAME 元素 'background-color' 特性默认值不是 transparent
    • RC3002: IE6 不支持 HTML、BODY 以外元素的 background-attachment:fixed
    • RC3003: IE6 IE7 IE8(Q) 下 'background-attachment:scroll' 时背景图片会随着元素内容滚动
    • RC3004: 各浏览器中折行的行内元素的背景图片渲染存在差异
    • RC3005: 各浏览器中背景图片起始位置的作用位置存在差异
    • RC3006: 各浏览器中 table-row (TR) 元素的背景图片渲染位置存在差异
    • [RF] 字体
    • RF1001: 各浏览器对 '@font-face' 规则支持的字体格式不同,IE 支持 EOT 字体,Firefox Safari Opera 支持 TrueType 等字体
    • RF2002: IE6 IE7 IE8 Opera 在某些情况下中文字符的最终字号不是设定值
    • [RT] 文本
    • RT3001: 在某些条件下 Firefox Chrome Safari 的标准模式中 'text-decoration' 会作用于 IMG 元素上
    • RT3002: 元素和其子孙元素的 'text-decoration' 特性对其内文本的渲染在各浏览器中不同
    • RT8003: 'text-align' 特性在 IE6 IE7 IE8(Q) 中可以影响块级元素的对齐方式,并且在所有浏览器的混杂模式中均不能被 TABLE 元素继承
    • RT5004: WebKit 浏览器中 'white-space:nowrap' 使表格内的浮动元素不折行
    • RT3005: 'text-overflow:ellipsis' 会引起兼容性问题
    • RT8006: 某些条件下 IE6 IE7 IE8(Q) 中 'word-wrap:break-word' 作用于 TD 时导致其中 IMG 元素不换行
    • RT1007: 'word-wrap:break-word' 只有在 WebKit 浏览器中对 SELECT 元素上的文字有效
    • RT1008: 'word-wrap:break-word' 导致在 IE6 IE7 IE8(Q) 中空格不被忽略
    • RT2009: Chrome Safari 中 word-spacing 特性不可作用于非文本内容
    • RT1010: 仅 Firefox 支持小数数值的 'letter-spacing' 特性
    • RT3011: Firefox 中 A 元素的 ':hover' 伪类中设置的下划线某些情况下会失效
    • RT1012: IE6 IE7 IE8(Q) Opera 认为 'white-space:nowrap' 仅作用在纯文本内容上
    • RT2013: 各浏览器对 'word-spacing' 特性可作用的空格种类存在差异
    • [RE] 表格
    • RE8001: 固定表格布局下的各浏览器对与表格宽度计算算法不同
    • RE8002: 各浏览器对 table 级元素的 'width' 特性的作用位置存在差异
    • RE5003: IE6 IE7 IE8(Q) Chrome Safari Opera 中某些条件下 empty cell 的宽度和高度为 0
    • RE8004: IE6 IE7 IE8(Q) 中自动布局的表格在其中包含无内容的左浮动元素时的宽度计算在某些情况下有误
    • RE1005: IE 混杂模式下 TR 元素的最终高度始终不会超过其所有 TD 子元素的高度
    • RE1006: 单元格的高度计算受其 'padding' 和 'line-height' 的影响
    • RE2007: 各浏览器解决表格边框冲突的方式存在差异
    • RE1008: IE6 IE7 IE8(Q) 中固定表格布局下的 TABLE 元素 'width' 特性为 'auto' 时不会将其当作自动表格布局处理
    • RE8010: IE6(Q) IE7(Q) IE8(Q) Chrome(Q) Safari(Q) Opera(Q) Firefox 对多层嵌套的表格级元素百分比高度计算错误
    • RE1011: 各浏览器对于自动表格布局下未明确设定宽度的单元格的计算宽度存在差异
    • RE1012: IE6 IE7 IE8(Q) Firefox(Q) Opera(Q) 中在分离边框模型中空单元格的边框某些情况下会消失
    • RE1013: IE6 IE7 IE8(Q) 中空单元格的上下 'padding' 失效
    • RE8014: IE6 IE7 IE8(Q) 中单元格对齐依据的是元素的原始宽度而不是其因某些原因被拉大后的宽度
    • RE8015: IE 中 TABLE 等表格类元素的 'display' 特性的值被设置为 'table'、'inline-table' 之外的其他合法值后其 TABLE 特性不受影响
    • RE1016: IE6 IE7 IE8(Q) 中空 TABLE 的宽度和高度均为 0
    • RE8017: IE Firefox Opera 的混杂模式对于百分比单位高度的单元格内子元素的百分比高度计算错误
    • RE8018: 各浏览器中固定表格布局下对单位为 px 的 TD TH 元素的宽度作用位置有差异
    • RE9019: Chrome(Q) Safari(Q) Opera(Q) 中明确指定的单元格宽度小于当前列 MCW 时,计算单元格与其他浏览器不同
    • RE1020: IE6 IE7 IE8(Q) 不支持 border-spacing 特性
    • RE3021: IE6 IE7 IE8(Q) 不支持 'empty-cells' 特性
    • [RU] 用户界面
    • RU3001: 只有 IE 和 Opera 支持 'cursor:hand'
    • RU3002: IE6 IE7 IE8(Q) 不支持 'outline' 特性
    • [RY] 容错
    • RY1001: IE6 IE7 IE8(Q) 会自动修复 'font-family' 特性的值是由一个引号包括了整个字体家族时的错误书写的代码
    • RY8002: 各浏览器对 CSS 代码及 CSS 相关 DOM 操作中长度 类型的值缺失单位的容错程度存在差异
    • RY8003: 各浏览器对 CSS 错误解析规则的差异及 CSS hack
    • RY8004: 各浏览器对不合法的类选择器名称的容错程度存在差异
    • RY8005: 各浏览器对于计算后宽度和高度为含有小数的长度值时,其最终值会不一致
  • 渲染-混合类型

    • [RX] 混合类型
    • RX1001: IE5.0 IE5.5 IE6 中浮动元素在某些情况下会有双倍外边距
    • RX1002: IE6 IE7 IE8(Q) 中从单元格溢出的内容会被自动剪裁
    • RX1003: IE6 IE7 IE8(Q) 中 'white-space' 特性在某些情况下不会自动继承
    • RX8004: 非 IE 浏览器中 'margin' 特性对 TABLE 元素的 align 属性会有影响
    • RX3005: IE6 IE7 IE8(Q) Chrome(Q) Safari(Q) 中 A 元素的 ':hover' 及 ':active' 伪类在缺少 href 属性时会失效
    • RX1006: IE(Q) Firefox(Q) Opera 中 BR 元素的 'line-height' 特性的计算值在某些情况下会小于其继承值
    • RX3007: 字体样式标签(U、B、S等)对某些 CSS 特性有影响
    • RX1008: IE6 IE7 IE8(Q) 中 cellspacing 属性在重合的边框模型的表格中仍然有效
    • RX9009: 各浏览器中 IFRAME 元素的 scrolling 属性与其子页面 HTML 与 BODY 元素 'overflow' 特性的制约关系有差异
    • RX1010: IE6(Q) IE7(Q) IE8(Q) 中给 IMG 元素设置 'padding' 无效
    • RX3011: 各浏览器中 FONT 元素的颜色设置在某些情况下会作用到由其祖先级元素设定的装饰线的颜色
    • RX8012: 不同浏览器中 Flash 与其他元素发生覆盖时有差异
    • RX1014: Chrome Safari 中设定的单元格上下间隙会作用在行组元素内部导致这些元素之间会出现双倍间隙
    • RX8015: IE6 IE7 IE8(Q) 没有完全正确地将 IMG、OBJECT、IFRAME、TABLE 等元素的 align='left|right' 理解为浮动
    • RX9016: 各浏览器对 IMAGE 元素的支持存在差异
    • RX8017: IE 对浮动非替换元素内包含宽度单位为百分比的元素时的 'shrink-to-fit' 宽度算法有误
    • RX8018: IE6 IE7 IE8(Q) 中可被渲染的绝对和固定定位元素将消除其后紧邻它的触发了 hasLayout 特性的块级元素的 margin-top
  • 脚本

    • [SJ] JavaScript核心
    • SJ9001: IE6 IE7 IE8 的函数声明和函数表达式的实现与其他浏览器有差异
    • SJ9002: Firefox 对条件判断语句块内的函数声明的处理与其他浏览器有差异
    • SJ5003: Safari Chrome 中用 for in 可以遍历出 Date Array String 对象中被更新的原型方法
    • SJ2004: 各浏览器中 Date 对象的 toLocalString 方法的返回值不一致
    • SJ9005: IE6 IE7 IE8 会忽略 JavaScript 代码中大括号之后的第一个分号
    • SJ9006: 在 IE6 IE7 IE8(Q) 中不能在 JSON 字符串或对象直接量的最后一个键值对后加 ','
    • SJ2007: IE6 IE7 IE8 不会忽略数组直接量的末尾空元素
    • SJ9008: 仅 IE 支持使用含中文标点符号的变量名
    • SJ9009: 元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
    • SJ9010: 各浏览器中 Date 对象的 getYear 方法的返回值不一致
    • SJ9011: Chrome Opera 中 for-in 语句遍历出对象属性的顺序与定义的不同
    • SJ9012: IE6 IE7 IE8(Q) 不支持 JSON 对象
    • SJ9013: Array.prototype.sort当使用了 comparefn 后返回值不为 -1、0、1时,各引擎实现排序结果不一致
    • [SD] 文档对象模型
    • SD9001: IE6 IE7 IE8(Q) 中的 getElementById 方法能以 name 属性为参数获取某些元素
    • SD9002: IE6 IE7 IE8(Q) 中的 getElementById 方法的参数不区分大小写
    • SD9003: IE 在创建 DOM 树时会忽略某些空白字符
    • SD9004: 各浏览器中的 NodeList 接口存在差异
    • SD9005: IE 中一个对象的 native 方法是跟该对象绑定的
    • SD9006: IE 混淆了 DOM 对象属性(property)及 HTML 标签属性(attribute),造成了对 setAttribute、getAttribute 的不正确实现
    • SD9007: IE 对 DOMImplementation 接口的支持程度停留在 DOM 1 Core 阶段
    • SD9008: 已经被废弃的 DocumentLS 接口目前仅在 Firefox 和 Opera 下被部分支持
    • SD9009: Firefox 和 Opera 不支持 "document.styleSheets" 通过 STYLE 元素 id 获取 CSSStyleSheet 对象
    • SD9010: 仅 IE 中的 createElement 方法支持传入 HTML String 做参数
    • SD9011: 事件模型在各浏览器中存在差异
    • SD9012: IE6 IE7 IE8 中 getElementsByName 方法的参数不区分大小写
    • SD9013: 各浏览器对于 document、document.body、document.documentElement 对象的 onscroll 事件的支持存在差异
    • SD9014: IE 标准模式中 BODY 元素的高度变化和 IE6(S) 中 BODY 元素的宽度变化会触发 window.onresize 事件
    • SD9015: 各浏览器对于 DOM 对象的鼠标滚轮事件事件存在差异
    • SD9016: Firefox 不支持 DOM 对象的 insertAdjacentHTML 和 insertAdjacentText 方法
    • SD9017: Firefox 不支持 DOM 对象的 outerHTML、innerText、outerText 属性
    • SD9018: IE6 IE7 IE8(Q) 在某些情况下 DOM 元素的 offsetTop、offsetLeft 的返回值参照元素以及 offsetParent 为距离其最近的触发了 hasLayout 的祖先级元素
    • SD9019: 插入空白页面 IFRAME 元素时 Chrome Safari Opera 浏览器中会触发 load 事件
    • SD2020: 仅 IE 和 Firefox 支持 window 对象的 onerror 事件
    • SD2021: 各浏览器对元素在没有设置 tabindex 属性时触发 onfocus 事件以及通过其 focus() 方法获得焦点的情况有差异
    • SD9022: 各浏览器对页面 onload 事件处理方式不一致
    • SD2023: IE Chrome Safari 在计算 'overflow' 特性值为 visible 的容器的 scrollHeight 的值时会考虑其内脱离了文本流的元素
    • SD9024: 各浏览器中 DOM 接口的继承关系存在差异
    • SD9025: IE6 IE7 IE8 Opera 支持除 INPUT 和 BUTTON 元素以外的其他元素的 'click' 方法
    • SD9026: 各浏览器对 onunload 事件的支持与触发条件实现有差异
    • SD9027: 各浏览中某些标记通过鼠标触发 Click 事件后不会获得焦点并触发 Focus 事件
    • SD9028: ECMAScript 的数据类型运算符 typeof 在各浏览器中存在兼容性问题
    • SD9029: 各浏览器下在向文档树中插入通过 cloneNode(true) 创建的节点时,其内的 SCRIPT 元素中的脚本执行有差异
    • SD9030: 为 SELECT 对象增加或删除选项的方法在各浏览器中的支持情况不同
    • SD9031: 各浏览器对 Range 接口的实现存在差异
    • SD9032: IE6 IE7 IE8 IE9(Q) 中表单元素常见事件不产生事件冒泡
  • 服务端通信

    • [CP] 协议参数
    • CP9001: Firefox Safari 中对 cookie 中未经编码的中文汉字处理有问题
    • [CM] 方法定义
    • CM2001: 不能保证带有 name 属性的 BUTTON / INPUT [ type = submit / button / image ] 元素的 value 属性值在所有浏览器中都可以被提交到服务端
    • [CH] 头字段定义
    • CH9001: 各浏览器对常用或者错误的 Content-Type 类型处理方式不一致
    • CH9002: IE6 IE7 IE8 未按预期方式处理 content-type 为 text/plain 的内容
    • CH9003: IE6 和 Chrome 未按预期方式处理 content-type 为 application/rss+xml 的内容
    • CH9004: IE Firefox 在进行某些跳转时请求头中不会附加 Referer 字段信息
    • CH3005: 各浏览器遇到 HTTP 400 错误页面的提示方式存在巨大差异
  • 浏览器特性

    • [BW] WebKit内核
    • BW5002: WebKit 中依赖文本流定位的绝对定位元素某些情况下不会更新其位置
    • BW5004: Webkit 中 NOBR 标签与其他标签紧密相连在某些情况下会导致部分内容无法换行
    • BW5005: Webkit 浏览器会压缩 OPTION 元素中的全角空格
    • BW3006: Chrome 中文版配置文件中对最小字体限制为 12px
    • BW5007: Chrome Safari 中的表单在某些情况下不能够重复提交
    • BW5008: WebKit 中 MARQUEE 元素 的 behavior 属性值为 alternate 时如果其中包含块级元素则会影响其滚动效果
    • BW5009: WebKit 中 HR 元素 noshade 属性会影响其 'color' 特性
    • BW1010: Chrome Safari 中页面文档树建立完毕后通过 document.write 系列方法重写文档不记录到历史记录中
    • BW5011: Chrome Safari 中拥有 'float' 和 'overflow' 特性值不为 'visible' 的元素在祖先容器布局大小被更改后存在渲染问题
    • BW9012: Chrome Safari 中空行内非替换元素在某些情况下不占用文档流渲染空间
    • BW5014: Chrome 中弹出的 SELECT 元素下拉列表菜单在当前页或其内某个子框架页中通过脚本控制页面滚动条发生滚动时会消失
    • [BT] Trident内核
    • BT9002: 只有 IE 的 TABLE、THEAD、TBODY、TFOOT 有 moveRow 方法
    • BT3003: 只有 IE 支持 TABLE 元素的 'bordercolordark' 和 'bordercolorlight' 属性
    • BT8004: 只有 IE 支持条件注释
    • BT9005: 只有 IE 的脚本引擎支持 VBScript
    • BT9006: 只有 IE 的脚本引擎支持 JScript.Encode 和 VBScript.Encode
    • BT9007: Element.all 属性方法只有 IE 和 Opera 支持
    • BT9008: 只有 IE 和 Opera 支持使用 currentStyle 获取 HTMLElement 的计算后的样式
    • BT9009: 只有 IE 和 Opera 支持 FORM.item() 方法
    • BT9010: 只有 IE 支持 CSS Expression
    • BT9011: 只有 IE 支持 CSS Filter
    • BT9012: IE 的 external 对象提供的方法是 IE 特有的
    • BT3013: 只有 IE 可以设置滚动条样式
    • BT8014: 只有 IE 支持 'writing-mode' 特性
    • BT9015: 只有 IE 和 Opera 支持 TABLE 元素的 cells 属性
    • BT9016: 只有 IE 和 Opera 支持 document.frames
    • BT9017: 只有 IE 支持 mouseenter 和 mouseleave 事件
    • BT9019: 只有 IE 的脚本引擎支持 CollectGarbage ScriptEngine 等 JScript 特有的方法
    • BT9021: IE 中可以使用 ActiveXObject 创建 Automation 对象,同时该对象的方法及属性名称大小写不敏感
    • BT2022: 只有 IE 支持 OBJECT 元素的 onerror 事件
    • BT9023: IE6 中对 ABBR 元素的相关处理有误
    • BT9024: IE 中可以使用 classid 与 codebase 属性结合完成下载、安装和使用 ActiveX 插件
    • BT1025: IE 会忽略触发 hasLayout 的元素内尾部的全角空格
    • BT9027: 只有 IE 支持 DHTML Behaviors 及相关方法
    • BT9028: 只有 IE 支持 window.createPopup 方法
    • BT9029: 在 IE 中被透明元素遮挡的元素仍能响应鼠标事件
    • BT9030: 只有 IE 的 HTMLElement 有 mergeAttributes 与 clearAttributes 方法
    • BT9031: 只有 IE 的 HTMLElement 有 applyElement 方法
    • BT9032: 只有 IE 的 HTMLDOMNode 有 replaceNode 与 swapNode 方法
    • BT2033: 只有 IE 支持 BGSOUND 标签
    • BT9034: 仅 IE 和 Opera 支持 HTMLFrameElement 和 HTMLIFrameElement 的 document 属性
    • BT9035: 只有 IE 和 Opera 的 HTMLDOMNode 有 removeNode 方法
    • BT9036: 只有 IE 支持 XML 数据岛
    • BT9037: IE 中页面内 OBJECT 对象相对其他浏览器额外包含了其引入的 ActiveX 插件的部分私有属性
    • BT1038: 只有 IE 支持 IMG INPUT[type=image] 标记内的 lowsrc 属性
    • [BG] Gecko内核
    • BG2001: Firefox 中块级元素高度或宽度过小会导致滚动条消失
    • BG9002: 各浏览器对 SCRIPT 标签内 type 和 language 属性值识别程度不同
    • BG1003: Firefox 中 Date.now 方法被重写后 MARQUEE 元素不再滚动
    • [BX] 多内核
    • BX2001: IE 支持使用 window.clipboardData 访问系统剪贴板,Chrome 和 Safari 中存在类似的 Clipboard 对象但尚未实现,Firefox 和 Opera 不支持这类对象
    • BX9002: document.all 在各浏览器中的支持不同
    • BX2003: 特定的 URL 伪协议需安装提供该协议的特定软件才有效
    • BX2004: 浏览器后退按钮在各浏览器中的行为在某种情况下不一致
    • BX3006: 各浏览器对 TABLE、TH、TD 元素的 bordercolor 属性的处理有差异
    • BX9007: 获取文档可视尺寸(视口)时在各浏览器中的参考元素有差异
    • BX9008: 各浏览器对于获取文档水平及垂直方向滚动条位置(scrollLeft、scrollTop)时的参考元素存在差异
    • BX1009: 各浏览器在宽度不够时不会对连续的全角空格进行折行处理存在差异
    • BX9010: 各浏览器中对直接以 id 或者 name 属性值获取元素存在差异
    • BX9011: 各浏览器对 setTimeout 方法传入时间参数的某些极端值的处理存在差异
    • BX2012: 某些情况下除了 IE 和 Opera 之外的浏览器中 window.close 方法无法关闭由直接输入 URL 或 Ctrl + 点击链接方式打开的窗口
    • BX9013: 动态引入的外部 JS 文件在各浏览器中的加载顺序不一致
    • BX9014: document.write 方式引入外部 JS 文件导致脚本程序执行顺序不同以及 DOM 树更新延迟问题
    • BX9015: setTimeout 和 setInteval 在各浏览器中被对话框阻塞的情况不同
    • BX1016: Webkit 浏览器中 TD 的 "noWrap" 属性会引起的它里面 MARQUEE 元素宽度计算错误
    • BX8017: 只有 IE Chrome Safari 支持 'zoom' 特性并且他们的具体实现方式不同
    • BX1018: 非 IE 浏览器中为 MARQUEE 元素设置某些 CSS 特性会导致其失去滚动效果
    • BX3019: Chrome Safari 中设置了 'bordercolor' 属性的 TABLE 元素,会为其自动设置3px的边框宽度
    • BX9020: 各浏览器对 URI 中非 ASCII 字符的发送形式存在差异,Flash接收时会导致接收 GET 参数值时编码识别有误。
    • BX9021: IE6 IE7 IE8 对 onreadystatechange 事件的扩充
    • BX1022: 各浏览器对遇到中文标点符号时折行的处理有差异
    • BX3023: 在 IE 中一些特殊字符的最终呈现字体不是设定值
    • BX9024: Firefox 不支持 DOM 元素 style 属性中的 pixel* 属性,并且某些情况下 Webkit 浏览器 pixel* 属性的返回值和 IE 中不同
    • BX9025: 新版本的浏览器都已经不支持古老的 document.layers
    • BX9026: 在 IE 的事件监听处理函数中使用 return false 语句依然可以阻止浏览器默认行为执行
    • BX9027: IE 浏览器中 MouseDown 事件中取消浏览器默认行为后 Focus 事件依然被触发
    • BX9028: 各浏览器对使用 document.id 和 document.name 获取对象的支持存在差异
    • BX9029: IE 和 Firefox 可以通过特定方法使 innerHTML 方法载入的 SCRIPT 标签中的 JavaScript 代码在页面加载后也可以执行
    • BX1030: IE8(S) Firefox Opera Chrome Safari 在某些情况下计算 MARQUEE 元素的宽度时会参考其子元素的宽度
    • BX9031: IE 和 Chrome 支持通过 EMBED 元素嵌入 MP3 格式文件
    • BX2032: 某些情况下浏览器不按照 "target" 属性所指目标打开协议链接
    • BX2033: 各浏览器对使用脚本将页面加入收藏夹的支持情况不同
    • BX9034: 判断浏览器类型或版本时使用的方法不当将导致代码不能按照预期的效果执行
    • BX9035: IE 中 location="" 或 location.href="" 将使页面跳转至当前页面所在根目录
    • BX9036: Opera 和 Chrome 对模态对话框(showModalDialog)的支持有缺陷,且非 IE 浏览器均不支持非模态对话框(showModelessDialog)
    • BX8037: 溢出定位流的不可视元素,其包含块的滚动条生成差异
    • BX9038: Chrome Safari Opera 中文档树的最终生成会早于通过静态方式引入的外部 CSS 资源加载完毕
    • BX1039: IE8 标准模式及 Opera 不支持 WBR 元素
    • BX2040: 各浏览器对 navigator 对象中几个与语言相关的属性的返回值存在差异
    • BX9041: 各浏览器创建 XMLHttpRequest 对象的方式不同
    • BX8042: 各主流浏览器均不支持非标准的 LAYER 元素
    • BX8043: IE Chrome Safari Opera 中输入焦点始终可视
    • BX9044: Chrome Safari 中引用非同源页面 window 对象的成员时不抛异常
    • BX9045: 各浏览器中 window 对象的构造器不同
    • BX9046: 各浏览器对 HTML 对象的 innerHTML 属性的读写支持存在差异
    • BX2047: 各浏览器对 onbeforeunload 事件的支持与触发条件实现有差异
    • BX9048: IE 中 location.reload 方法可以传入 URL 字符串参数使页面进行跳转
    • BX1049: 各浏览器通过 window.resizeTo() 方法最终得到的页面可视区域大小存在差异
    • BX2050: 各浏览器禁止内容选中的方式不同
    • BX2051: 各浏览器对元素 src 属性中引入了需要登录的 FTP 的 URI 时的处理存在差异
    • BX9052: IE Opera 支持使用 window.navigate 方法控制页面跳转
    • BX1053: 各浏览器对 window.open() 的窗口特征 sFeatures 参数支持程度存在差异
    • BX9054: 各浏览器对 document.execCommand 方法的首参数可选值范围存在差异
    • BX9055: 各浏览器对 window.execScript 方法的支持不同
    • BX9056: 各浏览器下 window.eval 方法的执行上下文存在差异

转载于:https://my.oschina.net/jsan/blog/169459

你可能感兴趣的:(CSS, HTML, JavaScript等兼容性问题案例分析及解决)