
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:
targetist 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).
Der richtige Begriff ist „deprecated“. Viele Leute verwenden den weniger genauen Begriff „depreciated“, genau wie diejenigen, die „irregardless“ verwenden.
Von „The World Wide Web Consortium (W3C)“
Deprecated
Ein veraltetes Element oder Attribut ist eines, das durch neuere Konstrukte veraltet ist. Veraltete Elemente sind an geeigneten Stellen im Referenzhandbuch definiert, werden aber deutlich als veraltet gekennzeichnet. Veraltete Elemente können in zukünftigen Versionen von HTML obsolet werden.
http://www.w3.org/TR/html4/conform.html
Danke Kevin. Das wusste ich nie. Aus Wikipedia: „Depreciated wird oft verwechselt oder als Ersatz für ‚deprecated‘ verwendet“.
Ich habe den Beitrag aktualisiert.
Nun, ich schätze, das Gute ist, dass ich selbst nur eines dieser Tags benutze. Ich benutze immer noch das img border=”0″ Tag. Ich glaube, ich habe nie darüber nachgedacht, es zu stylen. Danke trotzdem.
Absolut zu 110% einverstanden. Bei den meisten CMS werden align=”” jedoch immer noch häufig verwendet und bevorzugt, einschließlich WordPress.
Es gibt noch ein letztes „depreciated“, das Sie übersehen haben… Das Thema ist ‚Target‘ und es steht direkt über Smashing Magazine. Suchen & Ersetzen?
Nicht pingelig sein, aber Sie berichten tatsächlich über veraltete Attribute, nicht über Elemente.
Ich hoffe wirklich, wirklich, dass die Leute aufhören, veralteten Mist zu benutzen, insbesondere das <font>-Tag.
Danke für die Erwähnung, Chris. Ich habe eine ernsthaft veraltete Website übernommen und räume sie auf. Dieser Beitrag hat mir geholfen, einige der veralteten Attribute auf der Seite zu identifizieren und nach weiteren zu aktualisierenden Elementen zu suchen.
Ich denke, bei border, dass Sie meinen
a img {border: 0px;}
aber jetzt ist es geschrieben
img a {border: 0px;}
Seien Sie vorsichtig, wenn Sie Techniken verbreiten :P
@Whack a Hack: JA. Das meine ich. Die Eigenschaften waren in der falschen Reihenfolge, ich habe es im Artikel korrigiert. Wenn ich jetzt darüber nachdenke, ist die Angabe als img a gar nicht möglich =)
Danke! Ich habe überall nach einer alternativen Attribut für „border“ gesucht und es endlich gefunden! Du bist ein Held, lol!
Schauen Sie hier für eine vollständige Liste aller veralteten HTML-Attribute. Es sind etwa 47. Vielleicht können wir diese Seite auch aktualisieren?
http://www.w3.org/TR/html4/index/attributes.html