关于IE浏览器实在太坑爹了,但你又不得不去解决它,不过就本人所知,IE8—IE10差别不大,至少本人还没有遇到过在IE8环境下到了IE9及以上版本就出现坑爹的问题,但我们又不得不面对IE8以下的版本,说实话,我也不想去处理IE所谓的Bug,但又不得不去处理。谁叫我们都是干苦逼的职业的!

一、CSS规则(IE CSS hacks)

其实也只是在样式里说明一下只有IE识别的CSS规则。比如,在CSS属性前置一个”*”区分IE7和低版本,而前置一个”_”则区分IE7及低版本。但是这个方法最好别用(不是我不推荐),因为这个CSS规则还不能被W3C CSS识别(这就是坑爹之处)。

  • * IE8 及 低版本: 在CSS属性后置”\9″, 如 height:100%\9;
  • * IE7 及 低版本: 在CSS属性前置”*”, 如 *height:100%;
  • * IE6 及 低版本: 在CSS属性前置”_”, 如 _height:100%;
 .joks {
background: gray; /* standard */ background: pink\9; /* IE 8 and below */ *background: green; /* IE 7 and below */ _background: blue; /* IE 6 */
}

二、给HTML加个if条件判断

这办法其实是Paul Irish大神发明的。它实现的办法是通过IE条件判断来给HTML设置不同的className,然后在CSS中通过给不同的className下的后代设置不同的样式即可实现。这个办法比较可行,W3C能识别。

 <!--[if lt IE 7 ]>
<html class="ie6"> < ![endif]-->
<!--[if IE 7 ]> </html>
<html class="ie7"> < ![endif]-->
<!--[if IE 8 ]>
</html>
<html class="ie8"> < ![endif]-->
<!--[if IE 9 ]>
</html>

三、用IE条件判断语句

其实说白了,这个方法大家都在用,而且用的人还挺多的,没办法,至少大牛们是不会这么干的(别急,大牛的方法我会讲的。)

IE条件判断语句也许是用的最多的区分IE版本(IE6, IE7, IE8)的办法了(我刚刚已经说了,IE8以上的版本差别不大)。看看下面用来区分IE不同版本的代码:

  • <!--[if IE 8]> = IE8版本
  • <!--[if lt IE 8]> = IE7版本以低版本
  • <!--[if gte IE 8]> = IE8版本及高版本
 <!--[if IE 8]>
<style type="text/css">
/* css for IE 8 */
</style>
< ![endif]--> <!--[if lt IE 8]>
<link href="ie7.css" rel="stylesheet" type="text/css" />
< ![endif]-->

四、自我感觉方法(大牛靠感觉来做)

这个方法我可不推荐,但是如果你了解每个版本的Bug的话,那你到可以试试,当然了,IE6和IE7再到IE8识别的间距有所不同,但当你设计版面的时候,我个人推荐你可以试试把间距扩大到20px以上,这样才不会出现IE间距的Bug,当然了,其它的Bug方式还有许多,这里我就不一一介绍了!至少我想说,避免Bug是不可能的,规则是死的,但方法是活的,靠的是想像力而已。

