好程序员前端教程-关于浏览器的兼容问题

好程序员前端教程-关于浏览器的兼容问题
常见浏览器兼容问题:
1.li在IE中底部3像素的BUG。解决方案:在< li>上加float:left;即可解决

  1. IE6中奇数宽高的BUG。解决方案:就是将外部相对定位的div宽度改成偶数。高度也是一样的。
  2. IE6文字溢出BUG。引发这种BUG有以下几个条件:
    1)是注释引起的,删除所有注释即可。
    2)hidden的input直接放在form下。
    3)display为none的div也有可能引发此bug。
    4)可以通过外面再包一次DIV解决。
    由注释造成文字溢出,属于IE6的BUG,溢出文字的字数=注释的条数*2-1,这里的字数在中文或英文数字时都成立。注释坐在位置与溢出位置、区块的浮动以及文字区块的固定宽度有必然联系。图片描述
    解决办法:
    1)不放置注释。最简单、最快捷的解决方法;
    2)注释不要放置于2个浮动的区块之间;
    3)将文字区块包含在新的< div>< /div>之间,如:<divstyle=”float:right;width:400px”>< div>↓这就是多出来的那只猪< /div>< /div>;
    4)去除文字区块的固定宽度,与3有相似之处;
    5)在后面加一个< br/>或者空格;(不推荐)
    6)使用IE注释格式,如:<!–[if!IE]>Put your commentary in here…<![endif]–>。
    7)给盒子加position:relative;属性
  3. 样式中文注释后引发失效。
    满足下面条件就会引起 注释下面的样式不起作用:
    1)css有中文注释。
    2)css为ANSI编码。
    3) html为utf-8编码。
    解决方法:
    1) 去掉中文注释,用英文注释。
    2.)统一css 和 html 的编码。
    建议采用第二种解决方法:ps: css为uft-8,html为ANSI 不会出现失效的情况。
  4. li在IE中底部空行的BUG。
    IE6中列表的常见问题出现在当某个 li 中的内容是一个 display: block 的锚点(anchor)时。在这种情况下,列表元素之间的空格将不会被忽略而且通常会显示成额外的一行夹在每个 li 之间。一种避免这种竖直方向多余空白的解决方法是赋予这些锚点 layout。这样还有一个好处就是可以让整个锚点的矩形区域都可以响应鼠标点击。
    解决方法:
    1) 在li a 样式中加入zoom:1;
    2)在li 样式中加入display:inline ;
    3) 将< li>标签写成一行;
    4)在li a 样式中加入width:100%或者一个宽度值。
    建议采用第4二种解决方法
  5. 父级使用padding后子元素绝对定位的BUG。
    在父层使用position:relative;和padding(当然0值除外)后,ie6中层的定位起始坐标是从padding后的位置算起,而其他则从层的真实位置算起,而非被padding改变后的那个位置。这点造成使用position:absolute进行层定位时ie6与其他浏览器的表现不一样。
    解决方法:给外层加宽度或zoom:1。
  6. display:none引起的3像素的BUG
    解决方案1:将最后一个div加一个margin-right:-3px。如:<divstyle=“display: none;”>< /div><divstyle=“background:green; width:10px;float:left; height:300px;margin-right:-3px”>< /div>
    解决方案2:将display: none的div换一个形式隐藏。如:<divstyle="position:absolute;visibility: hidden ">< /div>
  7. IE6的图片3px问题
    IE 6 中 ,DIV 使用背景图片(或直接插入图片在DIV中)的时候,在图片的下端会出现一条空白间隔,经测量,刚好是 3px .
    解决:IE6默认字号是12pt,默认行高是normal。
  8. 给DIV加上:font-size: 0px;
  9. 设置img为“display:block;”;
  10. 即设置图片的vertical-align属性为“top,text-top,bottom,text-bottom”也可以解决;
    4.设置图片的浮动属性,“#sub img {float:left;}”;
    5.取消图片标签和其父对象的最后一个结束标签之间的空格,这种方法适用范围比较窄,只限于父对象中只包含一个图片对象,而且和父对象的结束标签之间不能有任何空隙。
  11. IE6双倍浮动BUG
    解决:解决办法是加上display:inline。
    11 .IE6的著名3px BUG(断头台bug)
    两个层,一个浮动,一个不浮动,把浮动的一个放在不浮动层中,你会发现两个之间有点间隙,宽度为3px。这个问题是最让人头疼的问题了。
    解决方法:
    1)所有的层都浮动 把右边那个层也设置成浮动层就可以消除这可恶的3px间隔。
    2)给左边的层,应用margin-right:-3px;,同样可解决IE 3px bug。
  12. Ie6图片导致行距无效
    解决方法:对和文字相连接的img、input、textarea、select、object等元素加以属性 margin: (所属line-height-自身高度)/2px 0)。
  13. IE6使用滤镜使PNG图片透明后,容器内链接失效的问题。
    解决方法是为链接定义一个相对定位属性。position:relative。
    存在兼容性问题的css属性设置
    1)body,div,…{margin:0;padding:0;};
    2)ul,ol,li{list-style-type:none;};
    3)clear{clear:both;height:0;overflow:hidden;};
    4)filter:alpha(opacity = 50);滤镜设置透明度;
    5)a{text-decoration:none;border:none;} ;
    6)有float,有横向margin时,ie双倍间距,设置display:inline。

原文地址:https://blog.51cto.com/14249561/2366489

时间: 2024-07-29 21:11:40

好程序员前端教程-关于浏览器的兼容问题的相关文章

