我们通常使用IE条件判断语言来处理IE的CSS问题,但其实还是有其他的一些方法来处理IE的CSS bug的。

一、IE条件判断语句

IE条件判断语句也许是用的最多的区分IE版本(IE6, IE7, 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]-->

二、CSS规则(IE CSS hacks)

另一个办法就是在样式文件中声明只有IE识别的CSS规则。比如,在CSS属性前置一个”*”区分IE7和低版本,而前置一个”_”则区分IE6及低版本。但是,很多时候这个方法不被推荐,因为这些CSS规则并不能被W3C CSS 验证成功。

* IE8 及 低版本: 在CSS属性后置”9″, 如 height:1000px9;
    * IE7 及 低版本: 在CSS属性前置”*”, 如 *height:1000px;
    * IE6 及 低版本: 在CSS属性前置”_”, 如 _height:1000px;

.box {
background: gray; /* standard */ background: pink9; /* IE 8 and below */ *background: green; /* IE 7 and below */ _background: blue; /* IE 6 */
}

  

三、HTML条件判断,给出不同的className

第三个办法是由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><html class="ie9"> < ![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> </html><html> <!--<![endif]-->
</html>

 

区分IE版本的三个方法的更多相关文章

  1. Docker MySql 查看版本的三种方法

    目录 Docker MySql 查看版本的三种方法 1.mysql -V命令查看版本 2.status命令查看版本 3.version命令查看版本 Docker MySql 查看版本的三种方法 1.m ...

  2. 三种方法查看MySQL数据库的版本

    1.使用-V参数 首先我们想到的肯定就是查看版本号的参数命令,参数为-V(大写字母)或者--version 使用方法: D:\xampp\mysql\bin>mysql -V 或者 D:\xam ...

  3. JS代码判断浏览器版本,支持IE6,IE7,IE8,IE9!三种方法!

    web开发的时候有时候会用到JS检测IE的版本,下面是检测Microsoft Internet Explorer版本的三种代码! 方法一: <script type="text/jav ...

  4. Java实现ping功能的三种方法及Linux的区分

    前大半部份转自:https://blog.csdn.net/futudeniaodan/article/details/52317650 检测设备的运行状态,有的是使用ping的方式来检测的.所以需要 ...

  5. 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库

    7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库 三种方法 rpm工具----->类型windows下的exe程序 ...

  6. 安装软件包的三种方法、RPM包介绍、rpm、yum工具用法、yum搭建本地仓库

    第5周第3次课(4月18日) 课程内容: 7.1 安装软件包的三种方法7.2 rpm包介绍7.3 rpm工具用法7.4 yum工具用法7.5 yum搭建本地仓库 7.1 安装软件包的三种方法 rpm工 ...

  7. 使用userAgent区分浏览器版本

    使用userAgent区分浏览器版本:https://blog.csdn.net/n447194252/article/details/76255489 JS根据userAgent值来判断浏览器的类型 ...

  8. 【转】ubuntu 配置 java jdk1.8 环境,增加多版本 jdk 和切换方法

    一.安装java jdk1.8 1.添加软件源 sudo add-apt-repository ppa:webupd8team/java 2.更新软件源 sudo apt-get update 3.安 ...

  9. 在VS中添加lib库的三种方法

    注意: 1.每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties" -> "Configuration Prop ...

随机推荐

  1. hibernate 入门

    工程截图 1.jar包 和 hibernate配置文件 /src/hibernate.cfg.xml    , /src/log4j.properties   ,   /src/db.sql < ...

  2. centos 更换 yum源

    阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ CentOS系统更换软件安装源第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos ...

  3. JavaScript 中 map、foreach、reduce 间的区别

    一直对map.foreach.reduce这些函数很是生疏,今天看underscorejs时好好研究了一下,一研究我就更懵了,这不是一样嘛,都是遍历,所以我就去知乎找了一下,整理出了比较好的几个说法. ...

  4. canvas中save()和restore()方法

    save()和restore()方法是绘制复杂图形不可缺少的方法它们是分别用来保存和恢复canvas状态的,都没有参数 save():用来保存Canvas的状态.save之后,可以调用Canvas的平 ...

  5. Android 本地/网路下载图片实现放大缩小

     Android 本地加载/网路下载图片实现放大缩小拖拉效果,自定义控件. package com.example.ImageViewCustom; import android.app.Activi ...

  6. command 'x86_64-linux-gnu-gcc' failed with exit status 1错误及解决方案

    Ubuntu16.04安装Scrapy(pip install Scrapy)时提示错误如下: Failed building wheel for cryptography Running setup ...

  7. 在Excel中制作雷达图

    雷达图的作用 雷达图是专门用来进行多指标体系比较分析的专业图表.从雷达图中可以看出指标的实际值与参照值的偏离程度,从而为分析者提供有益的信息.雷达图一般用于成绩展示.效果对比量化.多维数据对比等等,只 ...

  8. this的用法

    因为循环是非常快的,我们手动点击的时候,for循环已经循环完了.如果在循环里面添加点击事件,点击事件的i的值就是循环结果的那个值,而不是对应的循环的值,此时,我们就需要用到this   来实现  点击 ...

  9. JSP Filter用法

    1.filter的作用 在HttpServletRequest请求到达Servlet之前,拦截客户的HttpServletRequest 根据需要检查HttpServletRequest的相关信息,修 ...

  10. UVALive 3635 分派

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...