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

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

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

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

Ответ 1

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

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

Ответ 2

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

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

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

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

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


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

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

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

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


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

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

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


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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

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

Ответ 6

Я все еще использую <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>

Ответ 7

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

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

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

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

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

Ответ 8

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

Ответ 9

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

<div style="text-align: center;">
    I'm centered.
</div>

Ответ 10

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

Ответ 11

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

Ответ 12

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

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

Ответ 13

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

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

    <style> 

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

    </style>

Ответ 14

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

метод центрирования состоит в том, чтобы установить 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>

Ответ 15

Здесь идет наименее популярный ответ :)

"Устаревший" не означает "плохой", и центр не совпадает с div с text-align: center. Даже если бы это было так, было бы абсолютно разумно использовать центр, потому что он очень четко описывает что-то и никому не вредит.

Позвольте мне отреагировать на некоторые моменты против & lt; center>.

"Он описывает представление, а не семантику!" Нет. Он описывает логическое расположение в окружающем контексте и имеет стандартное поведение визуального центрирования. Вы можете переопределить его (так же, как и все остальное), но неплохо иметь значение по умолчанию, например, полужирные заголовки таблиц, курсивный текст для тегов & lt; em>, маркеры для & lt; li> и т.д. Просто факт, что центр центрирует вещи? Это не грех. Это ни в коем случае не причина изгонять тег HTML. Думайте об этом как о семантическом теге, для которого браузер предлагает вам предложение: "эй, я вижу, вы отметили это как центр, я полагаю, вы хотите это в середине? Вы можете сказать мне иначе с помощью css, но пока вы не Я отцентрирую это для тебя! - определенно не то, за что идти в тюрьму.

"Это не верно" Да, это. Это просто устарело, как в "может быть удалено позже". Но это устарело уже более 10 лет, и это все еще здесь. Потому что это полезно.

"Это не поддерживается в HTML5" Покажите мне браузер, который не будет центрировать вещи внутри центрального тега.

"Это oldschool/глупый/неловкий/хромой" Ни один из них. Это как молоток: если вы знаете, что делаете, нет никаких причин не использовать его. Молоток может убить, да, но только если вы используете его неправильно. Для ногтей это просто идеальный инструмент, СДЕЛАНО ДЛЯ ЭТОГО. И даже если у нас есть лучшие инструменты сегодня, это один из хороших.

"Такие вещи должны делать CSS! ВСЕГДА!" Ребята, пожалуйста. Тот факт, что вы можете делать почти все в CSS, не означает, что вы всегда должны использовать CSS для этого. Это хорошо известный стиль, да, разметка и стиль могут быть разделены (в некоторой степени), это хорошо, но это не делает любой другой вариант "плохим выбором".

Кроме того, CSS еще не достаточно умен, и мы все это знаем.

Был спор о таблицах и вертикальном центрировании, это продолжалось более десяти лет. Каждый плевался по всему тегу таблицы, восхваляя сложные CSS-решения для достижения того же самого. Но ни один из них не был достаточно хорош. Затем, к всеобщему удивлению, появилась CSS-сетка, чтобы спасти день - это была первая хорошая альтернатива вертикальному центрированию на основе таблиц. Это так же, как в случае с & lt; center>: там что-то работает определенным образом, и ничто другое не работает точно так же, как это; придет время, когда это будет решено раз и навсегда, возможно, CSS4 будет иметь свойство "centering-method" или что-то подобное, чтобы элементы могли вести себя как центр, но до тех пор это все, что у нас есть. (Интересный факт: CSS-сетки на самом деле намного лучше, чем центральный тег - если вы ищете альтернативу.) Так или иначе, не бойтесь - если вам действительно нужен & lt; center>, используйте его.

Лично я никогда не пользуюсь центром, потому что работаю в команде, а они ненавидят все, что 5+ лет; они также ненавидят все, для чего у них есть более новая возможность. Но это модная вещь. Те же люди, которые не могут стоять в & lt; center>, сразу же примут ваш код, как только вы используете & lt; важный-контент> или любой пользовательский тег: в нем есть черта, это супер-пупер-HTML5, вдруг они полюбят вас для принятия стандартов. Абсолютно нет смысла называть один тег устаревшим, когда вы можете использовать и переопределить любой тег сегодня, но для некоторых из нас, людей, это, по-видимому, логично.

Пусть они будут. Не используйте центр, когда они видят вас. Но не беспокойтесь о поддержке браузера.

Могу ли я использовать? - тег ЦЕНТР

Ответ 16

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

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

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

CSS

.centerclass{
    margin:0 auto;
 }

HTML

<div class="centerclass">
  <!--Contents goes here-->
</div>

Ответ 17

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

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

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

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