仍在广泛使用的已弃用属性列表

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您的旅程的每个阶段提供云产品。立即开始使用 200 美元的免费信用额度!

depelements.jpg

“已弃用”元素是 W3C 指定为过时的元素。这些元素不应使用,通常被认为是“错误代码”。如果您使用严格的 DOCTYPE,已弃用元素将无法通过验证。

问题是,人们仍然在使用它们。事实上,它们中的许多仍在广泛使用。为什么?因为它们仍然有效!仅仅因为它们已弃用并不意味着它们不起作用,它仅仅意味着有一种“新的”方法可以完成已弃用元素过去所做的事情(嗯……大多数情况下)。这些元素会永远停止工作吗?我无法确定,但我倾向于认为最终会这样。以下是一些您可能经常看到的常见已弃用元素,以及应该使用什么来代替它们。

  • align:例如 <p align=”left”>。仍然可以正常工作,但您确实应该只应用一个类,并给该类一个 text-align: left; 的样式。或者,如果您必须这样做,可以应用内联 CSS,例如 style=”text-align: left;”。
  • bgcolor:例如 <table bgcolor=”FFF”>。我经常在许多“复制和粘贴”代码生成器中看到这个。它们使用它是因为它们希望完全控制您复制和粘贴内容的外观,而且它确实有效。但说真的,只需应用一个类或使用 style=”background-color: #FFF;”。
  • border:例如 <img src=”#” alt=”” border=0 />。这可能是所有已弃用元素中最常见的。图像上的边框在网页上通常看起来很糟糕,并且不应该在没有良好审美理由的情况下设置为默认值。在大多数浏览器中,图像默认情况下没有边框,除非它们用作链接。然后默认情况下使用某种难看的蓝色边框。许多人通过在 img 元素内部添加 border=0 来强制避免这种情况。您可以使用一行 CSS 更轻松、更干净地避免这种情况:a img {border: 0px;}。
  • height / width:例如 <div width=150>。不酷,伙计。给那个 div 一个 ID 或类,并将宽度放在它应该在的 CSS 中。
  • target:例如 <a href="#" target="_blank">。它不仅已弃用,而且是使用上的错误。Smashing Magazine 对此有一个很好的引用

    访问者希望能够控制他们在浏览器中发生的一切。如果他们想在新窗口中打开链接,他们就会这样做。如果他们不想,他们就不会这样做。如果您的链接在新窗口中打开,您就做出了决定,而这并非您的决定。

    注意:target 在 HTML5 中可以正常使用。

  • nowrap:例如 <td nowrap>。这个元素来自表格时代,当时您希望确保一格文本全部保持在一行(不换行)。CSS 已经使用 white-space 属性涵盖了这一点。只需设置 white-space: nowrap; 即可。

有一些已弃用元素可以做到的,而没有替代方案。值得注意的是

  • 使用start从一个不为 1 的数字开始有序列表。
  • 使用value将特定值应用于列表项。
  • 如上所述,Target 没有替代方案。

其中一些可能可以通过 CSS3 解决。但我并不确定。如果您确实需要使用一些已弃用元素,并且仍然希望您的代码能够验证(并正常工作),请确保使用Transitional DOCTYPE。

感谢 Kevin 指出我拼写错误的“deprecated”(我在更新这篇文章之前把它写成了“depreciated”)。