条件注释使用指南[译]
作者:vocal 来源:前端观察 发布时间:2009-03-23 17:41:00
或许你知道,Internet Explorer 6 已经不是最先进的浏览器了。事实上,它已经八岁了,但是很多人还在使用这个不安全的浏览器。正因为如此,网页设计师不得不额外担心他们的网站在IE6下的表现。
在CSS 框架和模板出现以后,一些布局的问题可以很容易解决掉,但是显然这不能解决全部问题。这些问题通常可以通过普通的CSS来解决,但是有时候只针对IE显示一些(样式)信息可能会更好。
这是用条件注释是可以实现的。条件注释只支持Windows系统中的IE浏览器。通过这些技巧,我们可以为基于Windows的IE5、6、7、8添加一些特殊的行为。这样做的好处是,HTML和CSS代码可以通过验证。
条件注释的格式
所有可用的条件注释标签是基于相同的原理的。这些条件注释可用于所有的IE浏览器版本。
<!--[if IE]>
如果用户使用IE浏览器,这里的信息会生效。
<![endif]-->
根据情况不同,你需要添加一个浏览器版本号。比如,或许你想让IE5.5使用一个不同的样式表:
<!--[if IE 5.5]>
<link rel="stylesheet" href="css/ie5.css" type="text/css" media="screen, projection" />
<![endif]-->
或者只针对IE7:
<!--[if IE 7]>
<link rel="stylesheet" href="css/ie.css" type="text/css" media="screen, projection" />
<![endif]-->
你已经掌握了要领了,是吧?
我们还能用条件注释做什么?
微软同样为这些条件注释添加了一些参数。比如,我们可以使用高于或等于某个版本、低于或等于某个版本。添加这些的确很方便。
比如说,我们要给IE7以及以下的浏览器添加一个不同的样式表,我们可以这样做:
<!--[if lte IE 7]>
<link rel="stylesheet" href="css/ie.css" type="text/css" media="screen, projection" />
<![endif]-->
或者我们想为IE6以上的浏览器创建一个不同的样式表:
<!--[if gte IE 6]>
<link rel="stylesheet" href="css/ie.css" type="text/css" media="screen, projection" />
<![endif]-->
我们可以在我们的条件注释中使用以下参数:
lte - 低于或等于
lt - 低于
gte - 高于或等于
gt - 高于
(IE6)|(IE7) - Internet Explorer 6或 Internet Explorer 7
(IE6)&(IE7) - Internet Explorer 6 和 Internet Explorer 7
使用条件注释让用户升级他们的过时的浏览器
我通常不使用条件注释来修正浏览器bug。我使用他们的方法是告诉人们,他们使用的是一个过时的浏览器。在此类信息里面,我告诉他们,为了安全和更多功能,他们应该升级他们的浏览器。
<!--[if lt IE 7]>
<p class="error">警告!您正在使用一款过时的浏览器。这个版本的浏览器功能比较简单而且不够<strong>安全</strong>。请升级您的浏览器到<a href="http://getfirefox.org/" href="http://getfirefox.org/">下载FireFox</a> 或 <a href="Internet'>http://www.microsoft.com/downloads/en/default.aspx">
Internet Explorer 7+.</p>
<![endif]-->
通过这种方法,在用户看到这条消息的时候,你可以告诉用户,他们不应该使用这个版本的浏览器,然后他们就可能升级到一个更先进的浏览器。
正如你看到的这样,你可以在你的网站中使用这些条件注释的好处。
前几天前端观察发表了一系列的 条件CSS 的用法,那些用法是基于这个条件注释的扩展用法。当然这种条件注释的用法比较简单方便,但是 使用条件css 可以实现更高级的功能。请注意,本文所讲的条件注释可以直接在HTML代码中使用,而条件CSS需要配合程序实现。——神飞


猜你喜欢
- 1、算数运算符小例中: a = 5 &nb
- 使用python生成一个图片验证码,随机的,可以由于验证人机和别的啊,很方便很简单导入模块import randomfrom PIL imp
- php获取图片的exif信息,php自带一个exif_read_data函数可以用来读取图片的exif信息,代码来自php手册<?ph
- 一、虚拟环境概述Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,修复特定的错误,或者可以使用库的过时
- [LeetCode] 180.Consecutive Numbers 连续的数字Write a SQL query to find all
- 背景今天有人问我 “为什么数据库中有人推荐使用 int 类型来保存 IP 地址?”。现在(2020年)来看这个东西已经有点过时了,一方面是磁
- 在前面文章中,有提到过 mysqldump 备份文件中记录的时间戳数据都是以 UTC 时区为基础的,在筛选恢复单库或单表时要注意时区差别。后
- 本文实例讲述了Python实现的弹球小游戏。分享给大家供大家参考,具体如下:弹球1. Ball 类draw负责移动Ball碰撞检测,反弹,B
- 本文实例为大家分享了python实现转圈打印矩阵的具体代码,供大家参考,具体内容如下#! conding:utf-8__author__ =
- 京东购物车抢购商品1.Python的下载和安装这里由于我们代码是基于Python来执行的所以我们这里需要2个东西:一个是Python本身,另
- 前言: 在数据库运维过程中,我们时常会关注数据库的链接情况,比如总共有多少链接、有多少活跃链接、有没有执行时间过长的链接等。数据库
- 图像(包括动图)是传递信息的一种高效方式,往往能增强表象、记忆与思维等方面的反应强度。所谓一图胜千言,说的就是这个道理。今天为大家整理了十张
- SQL Server数据库连接中常见的错误分析:一."SQL Server 不存在或访问被拒绝"这个是最复杂的,错误发生
- 前言本文主要给大家介绍了关于django配置连接数据库及原生sql语句的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介
- 本文实例讲述了php mysql procedure实现获取多个结果集的方法。分享给大家供大家参考,具体如下:protected funct
- 可能某次不小心改了配置文件,导致无法打开jupyter,找了很多方法,都没从根本上解决问题。倒是发现启动的默认目录被改了,怀疑是这个问题。然
- 楔子Python 有一个第三方模块叫 psutil,专门用来获取操作系统以及硬件相关的信息,比如:CPU、磁盘、网络、内存等等。下面来看一下
- 前言众所周知在java或php等很多面向对象的语言中, 异常处理是依靠throw、catch来进行的。在go语言中,panic和recove
- js代码如下: <script type="text/javascript"> //禁用右键菜单 docum
- 斐波那契记忆优化法:<script type="text/javascript">var fibonacci