如何让CSS区别IE版本的更多相关文章

  1. asp.net mvc处理css和js版本问题

    当服务的修改了js和css内容后,发布到IIS服务器上,总是导致客户端内容显示不正确,原因是客户端存在缓存,还是加载的原来的js和css问题. 在css或js后面添加版本号,例如: <scrip ...

  2. 15款不容错过的前端开发Javascript和css类库 - 2017版本~

    前端的JS和CSS类库日新月异, 在今天这篇介绍中,我们将精挑细选15款超棒的JS/CSS类库, 希望大家在开发过程中会觉得有帮助~ Core UI 基于Bootstrap4的一套UI类库, Core ...

  3. link和@import引入css 区别,不建议使用@import

    众多周知,有两种方法可以在页面中导入样式文件. <link href="a.css" rel="stylesheet"> <style> ...

  4. jQuery设置checkbox全选(区别jQuery版本)

    jQuery设置checkbox全选在网上有各种文章介绍,但是为什么在我们用他们的代码的时候就没有效果呢? 如果你的代码一点错误都没有,先不要急着怀疑人家代码的正确性,也许只是人家跟你用的jQuery ...

  5. i386和x86-64区别通俗易懂版本(转)

    x86架构首度出现在1978年推出的Intel 8086中央处理器,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的.Intel之后又推出了包括80186.80 ...

  6. css,区别pc端ipad端的样式

    摘自: http://blog.csdn.net/pm_mybook/article/details/54602107 /* 横屏 */ @media all and (orientation:lan ...

  7. css中import与link用法区别

    方式:引入CSS的方法有两种,一种是@import,一种是link @import url('地址');//注意,这种方式可以放在页面也可以放在css文件中<link href="地址 ...

  8. 第 13 章 CSS 选择器[上]

    学习要点: 1.选择器总汇 2.基本选择器 3.复合选择器 4.伪元素选择器 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 选择器,通过选择器定位到想要设置样式的元素.目前 CSS 选择器的 ...

  9. CSS样式----图文详解:css样式表和选择器

    主要内容 CSS概述 CSS和HTML结合的三种方式:行内样式表.内嵌样式表.外部样式表 CSS四种基本选择器:标签选择器.类选择器.ID选择器.通用选择器 CSS三种扩展选择器:组合选择器.后代选择 ...

随机推荐

  1. SEQ序号与ACK序号理解总结

    备查 SEQ序号与ACK序号理解总结

  2. MySQL大数据量分页查询

    mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 测试实验 1.   直接用limit start, count分页语句, 也是我程序中用的方法: select * from p ...

  3. css2.1实现圆角边框

    虽然css3的border-radius实现圆角很简单,但是我还是认为css2.1中好多技术还是很值得学习的,我也是后来才知道这就是传说中的滑动门技术.脑洞大开啊 附上demo <!DOCTYP ...

  4. Android内存优化之OOM

    内容大多都是和OOM有关的实践总结概要.理解错误或是偏差的地方,还请多包涵指正,谢谢!本人Q:1524447071 (一)Android的内存管理机制 Google在Android的官网上有这样一篇文 ...

  5. Android查看stdout 和stderr

        在默认状态下,Android系统有stdout和stderr(System.out和System.err)输出到/dev/null,在运 行Dalvik VM的进程中,有一个系统可以备份日志文 ...

  6. 奇葩问题:同样的字符串equal为false

    问题:什么情况下 "同样" 的字符串会不equal呢?例如   "a".equal("a")  => false 在你看来,这可能是个 ...

  7. Android M以上运行时权限(Google官方出品)

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6690152.html 网上运行时权限的例子.Demo无计其数,但是和Google官方出品的比起来,都显得很 ...

  8. --save 和 --save-dev的区别

    --save是对生产环境所需依赖的声明(开发应用中使用的框架,库,比如jquery,bootstrap等) --save-dev是对开发环境所需依赖的声明(构建工具,测试工具,比如babel,gulp ...

  9. 实现简单的跨站脚本攻击(XSS)

    我们来通俗的了解一下什么是跨站脚本攻击(XSS):在表单中提交 一段 js代码 ,提交的内容被展示到页面时 ,js会被浏览器解析 打个比方吧,比如我现在写的这篇博客,写完以后我要发表对吧? 发表这个过 ...

  10. Android -- 贝塞尔实现水波纹动画(划重点!!)

    1,昨天看到了一个挺好的ui效果,是使用贝塞尔曲线实现的,就和大家来分享分享,还有,在写博客的时候我经常会把自己在做某种效果时的一些问题给写出来,而不是像很多文章直接就给出了解决方法,这里给大家解释一 ...