---
title: "条件注释:IE的版本判断语句"
url: "https://yjyj.net/learn/1682.html"
author: "小 虾 (生猛大蝦编辑部)"
published_at: "2011-12-10T16:34:59+08:00"
updated_at: "2011-12-10T16:51:28+08:00"
categories: "招数学习"
tags: "CSS布局技巧, Windows排错指南, 前端开发实战"
summary: "本文讲透 IE 条件注释的判断逻辑，帮你摆脱针对 IE6 的 CSS hack 污染。内容聚焦 IE 专有的 XHTML 处理方式、版本判断、非操作与 gt/lt/gte/lte 前缀用法，适合需要兼容旧版浏览器的前端开发者快速上手。"
source: "生猛大蝦 (https://yjyj.net)"
---

# 条件注释:IE的版本判断语句

> 来源：[生猛大蝦 (yjyj.net)](https://yjyj.net/learn/1682.html) · 作者：小 虾 · 发布时间：2011-12-10

## 30 秒核心看点 (TL;DR)

- IE 条件注释是专门给 IE 系列做版本判断的，不是 CSS hack。
- 可用 true/false、! 以及 gt/lt/gte/lte 精确控制不同 IE 版本显示内容。
- 实操上更适合旧项目兼容分流，别把它当成现代前端的常规方案。

写多了代码之后,就非常讨厌针对ie6的css hack了.总觉得它们是在污染我的代码.
幸好傻逼的ie支持条件注释
这是IE特有的一种功能，能对IE系列产品进行单独的XHTML代码处理，注意，主要是针对XHTML，而非CSS。

条件注释功能非常强大，可以进行true和false判断。
程序代码：

`



`

条件注释能被IE判断是什么版本的浏览器，并在符合条件的情况下显示其中的内容，从IE5.0到7.0都支持注释功能，而且版本号精确到小数点后4位。
程序代码：
`

`

IE条件注释还支持感叹号非操作。
程序代码：
`

`

并且支持前缀，用于判断更高版本或是更低版本。
程序代码：
`

`

这里的gt全称为greater than表示当前条件版本以上版本，但不包含当前版本。 　　

还有其它几个前缀：

lt 表示less than 当前条件版本以下的版本，不包含当前版本。
gte 表示greeter than or equal 当前版本以上版本，并包含当前版本。
lte 表示less than or equal 当前版本以下版本，并包含当前版本。

来源:http://www.54173.cn/blog/?p=201

## 生猛大蝦编辑部 · 背景与实操延伸

这篇短文的重点不是“怎么写花哨语法”，而是提醒你：旧时代前端兼容最怕把判断逻辑散落在 CSS 里。条件注释曾是 IE 时代的救命绳，能按版本分流 XHTML 内容，减少 hack 污染。但实操时要注意，它只对 IE 系列有效，且更偏向历史项目维护场景；如果项目已不再需要兼容老 IE，最好把这类分支逻辑逐步清理掉，避免后续维护成本继续膨胀。

## 延伸问答与排错指南 (FAQ)

### IE条件注释到底是干什么的？
它是 IE 特有的版本判断语句，用来让不同 IE 版本读取不同的 XHTML 内容。核心用途是做兼容分流，而不是处理 CSS 样式本身。对旧项目来说，它能减少把判断逻辑塞进样式表里的混乱感。

### gt、lt、gte、lte分别怎么理解？
gt 表示大于当前版本但不包含本版本，lt 表示小于当前版本但不包含本版本；gte 表示大于等于当前版本，lte 表示小于等于当前版本。写条件时要特别注意是否包含当前版本，避免兼容范围写错。

### 条件注释适合现在的项目吗？
它主要适用于需要兼容老旧 IE 的历史项目。若是新项目，通常不建议继续依赖这类写法；更稳妥的是把兼容逻辑收敛到更清晰的结构中，并尽量减少对浏览器特定语法的依赖。

---
更多 Linux 运维、WordPress 性能优化、前端工程化、Shopify 独立站与极客折腾指南：[生猛大蝦全站文章归档 (https://yjyj.net/archive)](https://yjyj.net/archive)
