IE8兼容总结

<--已过时,仅供参考-->

页面部分:

  • 每个Head部分需加入下列标签(针对ie和360的问题):
1. <meta http-equiv="X-UA-Compatible" content="IE=edge">        //强制360使用最新的内核渲染页面
2. <meta name="renderer" content="webkit">                  //让国产浏览器优先以Chrome内核来渲染页面
3. <!--[if IE 8]>
<script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js "></script>
    <script src="http://apps.bdimg.com/libs/respond.js/1.4.2/respond.js"></script>
    <![endif]--> 

这些处理只针对IE8,所以必须使用条件注释,防止延长加载时间。必须放在head靠前的位置;

样式部分:

  • Base.css文件是项目共用部分,首先得进行css reset,统一各个浏览器下元素的样式(最好遵循用到哪些标签就清对应标签的样式)。
body{font: 14px/1.5 arial, 'Microsoft YaHei'; color: #999;}
body,dl,dd,h1,h2,h3,h4,h5,h6,p{margin: 0;}
ul,ol{margin: 0; padding: 0;}
li{list-style: none;}
img{border: none; display: block;}
input, textarea{padding: none; border: none; outline: none; resize: none;}
input::-ms-clear, input::-ms-reveal{display: none;}  /*清除ie input默认行为*/
a{text-decoration: none; color: #666;}
a:focus{outline: none!important; -moz-outline: none;}
i{font-style: normal;}
b, strong{font-weight: normal;}
table{border-collapse: collapse; border-spacing: 0}
th, td{padding: 0;}
select{border: 1px solid #ccc; -webkit-appearance: none; -moz-appearance: none; appearance: none; }
select::-ms-expand{display: none;} /* 清除select下拉框在ie下的默认行为*/

如果页面较多、较复杂,为了更好达到样式统一,借用normalize.css来做css reset处理;利用预处理器scss模块方式编写css文件,加速开发速度;页面中的小icon尽量使用自定义字体或雪碧图:

IE8下的一些兼容问题
1.IE8对CSS3属性支持不好,需引入CSS PIE文件单独进行处理;

CSS PIE支持的CSS3属性有border-radiusbox-shadowborder-imagemultiple background imageslinear-gradient等;
需要注意的点:
a) PIE.htc文件需放在项目根目录;
b) 给对应的元素添加样式时,同时给自身或父级元素加上position: relative;
c) 最后加上behavior: url(pie.htc);

.pie_radius{
width: 360px;
height: 200px;
background-color: #333;
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
position: relative;
behavior: url(pie.htc);
}
  1. IE8不支持placeholder属性
    IE8下不支持HTML5属性placeholder,不过解决此问题的js插件挺多的,比如:jquery-placeholder。
  1. IE8不支持last-child伪类选择器
    first-child是CSS2的内容,但是last-child就不是了,所以IE8不买账。推荐的做法不是使用last-child,而是给最后一个元素设置一个.last的class,然后对此进行样式设置。

  2. IE8不支持rgba(),为IE9以下单独设置样式:

<style>
#box{
width: 100px;
height: 100px;
border: 1px solid #ccc;
background: rgba(0, 0, 0, .5);
}
</style>
<!--[if lt IE9]>
<style type="text/css">
#box{
background: transparent;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr =#7f000000, endColorstr =#7f000000);
zoom: 1;
}
</style>
<![endif]-->

解释下#7f000000,第一部分是#号后面的7f。是rgba透明度0.5的IEfilter值。从0.1到0.9每个数字对应一个IEfilter值。对应关系如下:

image

5.IE8不支持渐变,兼容办法为:

a{
background: -webkit-linear-gradient(top, #3a8fd8, #449ce9);
background: -moz-linear-gradient(top, #3a8fd8, #449ce9);
background: -ms-linear-gradient(top, #3a8fd8, #449ce9);
background: -o-linear-gradient(top, #3a8fd8, #449ce9);
background: linear-gradient(top, #3a8fd8, #449ce9);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#3a8fd8', endColorstr='#449ce9',GradientType='0')";
} /* IE8 ,GradientType取值为0货1,0代表渐变从上至下,1代表渐变从左至右;*/
  • 火狐下的兼容:
    在friefox下用table布局时, 如果不设定collapse属性的值为inherit,则其表现为下图(线条宽度会有差别):


    image

设定为inherit值的表现:


image

移动端

  • 头部meta标签:
<!--1.自适应设备宽度,并禁止用户缩放:-->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<!--2. 在webapp模式下,改变顶部状态条的颜色(ios):-->
    <meta name="apple-touch-fullscreen" content="yes" />
<!--3. 在webapp模式下,改变顶部状态条的颜色(ios):-->
    <meta name="apple-mobile-web-app-status-bar-style" content="default" />
<!--4.UC强制竖屏:-->
    <meta name="screen-orientation" content="portrait">
<!--5.UC强制全屏:-->
    <meta name="full-screen" content="yes">
<!--6. UC应用模式:-->
    <meta name="browsermode" content="application">
<!--7. QQ强制竖屏:-->
    <meta name="x5-orientation" content="portrait">
<!--8. QQ强制全屏:-->
    <meta name="x5-fullscreen" content="true">
<!--9. QQ应用模式:-->
    <meta name="x5-page-mode" content="app">
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 1:使用meta标签调节浏览器的渲染方式(使用meta标签来强制IE8使用最新的内核渲染页面) <meta htt...
    stars甜阅读 864评论 0 2
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,629评论 1 92
  • 本文知识解决了实际开发的问题,所以转载,原文地址:http://www.hustlzp.com/post/2014...
    ddai_Q阅读 5,727评论 7 12
  • IE8兼容 本文知识解决了实际开发的问题,所以转载,原文地址:http://www.hustlzp.com/pos...
    该昵称注册中阅读 347评论 2 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,103评论 1 45