真・懒

订阅 Twitter GitHub 联系

Bad tags, good use

原谅我再次使用英文标题 :)。这篇文章首发于 CSSer.org,地址是 http://www.csser.org/2006/03/bad-tags-good-use/

b, i, tt, sub, sup, big, small, hr 这些 HTML 标签(tag)属于表现性(presentational)标签,在提倡使用结构与表现分离的今天,不推荐使用它们,因为它们的表现效果均可以通过相应的 CSS 设置来实现。但它们不同于那些如 center, u, blink, marquee, font 等过时标签,不推荐跟不使用是不一样的。有时,适当使用一下这些表现性标签对我们的结构并没有什么坏处,反而能使我们的结构性代码更优雅。

先简单说一下这些表现性标签的作用,b 加粗, i 斜体, tt 打字机效果, sub 下标, sup 上标, big 加大字体, small 减小字体, hr 水平线。

在一些特殊场合,它们都可以用的上的,比如商标 TM 联合使用 supsmall 效果就很不错。再如,使用 hr 可以让页面的结构在没有 CSS 支援的情况下表现得更清晰。当然,你可以说,我都可以通过 CSS 来实现,没错,如果你适当使用它们,再用 CSS 加以修饰,你就可以锦上添花,何乐不为?

再者,为了实现某些效果,嵌入一些无意义的标签是十分有必要的。最明显的一个例子,以图代字(参看 Using Background-Image to Replace Text),需要加入一个 span 标签,这时,你是否觉得这个 span 有点又长又臭?伙计,来个 b 如何?本身标题(h)就是粗体,加个 b 并没有什么影响,当然也没有什么结构上的意义,却比 span 少三个字母,看起来也舒服得多,伙计,谁说 b 就不能用?

重要的是,在一些不支持 CSS 的客户端,比如文本浏览器,像手机浏览器,*NIX 下的一些运行于终端的浏览器(lynx, links 等),它们可以解析这些标签,看起来比使用 span 更有吸引力。并且,它们并没有易用性/可用性方面的问题,既然它们就是表现性的,亦即无意义的,跟使用 span 一样,对我们的结构并没有害处。

当然,我并不是提倡滥用它们。我粗粗举几个例子,是想,我们 Web Standards 中国也需要自己独立的思考,把 Web Standards 结合实际问题,有效地应用到实际中去,这才有发展的动力。