好程序员前端教程-讲给小白:你不知道的HTML5

好程序员前端教程-讲给小白:你不知道的HTML5一.HTML5概念HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web应用开发的一系列标准,成为第一个将Web做为应用开发平台的HTML语言.HTML5定义了一系列新元素,如新语义标签.智能表单.多媒体标签等,可以帮助开发者创建富互联网应用,同时有令人眼花缭乱的css 3,还提供了一些Javascript API,如地理定位.重力感应.硬件访问等,可以在浏览器内实现类原生应用,制作webApp,甚至结合Canvas我们

好程序员前端教程-javascript的面向对象

好程序员前端教程-javascript的面向对象一.什么是面向对象?1.面向对象就是把构成问题是无分解成多个对象,建立对象不是为了完成某个步骤,而是描述某个事物在这个解决问题的步骤中的行为.2.面向对象是一种思维方法.3·面向对象是一种编程方法.4·面向对象并不只针对某一种编程语言.二.面向对象和面向过程的区别和联系?1.面向过程侧重整个问题的解决步骤,着眼局部或者具体.2·面向对象侧重具体的功能,让某个对象具有这样的功能,更侧重整体.面向过程的优点:1.流程化使得编程任务明确,在开发之前基本考

好程序员前端教程面对对象与原型原型链

好程序员前端教程面对对象与原型原型链一.面向对象:面向对象是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的灵活性.重用性和扩展性.对象是把数据及对数据的操作方法放在一起,作为一个相互依存的整体.再说一下类与对象,类描述了一组有相同特性和相同行为的对象,具有相同属性和相同方法的对象的抽象就是类.即对象的抽象是类,类的实例是对象.在面向对象的编程中,把用类创建对象的过程称为实例化.面向过程与面向对象的区别在于面向过程是一种直接的编程方法,它是按照编程语言的思路考虑

程序员的操作系统、浏览器

程序员的操作系统 注:本文摘自作者正在写的新书<云时代的程序猿> 2014.7.10 一路走来 在我上大二之前,除了windows操作系统,应该是没见过别的操作系统,当时觉得可能所有电脑都和windows差不多,再后来,我认识了linux,知道了linux还有很多发行版,同时也听说了mac. 可能我们那个时代的孩子都和我差不多. 说说国产操作系统 在写本节之前,我不小心看了一篇文章:国产操作系统大盘点,包括"红旗linux"(倒闭了)."银河麒麟".&q

黑马程序员前端培训:高效的前端编程入门训练方法

如今,“前端”这个词已经成为一个大方向的概念,其涵盖的范围可以说非常广:比如浏览器的网页开发.移动App开发.桌面应用开发等等.但是,立足到每一个具体的问题上,前端开发都需要使用到JavaScript这种编程语言.所以,前端学习基础的基础,是要掌握JavaScript这门编程语言. 黑马程序员前端培训,历时多年积累,开设了前端全栈课程.并且通过几千名学员的学习.工作反馈,总结与提炼出以下三点编程入门的训练方法,给想学习前端的初学者一些建议和参考.既然要入门就需要经历一些训练,编程是没有捷径的,可

好程序员Java教程解读什么是swing

好程序员Java教程解读什么是swing,swing是java GUI应用程序,也就是java做的桌面应用.运行swing程序要求用户电脑上有java环境,这一点不太现实也不方便.现在的java主要以web方向为主,做移动应用和网站开发,分布式.多线程.高并发等都是java程序员发展的方向. 虽然企业开发中用到的不多,事实上在我十几年的开发生涯中没有用到过,我的朋友也没有做swing的.但也不能说学习它就没有用. 比如swing中的控件,如表格.树.面板.菜单等控件,各种事件如键盘.鼠标事件.结

【系列】后端程序员前端之路(2016/3/24更新)

后端程序员前端之路01 后端程序员前端之路02--CSS选择器详解 后端程序员前端之路03--HTML语义化 后端程序员前端之路04--html元素分类 后端程序员前端之路05--盒子模型详解 后端程序员前端之路06--布局模型,颜色值,长度值 --不断更新中,如果有帮助到你,请点“推荐”.你的支持,是我坚持的动力O(∩_∩)O谢谢~

黑马程序员前端培训:用好课程打造高薪学员

黑马程序员前端培训:用好课程打造高薪学员   前端开发无疑是互联网行业的新贵.目前,前端开发工程师的薪资在8000-25000之间.黑马程序员顺应市场需求,推出前端与移动开发课程,致力于培养既懂前端又懂后端,既能开发网页端,也能开发移动端的Web全栈开发工程师. 作为IT教育的老牌机构,黑马程序员深知好的课程体系是教学的根本.只有优质的课程,才能打造出拿高薪的学员! 黑马程序员前端课程由资深课程研发团队,历时三年精心打造打磨而成,课程体系贯穿全栈工程师所需具备的综合技术能力. 黑马程序员前端课程

好程序员Python教程分享python之变量

好程序员Python教程分享python之变量,变量(variable)是必经之路,它是学习python初始时,就会接触到的一个新的知识点,也是一个需要熟知的概念.python是一种动态类型语言,在赋值的执行中可以绑定不同类型的值,这个过程叫做变量赋值操作,赋值同时确定了变量类型. 什么是变量 在玩蛇网python学习过程中会用到许多数据,那为了方便操作,需要把这些数据分别用一个简单的名字代表,方便在接下来的程序中引用.变量就是代表某个数据(值)的名称. python变量赋值如何定义操作 变量定