Liste veralteter Attribute, die noch weit verbreitet sind

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

depelements.jpg

Ein „veraltetes“ Element ist ein Element, das vom W3C als veraltet eingestuft wurde. Diese Elemente sollten nicht verwendet werden und gelten allgemein als „schlechter Code“. Wenn Sie einen STRICT DOCTYPE verwenden, werden veraltete Elemente nicht validiert.

Die Sache ist, dass die Leute sie immer noch benutzen. Tatsächlich sind viele von ihnen noch ziemlich weit verbreitet. Warum? Weil sie immer noch funktionieren! Nur weil sie veraltet sind, heißt das nicht, dass sie nicht funktionieren, sondern nur, dass es einen „neuen“ Weg gibt, das zu tun, was das veraltete Element früher getan hat (na ja... größtenteils). Werden diese Elemente jemals aufhören zu funktionieren? Ich kann es nicht sagen, aber ich neige dazu zu glauben, dass es irgendwann ja sein wird. Hier sind einige der häufigsten, die Sie wahrscheinlich ständig sehen, und was Sie stattdessen verwenden sollten.

  • align: z. B. <p align=”left”>. Funktioniert immer noch einwandfrei, aber Sie sollten wirklich nur eine Klasse anwenden und dieser Klasse den Stil text-align: left; geben. Oder, wenn Sie müssen, weisen Sie Inline-CSS zu, wie style=”text-align: left;”.
  • bgcolor: z. B. <table bgcolor=”FFF”>. Ich sehe das ständig bei vielen der „Copy-and-Paste“-Code-Generatoren. Sie verwenden es, weil sie die volle Kontrolle über das Aussehen von allem haben wollen, was Sie kopieren und einfügen, und es funktioniert. Aber im Ernst, wenden Sie einfach eine Klasse an oder verwenden Sie style=”background-color: #FFF;”.
  • border: z. B. <img src=”#” alt=”” border=0 />. Dies ist wahrscheinlich das **häufigste** aller veralteten Elemente. Ränder an Bildern sehen auf Webseiten im Allgemeinen schrecklich aus und sollten niemals als Standard gesetzt werden, ohne einen guten ästhetischen Grund. Standardmäßig haben Bilder in den meisten Browsern keinen Rand, **außer wenn sie als LINKS verwendet werden.** Dann ist der Standard, eine Art hässlichen blauen Rand zu verwenden. Viele Leute vermeiden dies, indem sie border=0 direkt in das img-Element einfügen. Sie können dies viel einfacher und sauberer mit einer einzigen Zeile CSS vermeiden: a img {border: 0px;}.
  • height / width: z. B. <div width=150>. Nicht cool. Geben Sie diesem Div eine ID oder Klasse und setzen Sie die Breite in das CSS, wo sie hingehört.
  • target: z. B. <a href="#" target="_blank">. Nicht nur, dass es veraltet ist, es ist auch ein Usability-Fauxpas. Smashing Magazine hat ein tolles Zitat dazu.

    Besucher möchten die Kontrolle über alles haben, was in ihrem Browser passiert. Wenn sie einen Link in einem neuen Fenster öffnen möchten, werden sie es tun. Wenn sie es nicht möchten, werden sie es nicht tun. Wenn Ihre Links in einem neuen Fenster geöffnet werden, treffen Sie die Entscheidung, die nicht Ihre Entscheidung ist.

    Hinweis: target ist in HTML5 in Ordnung.

  • nowrap: z. B. <td nowrap>. Dies stammt aus der Zeit der Tabellen, als Sie sicherstellen wollten, dass eine Textzelle auf einer Zeile bleibt (nicht umbricht). CSS hat das abgedeckt mit der Eigenschaft white-space. Setzen Sie einfach white-space: nowrap;.

Es gibt einige Dinge, die veraltete Elemente tun können, für die es keine Alternative gibt. Insbesondere

  • Starten einer geordneten Liste mit einer anderen Nummer als 1. mit **start**.
  • Anwenden eines bestimmten Werts auf ein Listenelement mit **value**.
  • Target hat, wie oben erwähnt, keine Alternative.

Einige davon könnten mit CSS3 gelöst werden. Ich bin mir aber nicht zu 100 % sicher. Wenn Sie einige dieser veralteten Elemente wirklich verwenden müssen und Ihr Code immer noch validiert werden soll (und ordnungsgemäß funktioniert), stellen Sie sicher, dass Sie einen **Transitional** DOCTYPE verwenden.

Vielen Dank an Kevin für den Hinweis auf meine Rechtschreibfehler bei „deprecated“ (ich hatte es vor der Aktualisierung dieses Beitrags als „depreciated“ geschrieben).