Почему тег <center> устарел в HTML?

Мне просто интересно узнать, почему тег <center> в HTML был устарел.

<center> был простым способом быстрого выравнивания по центру блоков текста и изображений путем инкапсуляции контейнера в тег <center>, и я действительно не могу найти более простой способ, как это сделать сейчас.

Кто-нибудь знает какой-либо простой способ сосредоточить "материал" (а не margin-left:auto; margin-right:auto; и width thing), что заменяет <center>? А также, почему он устарел?

+191
25 нояб. '09 в 18:00
источник поделиться
16 ответов

Элемент <center> устарел, поскольку он определяет представление его содержимого - он не описывает его содержимое.

Один метод центрирования состоит в том, чтобы установить свойства margin-left и margin-right этого элемента на auto, а затем установить родительские элементы text-align в свойство center. Это гарантирует, что элемент будет центрироваться во всех современных браузерах.

+214
25 нояб. '09 в 18:06
источник

Связанные вопросы


Похожие вопросы

HTML - это предоставление структуры и значения для контента, и это должна быть его единственная функция.

Однако существуют различные теги, которые ранее были добавлены глупыми разработчиками браузеров, которые нарушают этот основной принцип.

В какой-то момент люди пришли в себя (частично, по крайней мере), и начали (пытались) согласовать спецификацию для написания правильного HTML, поэтому они не рекомендовали некоторые из этих тегов.

Тем не менее, ущерб уже сделан - слишком много людей узнали, что HTML "помещает теги вокруг вещей и вещей", а не понимает (важное и полезное) различие между семантикой и презентацией, и эти люди пошли дальше писать книги и учебники, обучать других людей неправильному способу писать HTML, которые сами сделали то же самое, и мы закончили с правильным старым беспорядком.

В идеале тег center никогда не должен существовать, потому что люди должны были указывать на него не "реальный" HTML, и сказали разработчикам браузера вернуться и сделать это правильно.


И для этого правильно... выравнивание - это, конечно, проблема с презентацией - применение макета и форматирования к (структурированному) контенту - и язык для этого - CSS.

Однако, опять же, глупые разработчики браузеров скрутили ранний CSS - и во многих случаях людям, создавшим веб-страницы, приходилось использовать неправильный HTML, потому что CSS просто не работал.

В наши дни мы добавили некоторые полезные функциональные возможности в CSS, но все еще много чего не реализовано, и немало вещей, которые могли быть реализованы по-разному, но теперь стандартизованы так мы застряли со старыми способами.

Если стили были реализованы разумными людьми, у вас были бы все элементы управления, которые у вас есть в любом достойном офисном программном обеспечении - для выравнивания блоков и текста он работал бы горизонтально, вертикально, перевернутый, повернутый и т.д. - и это не было бы сделано глупым способом установки полей слева/справа на авто.


Я добавлю быстро, для полноты, третий "уровень" для веб-страниц, который посвящен добавлению интерактивности к статической странице в противном случае, которая, конечно же, (неправильно названная) JavaScript.

И все же, эти глупые разработчики браузеров не знали, что они делают. Они выбрали совершенно неточное/недействительное имя (по маркетинговым соображениям) и снова пронизали потенциально великий и мощный язык с недостатками, отсутствием функциональности и создали то, что было (до недавнего времени) ненавидило многие люди.

Мы, конечно, в последние несколько лет видели большое восстание библиотек JavaScript, которые помогли показать некоторые из классных вещей, которые JS был способен годами, скрывая многие из недостатков браузера, которые все еще существуют в браузерах, и частично помогли исправить поддержку CSS, поэтому он немного полезнее (все еще много чего не хватает).


Итак, давайте подытожим все, что, окончательный ответ заключается в том, что разработчики браузеров были глупы.:)

+70
25 нояб. '09 в 18:41
источник

Согласно W3Schools.com,

Элемент центра устарел в HTML 4.01 и не поддерживается в XHTML 1.0 Strict DTD.

HTML 4.01 spec дает эту причину для устаревания тега:

Элемент CENTER в точности эквивалентен заданию элемента DIV с атрибутом align, установленным в "center".

+16
25 нояб. '09 в 18:11
источник

То, что я делаю, - это использовать общие задачи, такие как центрирование или плавание, и сделать из них классы CSS. Когда я это делаю, я могу использовать их на любой странице. Я также могу назвать столько, сколько хочу на одном элементе.

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

Теперь я могу использовать их в своем HTML-коде для выполнения простых задач.

<p class="text_center">Some Text</p>
+14
26 нояб. '09 в 4:11
источник

Вы все еще можете использовать это с XHTML 1.0 Transitional и HTML 4.01 Transitional, если хотите. Единственный другой способ (лучший способ, на мой взгляд) с полями:

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

Ваш HTML должен определять элемент, а не управлять его представлением.

+10
25 нояб. '09 в 18:03
источник

Он подразумевал, что разметка, т.е. теги HTML, представляют смысл и структуру, а не внешний вид. В ранних версиях HTML он был плохо перепутан, но люди стандартов сейчас пытаются его очистить.

Одной из проблем с возможностью управления тегами является то, что ваши страницы плохо воспроизводятся с устройствами для инвалидов, такими как устройства чтения с экрана. Это также приводит к тому, что в тексте есть много и много тегов, которые не помогают прояснить смысл, а скорее загромождают его информацией другого уровня.

