Подтвердить что ты не робот

Почему тег <nobr> устарел?

Я понимаю, что этот тег можно легко заменить на <span class="nowrap"> и немного CSS, но в реальной разметке я часто нахожу, что тег <nobr> более уместен. Это не о стиле, это о содержании. <nobr>V. V. Putin</nobr> например (в русской фамилии и фамилии типографии не должно быть разрыва строки, я думаю, что подобные правила применяются к другим языкам).

Я предполагаю, что усталость означает что-то лучше, но я не вижу, как стиль лучше, чем отдельный тег. Конечно, есть места, где нужно использовать CSS. Я что-то пропустил?

4b9b3361

Ответ 1

Он не устарел, потому что он никогда не был стандартным.

HTML (теоретически) - семантический язык разметки. Он описывает структуру и семантику документа вместе с отношениями с другими ресурсами.

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

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

Исключения обычно обрабатываются неразрывными пробелами (&nbsp;).

Ответ 2

Я нашел этот интересный и очень объяснительный комментарий к списку рассылки w3c:

<NOBR> не может быть устаревшим, поскольку он никогда не был частью даже переходных версий HTML W3C; это чисто личное.

Угу. Таким образом, это никогда не было и никогда не будет частью спецификации. Просто что-то "отсутствует" добавлено с помощью CSS.

Ответ 3

Это потому, что правильный тег должен быть семантически полезным, когда <nobr> не имеет какой-либо семантики, кроме ее стиля. Я предполагаю, что по той же причине, почему <center> и подобные теги стиля были устаревшими.

Ответ 4

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

<span class="propernoun">V. V. Putin</span>

а в CSS вы определяете

.propernoun {
  white-space: nowrap;
}

Так как... HTML не о стиле, а о содержании. В принципе, это то же самое, что предлагал OP, но nowrap в class= "nowrap" описывает презентационное свойство в html, которое должно быть в таблице стилей.

Ответ 5

Глупость. Это единственная причина.

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