页面载入中...

和 "IE" 有关的文章

2008-04
15

对Web标准最常见的5个误解

这是在 CSS Globe 上看到的一篇文章,个人感觉对理解 Web 标准和 Web 开发(尤其是前端开发)很有启发意义,特翻译分享,并加入了一些我的想法。原文地址:5 Most Common Web Standards Misconceptions

当开始学习 Web 标准的时候,我们会听到很多关于 Web 标准的理论,这些理论不一定都是正确的,有些反而可能会误导我们。下面是一些最常见的误解。

1、Web 标准 = Validation(验证)

W3C 提供的 XHTML 标记验证和 CSS 验证对学习 Web 标准和 Web 开发是很重要的,它不但能够指出代码中的错误,还能让我们学会怎样去改正错误。但是,仅仅通过验证并不意味着你的页面符合 Web 标准。我曾经把 W3C 的验证服务和英语拼写检查工具做过比较。如果你在拼写检查工具中输入这样一个句子:

Dog fox brown lazy over jump.

拼写检查工具并不会发现任何错误,因为单词拼写全是正确的。但是,这句话有意义吗?当你没有为你的页面逻辑结构使用合适的 HTML 元素时,不正和上面的那个例子一样吗?机器就是机器,它可以检测出你的语法、属性、嵌套等的正误,但是它无法了解你要表达的内容的本质。这就是 Web 语义化(semantic)的重要性。

2、Web 标准 = CSS

CSS 是一种样式单,它是一个让页面看起来更加美观的(强大的)工具,而且,CSS 也是 Web 标准的一个重要部分。但是,看看那些基于表格布局,tr、td 等标记层层嵌套如同噩梦一般的页面,你会发现它们也在通过各种方法使用着 CSS,那么,这些页面符合 Web 标准吗?

Web 标准并不只是技术,当然更不只是 CSS,而是你怎样去使用它。一个相对标准的页面,即使剥离了 CSS,它仍然应该是可读的,层次结构清晰的。

3、Web 标准 = No Tables

当从表格布局转变到 CSS 布局之后,很多开发者开始拒绝在任何情况下使用表格,他们认为“Tables are evil”。

对我来说,没有任何一个 HTML 元素是 evil 的。它们是被一群非常聪明的人发明的,每一个元素都有它的目的和存在的意义。什么时候应该使用表格,这又涉及到了 Web 语义化的问题,如果你要在页面中显示表格数据(比如日历表、统计表等),那么,表格就是你的最佳选择。

4、Web 标准 = Divs

过度使用 div,是在刚从表格布局转变到 CSS 布局的开发者中很常见的问题,我曾经也经历过。我们经常可以看到这种说法:“div+css布局”,似乎使用了 div 就是好的,就是符合 Web 标准的。实际上有些时候,你只是简单地使用 div 代替了表格,仅此而已。你最终得到的还是复杂的、难以读懂的、层层叠叠的标记,就像以前一样,只是 div 代替了以前的 table、tr、td,并且把 CSS 文件增大了几倍而已。

你需要改变的不仅仅是在页面中充当容器的元素,而是整体的结构和理念。符合 Web 标准需要走一条很长的路,好在这条路是充满阳光的,我愿意走下去。

5、Web 标准 = No IE

我知道你很可能和我一样痛恨 IE,但是,Web 标准的观点是实现跨平台、跨浏览器的页面访问,更重要的是,大多数用户都在使用 IE。因此,我们不能抛弃 IE,尽管它不是一个符合标准的浏览器。

所以,不要在开发中忽视 IE 下的调试,因为毫无疑问会有用户在使用 IE,你迟早都必须面对它。骂完 IE 以后,还是好好想想怎么对付它吧。

2008-03
06

IE8来了

尚未普及的 IE7 才刚刚发布一年多时间,微软就又发布了传说中的 IE8。也许是 Firefox 等浏览器的崛起让微软感到了巨大的压力,IE7 相比 IE6 又确实没有什么实质性的提高,在浏览器市场的竞争上没有发挥它应有的作用,所以,微软要用 IE8 打一场翻身仗,重新夺回 IE6 时代的霸主地位。

