接触了一个PC端网页开发的项目,要求兼容到IE 8,遇到不少坑,在这里记录下:

1、IE8 的兼容性视图

bug描述:IE8有许多新更新,但微软为了兼容以前的IE浏览器,提出了“兼容性视图”的概念,它可以使用低版本IE(6、7)内核,显然这并不是我们想要的,所以需要使用meta标签来强制IE8使用最新的内核渲染页面

bug解决:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

2、display:inline-block不支持

bug描述:在IE8 中,使用display: inline-block没有预期效果。

bug解决:


div {
display: inline-block;
*display: inline;
zoom: 1;
}

3、line-height 异常

bug描述:我们经常使用line-height来使单行文本垂直居中,但此方法在IE8 中有异常表现,具体为:一是IE8 不支持此方法,二是当我们使用hack后,元素不能完全垂直居中

bug解决:


div {
width: 200px;
height: 40px;
line-height: 40px;
line-height: 38px\9; // IE8 hack方法,有像素偏差
}

4、max-width

bug描述:我常在开发中使用 max-width来限制元素的最大宽度,但有时候并不奏效,慢慢摸索才明白IE解析max-width的规则:严格要求父级元素是固定的。

bug解决:给直接父元素写上 width属性

5、placeholder

详见:【bug】—— IE 8-不支持 placeholder 解决方法

6、background-size: cover

bug描述:如果你想使用background-size: cover设置全屏背景,很遗憾IE8办不到...但可以使用IE独有的AlphaImageLoader滤镜来实现

bug解决:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=Enabled, sizingMethod=Size , src=URL)

将sizingMethod设置为scale就OK了。还没完,如果你在此背景之上放置了链接,那这个链接是无法点击的。一般情况下的解决办法是为链接或按钮添加position:relative使其相对浮动。

7、clearfix


.clearfix:before,
.clearfix:after {
content: " "; /* 1 */
display: table; /* 2 */
} .clearfix:after {
clear: both;
} .clearfix {
*zoom: 1;
}

8、美化input选择文件框

html:

<div class="wrap">
<img src="xxx" alt="">
<input accept="image/jpeg,image/jpg,image/png"> </div>

.wrap {
width: 190px;
min-height: 100px;
display: inline-block;
position: relative;
}
.warp img {
position: absolute;
top:0;
left: 0;
width: 100%;
height: 100%;
}
.wrap input {
width: 100%!important;
height: 100%!important;
position: absolute;
top:0;
left: 0;
font-size: 200px; // 解决IE8 - 下input高度撑不开的bug
opacity: 0;
-ms-filter: 'alpha(opacity=0)';
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
}

[兼容]——IE 8 常见兼容性问题的更多相关文章

  1. html常见兼容性问题

    html常见兼容性问题? 1.双边距BUG float引起的  使用display 2.3像素问题 使用float引起的 使用dislpay:inline -3px 3.超链接hover 点击后失效 ...

  2. css 常见兼容性问题及解决方案

    css 兼容问题一直是困扰前端开发人员的大难题,提到兼容性立马想到了万恶的ie6,说多了都是泪,还是整理一些常见的兼容性问题以及解决的方案吧. 一. 浮动元素双边距. ①条件:ie6下,如果给元素设置 ...

  3. CSS常见兼容性问题总结

    原文链接:渔人码头 http://www.cnblogs.com/imwtr/p/4340010.html?utm_source=tuicool&utm_medium=referral 浏览器 ...

  4. JS常见兼容性问题

    兼容性问题:函数(方法)兼容 描述:部分W3C指定的函数,有部分老的浏览器不支持 解决: 条件判断,如果有,则使用,添加原型方法,例如 String 的 trim 方法 if(!String.prot ...

  5. IE下常见兼容性问题总结

    概述 本小菜平时主要写后台程序,偶尔也会去写点前端页面,写html.css.js的时候,会同时开着ie6.ie7.ie8.ie9.chrome.firefox等浏览器进行页面测试,和大部分前端开发一样 ...

  6. web端常见兼容性问题整理

    一.html和css 各浏览器的默认内外边距不一致问题 最明显的是ul标签内外边距问题,ul标签在IE-7中,有个默认的外边距,但是在IE8以上及其他浏览器中有个默认的内边距. 解决办法:*{marg ...

  7. js常见兼容性问题以及解决方法

    1.关于使用 event对象,出现的兼容性问题IE/Chrom: event.clientX;event.clientYFF/IE9以上/Chrom: 传参e   e.clientX;e.client ...

  8. 前端之CSS常见兼容性问题

    1.双倍浮动BUG: 描述:块状元素设置了float属性后,又设置了横向的margin值,在IE6下显示的margin值要比设置的值大: 解决方案:给float的元素添加 display:inline ...

  9. CSS常见兼容性问题

    DOCTYPE 影响 CSS 处理 Firefox: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 Firefox: body 设置 tex ...

随机推荐

  1. 讲真的,千万别得罪会PS的人

    传说中有一种软件炒鸡可怕 那就是PS,专业术语是photoshop! 它能让你貌美如花 也能让你瞬间丑得掉渣 更可怕的是网络上大神的出现 简直让我们难以想象的厉害! 下面大家一起来欣赏一下 那些大神帮 ...

  2. 测试这个才可以打包 我的PYQt matplotlib numpy 等程序

    from distutils.core import setup import py2exe import matplotlib import sys import FileDialog import ...

  3. XE4 for ios 谨慎处理字符串

    由于xe4 for ios  里面的字符串处理有变化,具体可以参考官方文档,这两天帮一个朋友调试ios 的 应用,由于没有注意这一块,折腾了很长时间.特此记录下来,希望其他人不要走弯路. 以下面代码为 ...

  4. 2018.07.04 POJ 1654 Area(简单计算几何)

    Area Time Limit: 1000MS Memory Limit: 10000K Description You are going to compute the area of a spec ...

  5. 2018.09.02 Atcoder Regular Contest 102简要题解

    比赛传送门 T1 Triangular Relationship 分析之后发现有两种情况: 1. n为奇数,那么所有数都是k的倍数. 2. n为偶数,那么所有数都是k/2的倍数. 然后就可以愉快A题了 ...

  6. (深搜)Sum It Up -- poj --1564

    链接: http://poj.org/problem?id=1564 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#probl ...

  7. (并查集 建立关系)Parity game -- POJ -1733

    链接: http://poj.org/problem?id=1733 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#probl ...

  8. jvm不打印异常栈

    生产环境抛异常,但却没有将堆栈信息输出到日志,确认打印日志方法正确logger.error("somthing error", ex); JVM启动参数加上-XX:-OmitSta ...

  9. Delphi for iOS开发指南(3):创建一个FireMonkey iOS应用程序

    http://cache.baiducontent.com/c?m=9d78d513d9d431a94f9d92697d60c015134381132ba1d0020fa48449e3732b4b50 ...

  10. StructureMap依赖注入

    IOC:控制反转,是一种设计模式.一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制:第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系.他们的依赖关系 ...