Итак, CSS был придуман для перемещения форматирования/отображения на другой язык, который отделен от текста и может быть легко сохранен таким образом. Помимо прочего, это позволяет переключать таблицы стилей, чтобы изменить внешний вид веб-страницы, не касаясь другой разметки. И чтобы иметь возможность делать это для большого количества страниц в одной волне всплеска.

Инструменты CSS позволяют вам делать это не всегда элегантно, я на вашей стороне. Например, нет возможности сделать эффективное вертикальное центрирование. И горизонтальное центрирование, если это не только текст, поддающийся text-align, не намного лучше.

У вас есть выбор: делать легкие, эффективные и путаные или чистые, элегантные и громоздкие. Я не понимаю, почему веб-разработчики смирились с этим беспорядком, но я думаю, что они счастливы иметь хотя бы шанс сделать свой материал.

+8
25 нояб. '09 в 18:09
источник

Я все еще использую <center> тег, потому что ничего в CSS не работает. Примеры попыток использования <div> трюк и неудача:

<div style="text-align: center;">This div is centered, but it 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>

< центр > получает результаты. Чтобы использовать CSS вместо этого, вам иногда приходится ставить CSS в нескольких местах и ​​возиться с ним, чтобы получить его в центре справа. Чтобы ответить на ваш вопрос, CSS стал религией с верующими и последователями, которые избегали <center> </Л; б > < & я GT; < & у GT; как богохульство, нечестивость и слишком простые для своей собственной безопасности работы. И если они попытаются взять ваш <table> от вас, спросите их, что такое эквивалент CSS атрибута colspan или rowspan.

Это не абстрактная или книжная правда, а живая истина, которая имеет значение.
- Дзен

+7
03 янв. '18 в 17:32
источник

HTML предназначен для структурирования данных, а не для управления макетом. CSS предназначен для управления макетом. Вы также обнаружите, что многие дизайнеры недовольны использованием <table> для макетов по этой же причине.

+6
25 нояб. '09 в 18:06
источник

Для текста и изображений вы можете использовать text-align:

<div style="text-align: center;">
    I'm centered.
</div>
+4
25 нояб. '09 в 18:06
источник

CSS имеет свойство text-align: center, и поскольку это чисто визуальная вещь, а не семантическая, ее следует отнести к CSS, а не HTML.

+3
25 нояб. '09 в 18:07
источник

Пища для размышлений: что бы синтезатор текста в речь делал с <center>?

+3
25 нояб. '09 в 23:52
источник

Теги центра IMO отлично работают для некоторых вещей и работают от рождения HTML и будут продолжать работать в течение многих лет.

Конечно, есть и другие способы центрирования, большинство из которых не работают, а также тег центра. Также следует отметить, что когда вы центрируете что-то внутри центрального тега, все, что находится за пределами центрального тега, в большинстве случаев получает разрыв строки до и после.

+1
24 июн. '15 в 18:16
источник

Если вы обновляете старый веб-сайт с центральным тегом, то решение ниже может не работать во многих случаях.

метод центрирования состоит в том, чтобы установить margin-left и margin-right свойства элемента в auto, а затем установите родительский элемент text-align свойство в центр.

Следующий метод даст вам точный эквивалент для тега:

.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>

сильный текст

0
07 янв. '17 в 15:58
источник

Он был устаревшим наряду с другими тегами, такими как <font> как элемент стиля. Он не определяет, что такое элемент, но изменяет его внешний вид. W3C хотел, чтобы элементы HTML5 только определяли элементы и удаляли все элементы стиля, чтобы весь стиль выполнялся в CSS или <style> на странице.

Быстрое исправление:

    <style> 

      .element {
         position: relative;
         left: 50%;
         -webkit-transform: translateX(-50%);
         -moz-transform: translateX(-50%);
         transform: translateX(-50%);
      }

    </style>
0
31 авг. '16 в 7:16
источник

центральный тег больше не используется, просто используйте это

<div style="margin:0 auto">
  <!--contents goes here-->
</div>

другим способом

CSS

.centerclass{
    margin:0 auto;
 }

HTML

<div class="centerclass">
  <!--Contents goes here-->
</div>
-3
24 дек. '13 в 7:08
источник

Тег не устарел в стандарте html - по крайней мере, html, который большинство браузеров принимает в качестве стандарта. Вместо этого некоторые люди, которые устанавливают нас как некую власть над Интернетом (и которые не избираются и не могут быть подотчетны нам, как любому другому руководящему органу) говорят нам, что они решили, что НЕ ДОЛЖНЫ использовать определенные теги, потому что они не Мы не используем их.

Но в реальном мире браузеру придется продолжать поддерживать эти теги, пока существует значительное количество веб-сайтов, которые все еще используют их.

Так как волк и три свиньи - они могут нахлынуть и задохнуться, прыгать вверх и вниз и кричать, и кричать, что мы не можем использовать эти теги, но в реальном мире - браузеры следуют за тем, что хотят пользователи, и поэтому они будут продолжать для поддержки Центра в обозримом будущем.

Таким образом, единственная причина не использовать их - это то, что вы один из людей, которые вынуждены представить свою свободу диктату этих групп, которые считают, что они владеют Интернетом.

-3
07 янв. '16 в 17:53
источник

Посмотрите другие вопросы по меткам или Задайте вопрос