Pourquoi le <center> balise obsolète en HTML?
Je suis juste curieux de savoir pourquoi le <center>
balise HTML a été déprécié.
La <center>
était un simple moyen de rapidement le centre-alignement des blocs de texte et d'images en encapsulant le récipient dans un <center>
tag, et j'ai vraiment ne peut pas trouver un moyen plus simple sur la façon de le faire maintenant.
Quelqu'un sait de toute manière simple sur la façon de centre de "trucs" (pas le margin-left:auto; margin-right:auto;
et de la largeur de la chose), quelque chose qui remplace <center>
? Et aussi, pourquoi est-il obsolète?
Vous devez vous connecter pour publier un commentaire.
La
<center>
élément est déconseillée car elle définit la présentation de son contenu, il ne permet pas de décrire son contenu.Une méthode de centrage est de définir la
margin-left
etmargin-right
propriétés de l'élément àauto
, puis définissez l'élément parent de l'text-align
propriétécenter
. Cela garantit que l'élément sera centré dans tous les navigateurs modernes.margin
ettext-align
n'est pas le centre de mon élément dans IE, mais en l'enveloppant avec<center>
a fait un travail... je vais essayer de trouver un exemple.display: block;
sur un élément inline.margin
être0 auto
? J'ai essayé à peuauto
sur unpre
élément, et il fonctionne de la même dans Gecko comme0 auto
, ou lorsque lediv
atext-align: -moz-center
au lieu detext-align: center
, ou lorsque lediv
utilisé pour êtrecenter
. Quel est le point de0
? Pourquoi ne pas simplementauto
?auto
est très bien.0 auto
ensembles le haut/bas pour0
et gauche/droite pourauto
.div
a défini et connu auparavant largeur.0 auto
définit également la marge pour le haut & en bas à 0, ce qui n'a rien à voir avec le problème actuel. Une meilleure solution est de mettre enmargin-left: auto; margin-right:auto
qui est un peu plus long, mais plus correct.<div>
et<span>
? Ils définissent la mise en page et de ne pas décrire son contenu.HTML est de fournir la structure et du sens de contenu, et de ce qui devrait être son seule fonction.
Cependant, il ya un assortiment de balises qui ont été ajoutés dans le passé par des stupides les développeurs de navigateurs, qui violent ce principe de base.
À un certain point, les gens sont venus à leur sens (partiellement au moins), et a commencé à (essayer de) d'accord sur un cahier des charges pour l'écriture de code HTML approprié, de sorte qu'ils obsolète certaines de ces balises.
Toutefois, le dommage a déjà été fait - trop de gens ont appris le HTML que "mettre des balises autour de trucs et de choses qui se passe", plutôt que de comprendre la (important et utile) la distinction entre la sémantique et la présentation, et ces gens-là ont continué à écrire des livres et de tutorat, l'enseignement d'autres personnes dans le mauvais sens à écrire en HTML, qui eux-mêmes ont fait de même, et nous avons terminé avec un droit ancien mess.
Idéalement, le
center
balise doit n'avoir jamais existé, parce que les gens devraient avoir souligné qu'il n'est pas "réel", le HTML, et a dit aux concepteurs de navigateur pour revenir en arrière et de le faire correctement.Et pour le faire correctement... l'alignement est bien sûr une présentation du problème - l'application de mise en page et mise en forme à (structuré) en fonction du contenu et de la langue à utiliser pour cela est CSS.
Cependant, encore une fois, stupide développeurs de navigateurs foiré au début CSS - et dans de nombreux cas, les gens en créant des pages web dû à une mauvaise utilisation de HTML, parce que le CSS n'a tout simplement pas de travail.
Ces jours-ci, nous sommes de départ pour obtenir quelques fonctionnalités ont été ajoutées pour le CSS, mais il ya encore beaucoup qui n'est pas mis en œuvre, et un certain nombre de choses qui auraient pu être mis en œuvre dans de loin supérieur façons, mais ils sont maintenant normalisée de sorte que nous sommes coincés avec les anciennes façons de faire.
Si les feuilles de style ont été mis en œuvre par des personnes intelligentes, vous auriez tous les contrôles que vous avez dans tout bon logiciel de bureau - pour l'alignement des blocs et le texte, il avait un travail à l'horizontale, à la verticale, la tête en bas, rotation, et ainsi de suite - et il ne serait pas être fait dans la manière stupide de réglage de la marge gauche/droite pour auto.
Je vais ajouter rapidement, pour être complet, le troisième de "niveau" pour les pages web, qui traite de l'ajout de interactivité à une page statique, qui est bien sûr la (mal nommée) JavaScript.
Encore une fois, ces stupides les développeurs de navigateurs ne savent pas ce qu'ils faisaient. Ils ont choisi un totalement inexact/nom non valide (pour des raisons de marketing), et encore criblé potentiellement un grand et puissant de la langue avec des défauts, manque de fonctionnalité, et créé quelque chose qui a été (jusqu'à récemment) détesté par beaucoup de gens.
Nous avons, bien sûr, dans les dernières années un grand soulèvement des bibliothèques JavaScript qui ont permis de montrer quelques-uns des trucs cool JS a été capable de pour ans, caché beaucoup de navigateur failles qui existent encore dans les navigateurs, et ont partiellement contribué à combler le support de CSS pour le rendre un peu plus utile (encore beaucoup de choses qui manquent tout de même).
Si oui, pour résumer tout ça, la réponse ultime est parce que les éditeurs de navigateurs ont été stupides. 🙂
<center><h2><big><color="#FF0000"><blink>Warning!</blink></color></big></h2></center>
. Nous ne voyons pas de balisage plus comme ça (et n'en ai pas pour longtemps) parce que la (très bonne) idée est venue que Structure et Présentation doit être définie séparément les uns des autres.Ce que je fais est de prendre les tâches courantes comme le centrage ou flottant, et de faire des classes CSS d'eux. Quand je fais ce que je peux les utiliser tout au long des pages. Je peux aussi appeler autant que je veux sur le même élément.
Maintenant, je peux utiliser dans mon code HTML pour effectuer des tâches simples.
Selon W3Schools.com,
La HTML 4.01 spec donne cette raison de la dépréciation de la balise:
text-align: center
, cependant. Dans Gecko, lecenter
élément est équivalent à undiv
élément avec lastyle
attribut detext-align: -moz-center;
. Heh, tant pour l'interopérabilité!horizontal-align: center
attribut, par exemple?J'utilise toujours le <center> tag parfois, parce que rien dans le CSS fonctionne aussi bien. Exemples d'essayer d'utiliser un <div> truc et à défaut d':
HTML:
<center> obtient des résultats. Pour utiliser les CSS au lieu de cela, il est parfois nécessaire de mettre les CSS, en plusieurs endroits, et le désordre avec pour l'obtenir de centre droit. Pour répondre à votre question, le CSS est devenu une religion avec des croyants et des fidèles qui ont boudé <center> <b> <i> <u> comme un blasphème, impie, et beaucoup trop simple pour l'intérêt de leur propre sécurité d'emploi. Et si ils essaient de prendre votre <table> loin de vous, demandez ce qu'est le CSS équivalent de la colspan ou attribut rowspan est.
Il n'est pas de l'abstrait ou livresque vérité, mais le vécu de la vérité qui compte.
-- Zen
Vous pouvez toujours l'utiliser avec XHTML 1.0 Transitional et HTML 4.01 Transitional si vous le souhaitez. La seule autre façon (meilleur moyen, à mon avis) est avec marges:
Votre HTML doit définir l'élément, de ne pas gouverner sa présentation.
Il est prévu que le balisage, c'est à dire les balises HTML, représentent des sens et de la structure, et non l'apparence. Il a été mal mixé dans les premières versions de HTML, mais les normes de personnes sont en train de nettoyer que jusqu'à maintenant.
Un problème à laisser les balises de contrôle de l'apparence, c'est que vos pages ne sont pas bien jouer avec des dispositifs pour les personnes handicapées, tels que les lecteurs d'écran. Elle conduit également à avoir des tas et des tas de balises dans votre texte qui n'aident pas à clarifier le sens, mais plutôt l'encombrement de l'information à un niveau différent.
Donc CSS a été pensé pour déplacer le formatage/affichage dans une autre langue, qui est distinct du texte et peuvent être facilement conservées de cette façon. Entre autres choses, cela permet de changer les feuilles de style pour modifier l'apparence d'une page Web sans toucher aux autres marques. Et pour être en mesure de le faire pour beaucoup de pages en un seul récit foop.
Les outils CSS vous donne pour ce faire ne sont pas toujours élégante, je suis de votre côté là. Par exemple, il n'y a aucun moyen de le faire vertical efficace de centrage. Et horizontale de centrage, si ce n'est pas juste le texte qui se prêtent à
text-align
, n'est pas beaucoup mieux.Vous avez le choix de faire simple, efficace et confuse ou propre, élégant et lourd. Je ne comprends pas pourquoi les développeurs Web mis en place avec ce gâchis, mais je suppose qu'ils sont heureux d'avoir au moins une chance d'obtenir leur fait des choses.
HTML est prévu pour la structuration de données, pas de contrôle de mise en page. CSS est destiné à disposition de contrôle. Vous trouverez également beaucoup de concepteurs froncer les sourcils sur l'utilisation de
<table>
pour les mises en page pour cette même raison.Pour le texte et les images que vous pouvez utiliser
text-align
:CSS a un
text-align: center
de la propriété, et puisque c'est purement visuelle chose, pas de la sémantique, il devrait être relégué en CSS, pas en HTML.text-align
permettra d'harmoniser le contenu du contenant, pas le contenant lui-mêmetext-align: center
sur son élément parent.De la nourriture pour la pensée: ce serait un text-to-speech synthétiseur faire avec
<center>
?OMI centre de balises fonctionnent parfaitement bien pour certaines choses et ont travaillé à partir de la naissance de HTML et continuera à travailler pour de nombreuses années.
Sûr il existe d'autres moyens de centrage de la plupart d'entre eux ne fonctionnent pas ainsi que d'un centre tag n'. Aussi une chose à noter est que lorsque vous centre de quelque chose à l'intérieur d'un centre de balise, rien en dehors du centre de la balise obtient un saut de ligne avant et après, dans la plupart des cas.
Il a été rendu obsolète le long de avec d'autres balises comme
<font>
comme un élément de style. Il ne définit pas la nature de l'élément, mais les changements à quoi il ressemble. Le W3C a voulu garder des éléments HTML5 seulement de définir les éléments et supprimé tous les éléments de style, de sorte que tout le style est fait dans leCSS
ou<style>
de la page.Une solution rapide:
Voici la moins populaire réponse 🙂
"Obsolète" ne veut pas dire "mauvais", et centre n'est pas la même chose qu'un div avec du texte-align:center. Même s'il l'était, il serait absolument inutile d'utiliser centre, parce qu'il décrit quelque chose de très clair et ne blesse personne.
Permettez-moi de réagir sur certains points contre <center>.
"Il décrit la présentation, pas de sémantique!"
Pas de. Il décrit un agencement logique dans le contexte environnant, et a un comportement par défaut de l'être visuellement centré. Juste comme <p> décrit un paragraphe et <ul> décrit une liste. Ils ont une certaine apparence par défaut; n'hésitez pas à le redéfinir.
"Il n'est pas valide"
Oui, il est. C'est juste déconseillé, comme dans "pourraient être supprimés au plus tard". Mais il a été rendu obsolète depuis plus de 10 ans maintenant et il est toujours là.
"Il n'est pas pris en charge dans HTML5"
Belle tentative.
Cochez cette.
"C'est oldschool /stupide /maladroit /boiteux"
Aucun de ces. C'est comme un marteau: si vous savez ce que vous faites, il n'y a pas de raison pour ne pas l'utiliser. Un marteau peut tuer, oui, mais seulement si vous utilisez le mauvais chemin. Pour les ongles, c'est juste l'outil parfait, il était FAIT POUR ça. Et même si nous avons de meilleurs outils d'aujourd'hui, c'est l'un des les bons.
"De telles choses devraient être fait en CSS! TOUJOURS!"
Elle peut être réalisée en CSS. Mais en avoir une façon de ne pas dire que c'est le seul moyen. Tout ce qui est pris en charge, de travail et lisible devrait être ok à utiliser.
TLDR: n'utilisez pas de centre de tag, parce que les gens le détestent.
Si vous êtes à la mise à jour de vieille de site web qui a centre balise puis ci-dessous la solution peut ne pas fonctionner dans de nombreux cas,
La méthode ci-dessous vous donnera l'équivalent pour la balise:
CSS:
HTML:
texte fort
Vous pouvez ajouter ceci à votre css et l'utilisation
<div class="center"></div>
ou si vous voulez garder
<center></center>
et être prêt en cas de son jamais supprimé, ajouter ceci dans votre cssLa balise n'est pas obsolète en html standard - au moins le html que la plupart des navigateurs acceptent en tant que norme. Au lieu de cela, certaines personnes qui se sont mis à nous comme une sorte d'autorité sur l'internet (et qui ne sont pas élus, ni de toute autre manière responsable à nous, comme tout autre organe) nous racontent qu'ils ont décidé que nous ne DEVONS pas utiliser certaines balises, parce qu'ils ne nous aiment pas les utiliser.
Mais dans le monde réel, le navigateur devra continuer à soutenir ces balises tant qu'il y a un nombre important de sites web toujours autour de leur utilisation.
Donc, comme le loup et les trois cochons - ils peuvent huff and puff et sauter haut et en bas et crier et crier que nous ne pouvons pas utiliser ces balises, mais dans le monde réel - les navigateurs de suivre ce que veulent les utilisateurs et donc ils vont continuer à le Centre de soutien pour l'avenir prévisible.
De sorte que la seule raison de ne pas utiliser si vous êtes l'une des personnes qui sont forcées de se soumettre votre liberté de le diktat de ces groupes qui pensent qu'ils possèdent l'internet.
centre de la balise n'est pas utilisé plus il suffit d'utiliser cette
d'une autre manière
CSS
HTML