为什么在HTML中不推荐使用<center>标签?
我只是好奇为什么HTML中的<center>
标签已被弃用。
<center>
是通过将容器封装在<center>
标签中快速alignment文本和图像块的一种简单方法,现在我还找不到更简单的方法。
任何人都知道如何中心“东西”(而不是margin-left:auto; margin-right:auto;
和宽度的东西),取代<center>
? 而且,为什么不推荐呢?
<center>
元素已被弃用,因为它定义了其内容的表示 – 它没有描述其内容。
一种居中的方法是将元素的页margin-left
和页margin-right
属性设置为auto
,然后将父元素的text-align
属性设置为center
。 这保证了元素将在所有现代浏览器中居中。
HTML就是为内容提供结构和含义 ,这应该是它唯一的function 。
但是,过去由愚蠢的浏览器开发人员添加了各种标签,违反了这一基本原则。
在某种程度上,人们(至less部分)感觉到了,并且开始(试图)就写出正确的HTML的规范达成一致,所以他们不赞成使用这些标签。
然而,破坏已经完成了 – 很多人已经学习了HTML,比如“把标签放在东西和东西上”,而不是理解语义和expression之间的(重要的和有用的)区别,而那些人已经写了书和教程,教他们错误的方式来写HTML,他们自己也一样,我们已经结束了一个正确的旧混乱。
理想情况下, center
标签应该永远不会存在,因为人们应该指出它不是“真正的”HTML,并告诉浏览器制造商回去做正确的事情。
为了做到这一点…alignment当然是一个演示问题 – 将布局和格式应用于(结构化)的内容 – 以及用于CSS的语言。
然而,愚蠢的浏览器开发者再次搞砸了早期的CSS – 在很多情况下,创build网页的人必须使用不正确的HTML,因为CSS根本不起作用。
现在,我们开始为CSS添加一些有用的function,但仍然有很多没有实现,而且有很多事情可以用更高级的方式实现,但现在已经标准化了,所以我们坚持以前的方式。
如果样式表是由合理的人来实现的,那么在任何像样的办公软件中都可以拥有所有的控件 – 为了alignment块和文本,它可以水平,垂直,颠倒,旋转等工作。 不会以愚蠢的方式将左/右边距设置为自动。
为了完整性,我将很快为网页添加第三个“层次”,这个层次处理的是为静态页面添加交互性 ,这当然是(错误的) JavaScript 。
那些愚蠢的浏览器开发者又一次不知道自己在做什么。 他们select了一个完全不正确的/无效的名字(出于营销的原因),并且再一次地挖掘了一个潜在的强大的语言,有缺陷,缺乏function性,并且创造了许多人(至今一直被人们讨厌)的东西。
当然,在过去的几年中,我们看到了JavaScript库的大规模起义,它们帮助我们展示了一些JS已经能够使用多年的酷东西,隐藏了浏览器中仍然存在的许多浏览器缺陷,部分有助于修补CSS支持,所以它更有用(但仍然有很多东西丢失)。
所以,总而言之 ,最终的答案是浏览器制造商是愚蠢的。 🙂
根据W3Schools.com ,
中心元素在HTML 4.01中被弃用,并且在XHTML 1.0 Strict DTD中不被支持。
HTML 4.01规范给出了这个弃用标签的原因:
CENTER元素与将align属性设置为“center”的DIV元素指定完全相同。
我所做的是采取共同的任务,如居中或浮动,并使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 Transitional和HTML 4.01 Transitional中使用它。 唯一的另一种方式(我认为最好的办法)是利润率:
<div style="width:200px;margin:auto;"> <p>Hello World</p> </div>
你的HTML应该定义这个元素,而不是控制它的表示。
它的目的是标记,即HTML标记,代表意义和结构,而不是外观。 在早期版本的HTML中,它被混淆得很糟糕,但人们现在正试图清除这些标准。
让标签控制外观的一个问题是,您的网页不适用于残障人士的设备,如屏幕阅读器。 这也会导致文本中出现大量标签,这些标签无法澄清其含义,而是将其与不同级别的信息混杂在一起。
所以CSS被认为是将格式化/显示移动到不同的语言,这是不同的文本,可以很容易地保持这种方式。 除此之外,这允许切换样式表来更改网页的外观,而不会触及其他标记。 并能够做到这一点大量的网页在一个膨胀foop。
CSS让你做的工具并不总是优雅的,我在你身边。 例如,没有办法做有效的垂直居中。 而水平居中,如果不只是文本适合text-align
,是不是好多了。
你可以select简单,有效,混乱或干净,优雅和繁琐。 我不明白为什么Web开发人员忍受这个混乱,但我想他们很高兴有至less一个机会完成他们的东西。
HTML旨在用于构造数据,而不是控制布局。 CSS旨在控制布局。 你也会发现,很多devise师因为这个原因而不愿意使用<table>
来进行布局。
对于文本和图像,您可以使用text-align
:
<div style="text-align: center;"> I'm centered. </div>
CSS有一个text-align: center
属性,因为这纯粹是一个可视化的东西,而不是语义,所以它应该被归为CSS而不是HTML。
思考的问题:文本到语音合成器与<center>
做什么?
国际海事组织(IMO)的中心标签完美地适用于某些事情,并从HTML的诞生开始工作,并将继续工作许多年。
当然,还有其他的方法,其中大部分都不能像中心标签那样工作。 还有一点需要注意的是,当你把一个东西放在一个中心标签里面时,在大多数情况下,中心标签之外的任何东西都会得到一个换行符。
它与其他标签(如<font>
一起被弃用,作为其样式元素。 它没有定义一个元素是什么,但改变了它的外观。 W3C希望保留HTML5元素只定义元素并删除所有样式元素,以便所有样式都在页面的CSS
或<style>
中完成。
快速修复:
<style> .element { position: relative; left: 50%; -webkit-transform: translateX(-50%); -moz-transform: translateX(-50%); transform: translateX(-50%); } </style>
如果您正在更新具有中心标签的旧网站,则以下解决scheme在许多情况下可能无法正常工作
居中的方法是将元素的margin-left和margin-right属性设置为auto,然后将父元素的text-align属性设置为center。
下面的方法会给你标签的确切的等价物:
.center{ text-align: center; display: inherit; } .center > div { /* It is the fix if there are any div tag inside center tag */ margin-left: auto; margin-right: auto; }
<span class="center"> Content </span>
这个标签在html标准中是不被废弃的 – 至less大部分浏览器都是标准的html。 相反,某些把我们定位为互联网权威的人(以及没有选举或者以任何其他方式向任何其他pipe理机构负责的人)告诉我们,他们已经决定我们不能使用某些标签,因为他们不喜欢我们使用它们。
但是在现实世界中,只要有相当多的网站在使用它们,浏览器就不得不继续支持这些标签。
所以就像狼和三头猪 – 他们可以抽搐,跳起来,大叫大叫,我们不能使用这些标签,但在现实世界 – 浏览器遵循用户所需要的,所以他们将继续支持中心在可预见的未来。
所以不使用它们的唯一理由是,如果你是被迫把自由提交给这些认为自己拥有互联网的组织的人的一个人。
中心标签不再使用,只是使用这个
<div style="margin:0 auto"> <!--contents goes here--> </div>
换句话说
CSS
.centerclass{ margin:0 auto; }
HTML
<div class="centerclass"> <!--Contents goes here--> </div>