我迫不及待地下载安装了 IE8,抢先体验一把。从外观上来看,IE8 继承了 IE7 的tab式浏览方式,并没有什么大的改变,所以使用起来没有什么别扭的。

对 Web 标准的良好支持是 IE8 的一个重大改善,它号称完全支持 CSS2.1 和 DOM level2,并支持某些 CSS3 的特性。早在内测的时候,IE8 就宣布通过了 Acid2 测试,出于好奇,我还是亲自测试了一下,果然没有令人失望。

Acid2 是一个由 Web 标准组织编写的针对网页浏览器的测试页面(不是软件)。浏览器开发者用这个测试页面来验证自己的产品是否能够精准的还原页面编写者的设计。

Acid2 是一个复杂的页面,页面内包含了很多不常用的复杂结构,所以能有效的检测出浏览器排版的漏洞。Acid2的页面虽然很复杂,但是测试结果却很直观。用浏览器打开 Acid2 的测试页面,如果通过则会看到一个笑脸,笑脸头部上方有“Hello World”字样,当鼠标指向笑脸鼻子的时候鼻子会变成蓝色。

以下是 IE8 的 acid2 测试截图:

IE8的acid2测试图

作为对比,下面是没有通过 acid2 测试的 Firefox2 的截图(Firefox3 已经通过测试):

FF2的acid2测试图

再来一个对比,看看完全变形的 IE7 的惨状,就知道 IE8 有多大的进步了:

IE7的acid2测试图

从这些截图可以看出,IE8 对 Web 标准的支持相对 IE7 有了非常大的进步,甚至已经优于 Firefox2。但是这个测试毕竟不能完全说明问题,在更新、更复杂的 Acid3 测试中,IE8 则完全处于下风。

Acid3 的测试集中在 JavaScript,DOM Level3,Media Queries,和data: URLs。一共运行100项测试,根据结果返回通过或没有通过。

IE8 在 acid3 测试中得分仅为17/100,虽然高于 IE7 的11/100,但相比 Firefox3(61/100)和 Firefox2(50/100)相差很大。毕竟 IE8 太新了,而且只是 beta1 版本,它的后续版本应该可以获得更好的分数。

IE8 还有一些新特性,它包含一个开发工具(Developer tools),Web 开发者可以直接在 IE8 中打开这个工具调试 HTML、CSS 和 JS,就像 Firefox 中的 Firebug 一样。甚至在 IE8 中也出现了类似 Firefox 的扩展功能(Add-ons),Firefox 最吸引人的地方被 IE8 学去了。

IE 系列对于 Web 开发者,不说是心头大患至少也是麻烦不断,希望 IE8 的出现对此有所改善。试想等到 IE8 取代 IE6、IE7 的时候,中国得有多少网站要重做啊 ^_^

2008-01
23

拜拜,IE6

微软宣布,从2月12日起,将强制 Windows 用户升级到 IE7 浏览器,如果你的系统打开了自动更新,到时候就可以自动升级到 IE7 了。

据微软说,这次强制升级是出于安全性的考虑,因为 IE7 的安全性相比 IE6 来说有了很大的加强。不过对我来说完全没有影响,我还是会继续使用 Firefox ,IE7 的安全只是相对 IE6,和 Firefox 相比它并没有什么优势。微软宣称的 IE7 的优势在于全新的界面、Tab式浏览、RSS订阅源、集成搜索引擎、安全性等,这些功能在 Firefox 中早就有了,所以靠这个完全不能吸引我。至于 Firefox 的优势,感兴趣的朋友可以到我的这个关于Firefox的页面看一看。

对于 Web 开发者来说,IE6 能够退出市场绝对是一件大快人心的事情。相信很多朋友都有过被 IE6 的 CSS 和 DOM 的不完全支持和各种奇怪的 bug 所困扰的经历,当时我们都在想,这该死的 IE6 什么时候能够彻底滚蛋?!现在,微软亲自出面来帮我们解决问题了。IE7 在对 Web 标准的支持上虽然也不能令人满意,但还是明显要强于 IE6。我个人认为微软这样的强制做法尽管有些不尊重用户自己的选择,但是对于整个 Web 世界的进步无疑是一个巨大的贡献,敢于淘汰自己的落后产品,微软的做法体现了大公司的魄力。

