美文网首页
IE6常见兼容性问题-1

IE6常见兼容性问题-1

作者: 王饱饱 | 来源:发表于2017-06-28 23:48 被阅读0次

    Ba la la la ~ 读者朋友,你们好啊,又到了冷锋时间,话不多说,发车!


    1.<!DOCTYPE HTML>文档类型的声明。

    产生条件:
    IE6浏览器,当我们没有书写这个文档声明的时候,会触发IE6浏览器的怪异解析现象;

    解决办法:书写文档声明。

    2.不同浏览器当中,很多的标签的默认样式不同,如默认的外部丁内补丁。

    产生条件:不同浏览器;

    解决办法:利用CSS reset文件进行样式的清除,然后再根据需要进行设置。

    html{font-family:"微软雅黑",Arial,sans-serif}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,form,fieldset,input,button,textarea,p,th,td{padding:0;margin:0;font-family:Microsoft YaHei,sans-serif,Arial}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}a{text-decoration:none;color:#000;outline:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit}input,button,textarea,select{*font-size:100%}a{-webkit-transition:all 0.5s linear;-moz-transition:all 0.5s linear;-ms-transition:all 0.5s linear;-o-transition:all 0.5s linear}

    为防止不同浏览器默认样式对于网页布局样式造成的影响,通常我们在
    HTML文件的头部引入上面这段重置代码,将一些浏览器所不同的样式以及部分标签的默认样式清除掉。

    3.横向双倍外边距

    产生条件:在
    IE6中块元素浮动后,会出现横向双倍
    margin
    现象。

    解决办法:
    在float标签的样式控制中加入display:inline

    IE6存在不少的兼容问题,今天要说的是IE6 的 横向双倍外边距

    横向双倍外边距的触发条件:

    当浮动元素的浮动方向和浮动边界的方向一致。此时用
    IE6查看网页,就会发现,设置的横向的边距变成了双倍。

    如:元素向左浮动并且设置了左侧的外边距出现了这样的双边距
    bug。同理,元素向右浮动并且设置右边距也会出现同样的情况。同一行如果有多个浮动元素,第一个浮动元素会出现这个双边距bug,其它的浮动元素则不会。

    那么,如何修正这个
    IE6下的横向双倍外边距的Bug呢?

    只需要给浮动元素加上
    display:inline;的CSS属性就可以了。

    4.默认行高

    产生条件:
    IE6、IE7、遨游浏览器;设置的文字高度超出盒模型内容区域设置的高度时会影响布局。

    解决办法:给超出高度的标签设置
    overflow:hidden;或者将文字的行高line-height设置为小于块的高度。

    5.img外部的border

    产生条件:
    img外部有a标签,即img标签有链接时

    解决办法:设置
    img边框border:0;

    **6.图片默认有间距。

    产生条件:
    img标签(每个img之后敲了回车)

    解决办法:为
    img设置float的浮动布局方式。

    7.经典3像素bug

    产生条件:
    IE6浏览器,浮动块元素与未浮动块元素处于同一行,有默认的3px间距。

    解决办法:设置非浮动元素浮动。

    8.默认行高

    产生条件:清除浮动的时候,有些人会采取一种
    清浮动的方法**,使用一个空的
    div,然后为这个div设置{clear:both}。在大部分浏览器当中,这样做是没有任何问题的,但是在IE6浏览器当中,div即使是空的,也会存在默认行高。

    解决办法:设置其高度为0,并设置overflow:hidden。{height:0;overflow:hidden;clear:both;}

    选择清浮动位置时应注意以下:

    1、清浮动一定要在浮动标签完成浮动布局以后添加,否则会影响到浮动标签布局;

    2、清除浮动必须与前面的标签属于同级关系。

    ①clear属性定义了元素某个方向上不允许出现浮动元素:
    none
    (允许两边都可以有浮动对象)
    /left(…)/right(不允许右边有浮动对象)/both(不允许有浮动对象);

    ②空标签清除浮动:在HTML页面中加入一个空标签用来清除浮动。

    HTML:
    <div class="clear"> </div>

    CSS:.clear{clear:both;hegiht:0;overflow:hidden;}

    clear:both;是清除所有浮动;
    height:0;overflow:hidden;是用来改变IE6下标签有默认的低于10px的行高时将以10px的高度显示的bug。

    但是空标签清浮动会增加多余的代码。

    ③overflow:在需要清除浮动的腹肌标签中加入overflow即可,在IE6中不认识此属性则加入zoom:1;或者height:1%;css样式改为:.out{overflow:auto;zoom:1;}
    该属性对于父标签设置的高度小于子标签时,IE6/7、遨游则以下拉框形式出现,而火狐、谷歌、欧鹏、IE8会将子标签超出部分隐藏掉。

    overflow:visible属性只能对IE6/7、遨游起作用,对火狐、谷歌、欧鹏、IE8无清浮作用。

    overflow:visible(不剪切内容也不添加滚动条)/auto(是body对象和textarea的默认值,在需要时剪切内容并添加滚动条)/hidden(超出部分隐藏)/scroll(总是显示滚动条);

    ④after清浮动:
    css样式为:
    .out{zoom:1;}/==for IE6/7 Maxthon2==/
    outer:after {clear:both;content:"";visible:hidden;display:block;}/==for FF/chrome/opera/IE8==/

    其中
    clear:both;只清除所有浮动;content:"";display:block;对于FF/chrome/opera/IE8不能缺少,content()可以取空值。

    ⑤子标签浮动时,给父标签浮动

    ⑥下一标签直接清浮动:兄弟标签浮动时,下一标签直接写入清除clear:both;就可以。

    ⑦使用position:absolute;清除浮动。

    9.a标签hover不适用于所有标签

    产生条件:
    IE6浏览器中hover只支持a标签的使用,不支持一切其它标签使用;

    解决办法:合理用
    a标签嵌套其他行内标签或者用javascript模拟a的hover效果;详情请查看日志:兼容IE6 a标签hover效果**

    10.table标签当中border-color属性设置无效

    产生条件:
    IE6中table设置属性border-color无效;

    解决办法:运用
    CSS样式进行控制,而不是使用属性进行样式的处理。

    11.png格式图片

    产生条件:
    IE6浏览器,不支持透明;

    解决办法:使用
    javascript进行处理;或者使用gif、jpg图像替代掉png图片的使用。

    12.透明rgba与opacity

    产生条件:
    IE6****,7,8****不支持此两种透明的设置方法;


    解决办法:使用
    IE6当中的滤镜filter替代掉,如:opacity:0.6;filter:alpha(opacity=60)。


    以上为个人意见,如有雷同,纯属巧合,欢迎大家多提意见!Bey 了 个 Bey ~

    相关文章

      网友评论

          本文标题:IE6常见兼容性问题-1

          本文链接:https://www.haomeiwen.com/subject/vhspcxtx.html