一、CSS常见问题

1、H5标签兼容性

  解决方案:<script src="http://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>

2、元素浮动之后,能设置宽度的话就给元素加宽度,如果需要宽度是内容撑开的,就给它里边的块元素加上浮动float:left;

3、第一块元素浮动,第二块元素加margin-left值等于第一块元素宽度,在IE6下会有间隙问题

  解决方案:不要用margin-left,给两个元素都加上浮动float:left;

4、IE6下子元素超出父级宽高,会把父级宽高撑开,比如用于放置轮播的ul宽度会超出父元素

  解决方案:不要让子元素的宽高超过父级

5、P包含块元素嵌套规则

  牢记规则:p、h标签不能嵌套块元素

二、CSS兼容性问题

1、margin兼容性问题

  1)margin-top传递,子元素上下margin会传递给父级

  阻止:触发BFC(如overflow:hidden;拯救标准浏览器及IE78)、触发IE的haslayout  zoom:1(拯救IE67);

  2)上下margin叠压(触发条件:同级元素,第一个元素的下与第二个元素的上会叠压在一起)

  解决方案:两个元素分开设置margin,然后尽量使用同一方向的margin,比如margin-top

2、display:inline-block;   块元素变为内联块, IE67不兼容;内联元素变为内联块,所有浏览器都支持

  解决方案:{display:inline-block; *display:inline; *zoom:1;}

  发现问题:当然,变为内联块后,有一个特性就是如果元素换行,在页面上元素之间就会有空隙的,空隙大小为一个空格的像素大小。

3、IE6元素最小高度为19px

  解决方案:overflow:hidden;

4、IE67双边距,当元素浮动后,再设置margin,那么就会产生双倍边距

  解决方案:针对IE67,添加*display:inline;样式,比如页面上横向排列的几组块,会经常遇到

5、li里元素都浮动,在IE67下方会产生4px间隙问题

  解决方案:针对IE67,添加*vertical-align:top;样式

6、IE6下,两个浮动元素之间有注释或者内联元素并且和父级宽度相差不超过3px,会导致多复制一些文字问题

  解决方案:1)两个浮动元素之间避免出现内联元素或者注释

       2)与父级宽度相差3px或以上  

7、IE67父级元素的overflow:hidden;子元素设置position:relative后,就包不住子元素了

  解决方案:针对IE67,给父级元素添加position:relative;

8、IE6下绝对定位元素父级宽高是奇数,绝对定位元素的right和bottom值会有1px的偏差

  解决方案:避免父级宽度出现奇数

9、IE6下绝对定位元素和浮动元素并列绝对定位元素消失

  解决方案:浮动元素和绝对定位元素时同级的话,定位元素就会消失,只要让它们两个不处于同级就可以避免这个bug了

10、IE6下input的空隙

  解决方案:针对IE67,给input元素添加*float:left;

11、IE6下输入类型表单控件背景问题,背景不固定,滚动了

  解决方案:设置background-attachment:fixed;

12、line-height  在IE67、FF下不兼容,会有几个像素的偏差,目测只有IE8和其他标准浏览器正常

  IE6下,想给给图片设置line-height来达到垂直居中效果是实现不了的,就给img标签单独设置{float:left;postion:relative;top:...}

  当然,文本的line-height还是识别的

13、常见文章列表布局:标题+发布日期  

  <ul>

    <li>这里是文章列表标题,我是奇葩的IE浏览器<span style="float:right">2015-07-17</span></li>

    <li>这里是文章列表标题2,我是奇葩的IE浏览器<span style="float:right">2015-07-17</span></li>

  </ul>

假设你按照以上布局,那么恭喜你,在IE67下发布日期会掉到下一行去

  解决方案,按如下布局: 

  <ul>

    <li><span style="float:right">2015-07-17</span>这里是文章列表标题,我是奇葩的IE浏览器</li>

    <li><span style="float:right">2015-07-17</span>这里是文章列表标题2,我是奇葩的IE浏览器</li>

  </ul>

或 

  <ul>

    <li><span style="float:left">这里是文章列表标题,我是奇葩的IE浏览器</span><span style="float:right">2015-07-17</span></li>

    <li><span style="float:left">这里是文章列表标题2,我是奇葩的IE浏览器</span><span style="float:right">2015-07-17</span></li>

  </ul>

14、遮罩弹窗

  标准 不透明度:opacity:0~1

  IE678滤镜:filter:alpha(opacity=0~100);

15、<a>的手形光标

  标准浏览器下,不需要设置也有

  IE6下没有,就给a{cursor:pointer;}

16、<a>的 text-decoration:none;

  标准下,只需 a {text-decoration:none;}

  IE6下,a {text-decoration:none;}  并且 a:hover {text-decoration:none;}

三、CSS hack

\9   IE67  8-10   例如:background:blue\9;

+*  IE67      例如:*background:yellow;  +background:yellow;

_    IE6      例如:_background:green;

四、png-24兼容性问题,IE6不支持