其实 IE7 已经推出有一段时间了,但是市场占有率还远远不及 IE6。从我的 blog 访问统计来看,半年范围内(2007年7月24日—2008年1月23日)使用 IE6 和 IE7 的用户比例在4:1以上;本月(2007年12月24日—2008年1月23日)使用 IE6 和 IE7 的用户比例在3:1左右,IE7 的市场占有率正在缓缓升高。可能是由于 IE6 过久地占据着浏览器市场,早已经深入人心,所以还一直保持着惯性。过一段时间我会再看一下访问统计的浏览器情况,看看 IE7 的用户数量比例是不是有一个明显的提高。

您的选择呢?IE6?IE7?还是 Firefox?

2007-08
27

我为什么要用Firefox

firefox用 firefox 的时间也不算短了,最早是因为厌倦了 IE 的样子,想换一个口味,但是从使用 firefox 开始,我开始 了解并喜欢上了它,从此之后除了测试 web 显示效果和访问某些特定的网站(比如工商银行的网上登录,现在支付宝也开始不支持非IE核心浏览器的访问了),基本就没有再打开过 IE。

微软在操作系统领域中的垄断地位成就了 IE 在浏览器市场中的主流地位,微软把 IE 和 Windows 绑定在一起,使得 IE 成为浏览器市场的霸主。国外的浏览器市场中 firefox 还算有比较高的份额(但是还是不及 IE),国内市场则完全是 IE 的天下,据我的了解有80%以上的用户都使用 IE 上网。

但是,IE 对 W3C 标准的支持简直是糟糕透了,尤其是对于 CSS 的支持,很多 web 开发人员精心设计的效果在 IE 中根本无法显示,当然,这些效果大都是无关大局的,所以 IE 的用户也不会察觉到他们错过了什么。一些“现代”浏览器(比如 firefox 和 safari)则对 CSS 有相对完美的支持。浏览器的 bug 和不一致性是目前 web 开发人员尤其是负责前端的 CSS 开发人员面对的最大问题之一,其中的不一致性我想 IE 应该占据了绝大多数,这导致开发人员不得不花费大量的时间来修改他们的设计代码以使 web 在 IE 下的显示效果与他们预期的一致。例如若使用 firefox ,在我的评论表单中的文本输入框获得焦点(即输入状态)时,背景会变为白色,边框会变为蓝色,这就可以给用户一种醒目的感觉。但是 IE 不支持 :focus 这个样式,所以必须用更复杂的办法来实现这种效果。

上面的例子毕竟还是有解决办法,然而有很多时候没有办法通过一些手段让 IE 下的显示效果和其他浏览器一致。比如前两天我为我的文章内容中的外部链接加上了一个样式,效果就是在所有外部链接的右上角显示一个小箭头,表示点击这个链接将会离开当前站点,而链接到本站其他页面的内部链接则不显示这个箭头,以增加用户的控制能力。这个功能的实现使用到了 CSS 中的属性选择器,遗憾的是, IE 并不支持属性选择器,而且现在我还没有找到解决的办法,所以在 IE 下显示的效果是所有的链接都被加上了箭头标志。

这样的例子我就不再举了,关于对 CSS 的支持只是一个方面,其他的还有安全性、可扩展性等 IE 完全处于下风,所以我为什么要用 firefox ,答案已经很明确了。当然,firefox 也不是没有缺点,我认为 firefox 的几个缺点是:启动速度太慢,占用内存比较大(可以通过配置清理内存,但是效果不是很好),不兼容某些网站外观(这点其实是这些网站不支持 W3C 标准的问题)和某些只支持 IE 内核的网站(这个问题可以用插件解决)。总之,只要你的内存不是太小,又想获得更好的网络浏览体验,我强烈推荐你使用 firefox 。