问题描述

我只是好奇为什么不推荐使用 HTML 中的<center> 标记。

<center> 是通过将容器封装在<center> 标签中的一种快速 center-aligning 文本和图像块的简单方法,我现在无法找到更简单的方法。

任何人都知道如何将”stuff”(不是 margin-left:auto; margin-right:auto; 和宽度的东西) 置于中心位置,这取代了<center>?而且为什么不弃用?

最佳解决方案

<center> 元素已被弃用,因为它定义了其内容的呈现 – 它没有描述其内容。

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

次佳解决方案

HTML 是关于为内容提供结构和意义的,这应该是其唯一的功能。

不过,过去由愚蠢的浏览器开发人员添加了各种标签,这些标签违反了这一基本原则。

在某些时候,人们至少感觉到 (部分是至少) 的感觉,并开始 (试图) 同意编写正确的 HTML 的规范,所以他们不赞成使用这些标签。

然而,损害已经完成了 – 太多的人已经学习 HTML 作为 「放置标签围绕东西和东西发生」,而不是理解 (重要和有用的) 语义和表达之间的区别,而那些人已经写了书和教程,教其他人错误的方式来编写 HTML,他们自己做的一样,我们结束了一个正确的旧混乱。

理想情况下,center 标签应该永远不存在,因为人们应该指出它不是’real’ HTML,并告诉浏览器制造商回去做正确的事情。

并且为了正确地进行… 对齐当然是一个演示文稿问题 – 将布局和格式化应用于 (结构化) 内容,而使用的语言是 CSS 。

然而,再次,愚蠢的浏览器开发人员搞砸了早期的 CSS – 在许多情况下,创建网页的人必须使用不正确的 HTML,因为 CSS 根本没有起作用。

这些天,我们开始获得一些有用的功能添加到 CSS,但仍然有很多还没有实现,而且有一些可以以非常优秀的方式实现的东西,但现在已经被标准化了,所以我们坚持用旧的方式。

如果样式表已由合理的人员实施,您将拥有任何体面的办公软件中的所有控件 – 对齐块和文本,它可以水平,垂直地工作,upside-down,旋转等等 – 以愚蠢的方式将左/右边距设置为自动。

为了完整,我将快速添加第三个用于网页的’level’,它用于将另外的静态页面添加到互动页面,这当然是 (mis-named)JavaScript 。

再次,那些愚蠢的浏览器开发者不知道他们在做什么。他们选择了一个完全不正确/无效的名称 (出于营销的原因),并再次夸大了一个潜在的伟大和强大的语言,缺陷,缺乏功能,并创造了 (直到最近) 被许多人讨厌的东西。

过去几年,我们当然看到了 JavaScript Library 的大起潮,这些 Library 帮助显示了 JS 已经有能力多年的优秀资料,隐藏了浏览器中仍然存在的许多浏览器漏洞,并且部分帮助修补了 CSS 支持,所以这有点更有用 (仍然有很多东西丢失) 。

所以,总而言之,最终的答案是因为浏览器制造商是愚蠢的。 🙂

第三种解决方案

根据 W3Schools.com

The center element was deprecated in HTML 4.01, and is not supported in XHTML 1.0 Strict DTD.

HTML 4.01 spec 给出了弃用标签的原因:

The CENTER element is exactly equivalent to specifying the DIV element with the align attribute set to “center”.

第四种方案

我所做的是采取常见的任务,如定心或浮动,并使 CSS 类脱离出来。当我这样做时,我可以在任何页面上使用它们。我也可以在同一个元素上调用我想要的数量。

.text_center {text-align: center;}
.center {margin: auto 0px;}
.float_left {float: left;}

现在我可以用 HTML 代码来执行简单的任务。

<p class="text_center">Some Text</p>

第五种方案

如果您愿意,还可以使用 XHTML 1.0 TransitionalHTML 4.01 Transitional 。唯一的其他方式 (在我看来最好的方法) 是利润率:

<div style="width:200px;margin:auto;">
  <p>Hello World</p>
</div>

您的 HTML 应该定义元素,而不管其表示。

第六种方案

意图是标记,即 HTML 标签,代表意义和结构,而不是外观。在 HTML 的早期版本中,它是非常混杂的,但是现在人们正在尝试清理这些标准。

让标签控制外观的一个问题是,您的页面与残疾人设备 (如屏幕阅读器) 播放不佳。它也导致在您的文本中有很多很多标签,这些标签无助于澄清意义,而是将其与不同级别的信息混在一起。

所以 CSS 被认为是将格式化/显示移动到与文本分离的不同语言,并且可以很容易地保持这种方式。除此之外,这允许切换样式表来更改网页的外观,而不会触及其他标记。并且能够在一个膨胀的 foop 中为许多页面做到这一点。

工具 CSS 给你这样做并不总是优雅,我在你身边。例如,没有办法做有效的垂直居中。而水平居中,如果不仅仅是适合 text-align 的文字,情况并不好。

你可以选择做得容易,有效和混乱或干净,优雅和繁琐。我不明白为什么 Web 开发人员忍受这个混乱,但我猜他们很高兴有至少一个机会来完成他们的工作。

第七种方案

HTML 用于构造数据,而不是控制布局。 CSS 旨在控制布局。您也会发现许多设计师因为这个原因而使用<table> 进行布局。

第八种方案

CSS 有一个 text-align: center 属性,因为这纯粹是一个可视化的东西,而不是语义,它应该被降级到 CSS,而不是 HTML 。

第九种方案

食物的想法:text-to-speech 合成器将与<center> 做什么?

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