解决方案:

  1)引用Js插件,不能处理body以上的,最好放在页面底部,这样不影响页面加载,也就是放在</body>标签上面  

    <!--[if IE 6]>

      <script src="DD_belatedPNG_0.0.8a.js" type="text/javascript"></script>

      <script>

        DD_belatedPNG.fix("*");

      </script>

    <![endif]-->

  2)原生滤镜,给背景图所在的标签加上如下样式,比如body

    body {

        _background-image:none;

        _filter:progid:DXImage Transform.Microsoft.AlphaImageLoader(src="XX.png",sizingMethod="crop");

       }

  

IE浏览器兼容性问题解决方案的更多相关文章

  1. JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案

    前言:最近项目里面需要用到表格的冻结列功能,所谓“冻结列”,就是某些情况下表格的列比较多,需要固定前面的几列,后面的列滚动.遗憾的是,bootstrap table里自带的fixed column功能 ...

  2. (转)没有IE就没有伤害!浏览器兼容性问题解决方案汇总

    普及:浏览器的兼容性问题,往往是个别浏览器(没错,就是那个与众不同的浏览器)对于一些标准的定义不一致导致的.俗话说:没有IE就没有伤害. 贴士:内容都是自己总结的,不免会出现错误或者bug,欢迎更正和 ...

  3. 浏览器兼容性问题解决方案之CSS,已在IE、FF、Chrome测试

    当前主浏览器的核心是什么? 1) Trident:IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的 IE7.Trident ...

  4. angular浏览器兼容性问题解决方案

    问题:edge浏览器下,固定列的边框消失 原因:ng-zorro-antd表格组件使用nzLeft和nzRight指令固定的表格列,这两个指令的实现css3中的标签: position: -webki ...

  5. 转载-没有IE就没有伤害!浏览器兼容性问题解决方案汇总

    普及:浏览器的兼容性问题,往往是个别浏览器(没错,就是那个与众不同的浏览器)对于一些标准的定义不一致导致的.俗话说:没有IE就没有伤害. 贴士:内容都是自己总结的,不免会出现错误或者bug,欢迎更正和 ...

  6. CSS 多浏览器兼容性问题及解决方案

    兼容性处理要点1.DOCTYPE 影响 CSS 处理 2.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 ...

  7. 笔试常考--浏览器兼容性问题及解决方案(CSS)

    问题一:不同浏览器的标签默认的外补丁和内补丁不同 问题现象:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大. 解决方案:css里加: ;;} 备注:这个是最常见的也 ...

  8. 常见浏览器兼容性问题与解决方案css篇

    浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大. 碰到频率:100% 解决方案:CSS里    ...

  9. JAVASCRIPT 浏览器兼容性问题及解决方案列表

    JAVASCRIPT 浏览器兼容性问题及解决方案列表(1)获取HTML元素只兼容IE:document.all.hello hello 兼容所有: document.getElementById(“h ...

随机推荐

  1. 如何使用Visual Studio 2010在数据库中生成随机测试数据

    测试在项目中是很重要的一个环节,在Visual Studio 2010中,在测试方面已经有很好的支持了,比如有单元测试,负载测试等等.在数据测试的方面,Visual Studio 2010,还支持对数 ...

  2. 利用python下载视频

    我们知道,有些网页上的视频,没有下载的按钮,并且有些视频需要付费下载,很多同学因此很苦恼.不怕,有问题找我,我试试用程序员的方式通俗易懂教会大家. 1.你先下载一个Python,不会下载的同学可以看这 ...

  3. Binder学习笔记(四)—— ServiceManager如何响应checkService请求

    这要从frameworks/native/cmds/servicemanager/service_manager.c:347的main函数说起,该文件编译后生成servicemanager. int ...

  4. A Plug for UNIX UVA - 753(网络流)

    题意:n个插座,m个设备及其插头类型,k种转换器,没有转换器的情况下插头只能插到类型名称相同的插座中,问最少剩几个不匹配的设备 lrj紫书里面讲得挺好的. 先跑一遍floyd,看看插头类型a能否转换为 ...

  5. delay JS延迟执行

    window.onscroll = function () {    throttle(trrigerAdd,window);};function trrigerAdd(){    var $dHei ...

  6. js中 关于DOM的事件操作

    一.JavaScript的组成 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:文档对象 ...

  7. git配置项目

    1.下载安装完git 2.在git oschina上发布项目 3.管理-公匙管理 4.git上面生成公匙 $ cat ~/.ssh/id_rsa.pub 5.将公匙复制进 git oschina 管理 ...

  8. CI框架源码学习笔记7——Utf8.php

    愉快的清明节假期结束了,继续回到CI框架学习.这一节我们来看看Utf8.php文件,它主要是用来做utf8编码,废话不多说,上代码. class CI_Utf8 { /** * Class const ...

  9. C语言数据结构-队列的实现-初始化、销毁、清空、长度、队列头元素、插入、删除、显示操作

    1.数据结构-队列的实现-C语言 //队列的存储结构 #define MAXSIZE 100 typedef struct { int* base; //基地址 int _front; //头指针 i ...

  10. 《图解HTTP》阅读笔记--第七章---确保WEB安全的HTTPS

    第七章.确保WEB安全的HTTPSHTTP的缺点:通信使用明文(不加密),内容可能会被窃听 解决---加密处理: //将通信加密 :通过SSL(安全套接层)---HTTPS(超文本传输安全协议)--- ...