我只是好奇为什么HTML中的<center>标记被弃用了。

<center>是一种通过将容器封装在<center>标签中来快速居中对齐文本和图像块的简单方法,现在我真的找不到任何更简单的方法了。

有人知道任何简单的方法如何居中“东西”(不是左边距:auto;margin-right:汽车;width),替换<center> ?还有,为什么它被弃用了?


当前回答

最不受欢迎的答案

已弃用的标记不一定是坏标记; 有处理表示逻辑的标签,center是其中之一; 中心标签与text-align:center的div不同; 事实上,你有另一种方法来做某事并不意味着它无效。

让我解释一下,因为这里有臭名昭著的反对者,他们会认为我在捍卫老式的HTML4或其他东西。不,我不是。但围绕中心的争论只是一场趋势之战,没有真正的理由抛弃一个有效的标签。

让我们来看看反对它的主要论点。

"It describes presentation, not semantics!" No. It describes a logical arrangement - and yes, it has a default appearance, just as other tags like <p> or <ul> do. But the point is the enclosed part's relation to its surroundings. Center says "this is something we separate by visually different positioning". "It's not valid" Yes it is. It's just deprecated, as in, could be removed later. For 15+ years now. And it's not going anywhere, apparently. There are major sites (including google.com) that use this tag because it's very readable and to the point - and those are the same reasons we like HTML5 tags for. "It's not supported in HTML5" It's one of the most widely supported tags, actually. MDN says "its use is discouraged since it could be removed at any time" - good point, but that day may never come, to quote a classic. Center was already deprecated in like 2004 or so - it's still here and still useful. "It's oldschool" Shoelaces are oldschool too. New methods don't invalidate the old. You want to feel progressive and modern: fine. But don't make it the law. "It's stupid / awkward / lame / tells a story about you" None of these. It's like a hammer: one tool for a specific job. There are other tools for the same job and other jobs for the same tool; but it was created to solve a certain problem and that problem is still around so we might as well just use a dedicated solution. "You shouldn't do this, because, CSS" Centering can absolutely be achieved by CSS but that's just one way, not the only one, let alone the only appropriate one. Anything that's supported, working and readable should be ok to use. Also, the same argument happened before flexboxes and CSS grids, which is funny because back then there was no CSS way to achieve what center did. No, text-align:center is not the same. No, margin:auto is not the same. Anyone who argued against center tags before flexbox simply didn't know enough about CSS.

TL; diana:

不使用<center>的唯一原因是人们会讨厌你。

其他回答

<center>元素已弃用,因为它定义了其内容的表示—它不描述其内容。

居中的一种方法是将元素的margin-left和margin-right属性设置为auto,然后将父元素的text-align属性设置为居中。这保证了元素将在所有现代浏览器中居中。

我有时仍然使用<center>标签,因为CSS中的任何东西都不能很好地工作。尝试使用<div>技巧而失败的例子:

<div style="text-align: center;">This div is centered, but it's a simple example.</div> <br /> <div style="text-align: center;"><table border="1"><tr><td>&lt;div style="text-align: center;"&gt; didn't center correctly.</td></tr></table></div> <br /> <div style="text-align: center;margin-left:auto;margin-right:auto"><table border="1"><tr><td>&lt;div style="text-align: center;margin-left:auto;margin-right:auto"&gt; still didn't center either</td></tr></table></div> <br /> <center><table border="1"><tr><td>Actually Centered with &lt;center&gt; tag</td></tr></table></center>

<center> gets results. To use CSS instead, you sometimes have to put CSS in several places and mess with it to get it to center right. To answer your question, CSS has become a religion with believers and followers who shunned <center> <b> <i> <u> as blasphemy, unholy, and much too simple for the sake of their own job security. And if they try to take your <table> away from you, ask them what the CSS equivalent of the colspan or rowspan attribute is. It is not the abstract or bookish truth, but the lived truth that counts. -- Zen

您可以将此添加到您的css中,并使用<div class="center"></div>

.center{
  text-align: center;
  margin: auto;
  justify-content: center;
  display: flex;
}

或者如果你想保留<center></center>,并为它被删除做好准备,将其添加到你的CSS中

center{
  text-align: center;
  margin: auto;
  justify-content: center;
  display: flex;
}

据W3Schools.com报道,

中心元素在HTML 4.01中已弃用,并且在XHTML 1.0 Strict DTD中不受支持。

HTML 4.01规范给出了弃用标记的原因:

CENTER元素完全等价于将align属性设置为“CENTER”来指定DIV元素。

最不受欢迎的答案

已弃用的标记不一定是坏标记; 有处理表示逻辑的标签,center是其中之一; 中心标签与text-align:center的div不同; 事实上,你有另一种方法来做某事并不意味着它无效。

让我解释一下,因为这里有臭名昭著的反对者,他们会认为我在捍卫老式的HTML4或其他东西。不,我不是。但围绕中心的争论只是一场趋势之战,没有真正的理由抛弃一个有效的标签。

让我们来看看反对它的主要论点。

"It describes presentation, not semantics!" No. It describes a logical arrangement - and yes, it has a default appearance, just as other tags like <p> or <ul> do. But the point is the enclosed part's relation to its surroundings. Center says "this is something we separate by visually different positioning". "It's not valid" Yes it is. It's just deprecated, as in, could be removed later. For 15+ years now. And it's not going anywhere, apparently. There are major sites (including google.com) that use this tag because it's very readable and to the point - and those are the same reasons we like HTML5 tags for. "It's not supported in HTML5" It's one of the most widely supported tags, actually. MDN says "its use is discouraged since it could be removed at any time" - good point, but that day may never come, to quote a classic. Center was already deprecated in like 2004 or so - it's still here and still useful. "It's oldschool" Shoelaces are oldschool too. New methods don't invalidate the old. You want to feel progressive and modern: fine. But don't make it the law. "It's stupid / awkward / lame / tells a story about you" None of these. It's like a hammer: one tool for a specific job. There are other tools for the same job and other jobs for the same tool; but it was created to solve a certain problem and that problem is still around so we might as well just use a dedicated solution. "You shouldn't do this, because, CSS" Centering can absolutely be achieved by CSS but that's just one way, not the only one, let alone the only appropriate one. Anything that's supported, working and readable should be ok to use. Also, the same argument happened before flexboxes and CSS grids, which is funny because back then there was no CSS way to achieve what center did. No, text-align:center is not the same. No, margin:auto is not the same. Anyone who argued against center tags before flexbox simply didn't know enough about CSS.

TL; diana:

不使用<center>的唯一原因是人们会讨厌你。