¿Por qué está en desuso?

Entiendo que esta etiqueta podría reemplazarse fácilmente con y un poco de CSS, pero en el marcado de la vida real a menudo encuentro que la etiqueta es más apropiada. No se trata de estilo, se trata de contenido. VV Putin por ejemplo (en la tipografía rusa, el apellido y el primer nombre no deben ser de línea interrumpida, creo que se aplican reglas similares a otros idiomas).

Supongo que la desaprobación significa que hay algo mejor, pero no veo cómo el estilo es mejor que la etiqueta separada. Por supuesto, hay lugares donde se debe usar CSS. ¿Echo de menos algo?

No está en desuso porque nunca fue estándar en primer lugar.

HTML es (en teoría) un lenguaje de marcado semántico. Describe la estructura y la semántica de un documento junto con las relaciones con otros recursos.

HTML no se supone que describa la presentación. Un montón de características de presentación se agregaron durante las guerras del navegador. Algunos de estos se estandarizaron. La mayoría de ellos fueron posteriormente desaprobados cuando llegó el CSS.

CSS es un lenguaje para describir la presentación. Cuando tienes un trozo de texto que no debería tener un salto de línea, es una cuestión de presentación, por lo que CSS es el lugar correcto para hacerlo.

Las excepciones generalmente se manejan mediante espacios que no se dividen (   ).

Siéntase libre de usar la etiqueta HTML obsoleta / no estándar, siempre que la defina en CSS .

Está prácticamente garantizado que el nombre de este elemento nunca se reutilizará para ninguna otra tarea que no sea su comportamiento original, y este nombre es descriptivo de la acción que definirá en CSS, lo que lo hace intuitivo para las personas que revisan su HTML.

⚠ Los elementos personalizados (incluidos los elementos obsoletos) harán que su código no se valide como HTML.

Tu CSS tendrá que verse así:

 nobr { white-space: nowrap; hyphens: none; } 

Puede o no querer (o necesitar) los hyphens: none; parte, pero lo he agregado para completar, ya que parece que algunas implementaciones de (¿se utilizan para?) también suprimen la separación de palabras mientras que white-space: nowrap; no hace eso

Esto define el white-space como nowrap , que suprime los saltos de línea dentro del espacio en blanco y los hyphens como none , lo que evita la ruptura dentro de las palabras ( incluida la omisión de caracteres dentro de las palabras que “sugieren puntos de salto de línea”).

Tontería. Esa es la única razón.

es universalmente compatible, porque es necesario, para transmitir el hecho de que el contenido adjunto es semánticamente una sola unidad, por lo que no debe dividirse en varias líneas.

Encontré este comentario interesante y muy explicativo en una lista de correo w3c :

no puede ser desaprobado ya que nunca ha sido parte de las versiones HTML de W3C de transición; Es puramente propietaria.

Sí. Así que nunca fue y nunca será parte de la especificación. Sólo algo “faltante” añadido usando CSS.

La forma correcta de lograr lo que desea es declarar que “VV Putin” es un nombre propio, y definir en CSS que tal nombre propio no debe romperse la línea.

 VV Putin 

y en CSS definirías

 .propernoun { white-space: nowrap; } 

Dado que … HTML no se trata de estilo, se trata de contenido. Básicamente, esto es lo mismo que sugirió el OP, pero el nowrap en class = “nowrap” describe una propiedad de presentación en html que debería estar en la hoja de estilo.

Esto se debe a que una etiqueta adecuada debe ser semánticamente útil, cuando no tiene ninguna semántica aparte de su estilo. Supongo que esa es la misma razón por la que

y las tags de estilo similares están en desuso.