W3docs

Propiedad CSS text-transform

Usa la propiedad text-transform para controlar los efectos de capitalización del texto de un elemento. Ve los valores y prueba ejemplos.

La propiedad CSS text-transform controla la capitalización del texto de un elemento — puede forzar el texto a MAYÚSCULAS, minúsculas, o Capitalizar Cada Palabra, sin cambiar el HTML subyacente. Se trata de un cambio puramente presentacional: el texto fuente permanece exactamente como lo escribiste, por lo que los lectores de pantalla, el copiar y pegar, y el envío de formularios siguen viendo el formato original.

Esta página cubre todos los valores de text-transform, los problemas comunes del valor capitalize, la conversión de mayúsculas/minúsculas específica de cada idioma y ejemplos ejecutables para cada valor.

¿Por qué usar text-transform en lugar de escribir directamente las mayúsculas?

Mantener el formato de mayúsculas en CSS en lugar de en el marcado mantiene tu contenido limpio y flexible:

  • Una única fuente de verdad. Escribe encabezados y etiquetas en mayúscula normal de oración; deja que CSS los convierta a mayúsculas solo donde el diseño lo requiera. Cambia el diseño más adelante en un solo lugar.
  • Favorable para la localización. Los traductores editan texto legible, no capitales que gritan.
  • Accesibilidad y SEO. Los motores de búsqueda y las tecnologías de asistencia leen el texto real, no los glifos con estilo. Convertir visualmente a mayúsculas la etiqueta de un <button> de esta forma sigue exponiendo un nombre accesible en formato normal.

Conversión de mayúsculas/minúsculas específica del idioma

text-transform sigue las reglas de capitalización del idioma del contenido (el atributo lang), no una conversión ASCII simple. Algunos casos destacados:

  • Lenguas túrquicas — el turco (tr), el azerbaiyano (az), el tártaro de Crimea (crh), el tártaro del Volga (tt) y el baskir (ba) tienen i con y sin punto, lo que da dos pares de mayúscula/minúscula: i/İ e ı/I.
  • Alemán (de) — la ß se convierte en SS en mayúsculas.
  • Griego (el) — cuando una palabra entera se convierte a mayúsculas, el acento de la vocal se elimina (ά → Α), excepto para la eta disyuntiva (ή/Ή).

La compatibilidad del navegador con estas reglas específicas del idioma varía, así que prueba si tu audiencia depende de ellas.

Advertencia

Los valores full-width y full-size-kana son experimentales. full-width tiene soporte parcial en WebKit, mientras que full-size-kana tiene soporte muy limitado.

Valor inicialnone
Se aplica aTodos los elementos. También se aplica a ::first-letter y ::first-line.
HeredadoSí.
AnimableNo.
VersiónCSS1
Sintaxis DOMobject.style.textTransform = "capitalize";

Sintaxis

text-transform: none | capitalize | uppercase | lowercase | full-width | full-size-kana | initial | inherit;

El valor "uppercase"

uppercase convierte cada carácter a su forma en mayúsculas — el uso más habitual es para encabezados, botones y etiquetas. En el ejemplo siguiente, el texto del párrafo y del <div> se fuerzan a mayúsculas mientras el HTML mantiene su formato normal:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        text-transform: uppercase;
      }
    </style>
  </head>
  <body>
    <h2>Text-transform property example</h2>
    <p>This is some paragraph.</p>
    <div>
      Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
    </div>
  </body>
</html>

Resultado

Propiedad CSS text-transform

Los valores "capitalize" y "lowercase"

capitalize convierte a mayúscula la primera letra de cada palabra y deja el resto de cada palabra sin cambios. Un límite de "palabra" es cualquier espacio en blanco, puntuación o símbolo, por lo que las comillas y los guiones también inician nuevas palabras (p. ej., mother-in-law se convierte en Mother-In-Law). Dos problemas comunes:

  • Solo afecta a la primera letraiPhone se convierte en IPhone, no en Iphone, porque el formato existente de las letras restantes se conserva.
  • Un dígito no cuenta como letra, por lo que la primera letra después de un número no se capitaliza. 3rd permanece como 3rd, nunca 3Rd.

lowercase es lo contrario de uppercase: fuerza cada carácter a minúsculas. En el ejemplo siguiente, el primer <div> usa capitalize y el segundo usa lowercase:

<!DOCTYPE html>
<html>
  <head>
    <style>
      .a {
        text-transform: capitalize
      }
      .b {
        text-transform: lowercase
      }
    </style>
  </head>
  <body>
    <h2>Text-transform property example</h2>
    <div class="a">"Text transform property"</div>
    <br />
    <div class="b">
      "THIS IS SOME PARAGRAPH FOR EXAMPLE".
    </div>
  </body>
</html>

El valor "none"

none es el valor predeterminado — el texto se muestra exactamente como está escrito, sin ningún efecto de capitalización. Se usa principalmente para cancelar un text-transform que un elemento heredaría de otro modo, ya que la propiedad se hereda de forma predeterminada.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      h1 {
        color: red;
      }
      h2 {
        text-transform: none;
      }
    </style>
  </head>
  <body>
    <h1>Example with text-transform property</h1>
    <h2>
        Example of the text-transform property with the "none" value:
    </h2>
  </body>
</html>

El valor "initial"

initial restablece la propiedad a su valor predeterminado definido en CSS (none), independientemente de cualquier valor heredado. El ejemplo siguiente restablece text-transform en un párrafo:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      h1 {
        color: red;
      }
      p.text {
        text-transform: initial;
      }
    </style>
  </head>
  <body>
    <h1>Example with text-transform property</h1>
    <h2>text-transform: initial:</h2>
    <p class="text">
      Example of the text-transform property with the "initial" value:
    </p>
  </body>
</html>

Valores

ValorDescripciónPruébalo
noneSin efectos de capitalización. Este es el valor predeterminado de esta propiedad.Pruébalo »
capitalizeConvierte el primer carácter de cada palabra a mayúscula.Pruébalo »
uppercaseConvierte todos los caracteres de cada palabra a mayúsculas.Pruébalo »
lowercaseConvierte todos los caracteres de cada palabra a minúsculas.Pruébalo »
full-widthHace que la escritura de un carácter (ideogramas y escrituras latinas) quede dentro de un cuadrado, permitiendo alinearlos con el chino o el japonés.Pruébalo »
full-size-kanaConvierte todos los caracteres Kana pequeños al Kana de tamaño completo, para compensar problemas de legibilidad en los tamaños de fuente pequeños que se usan típicamente en ruby.Pruébalo »
initialHace que la propiedad use su valor predeterminado.Pruébalo »
inheritHereda la propiedad de su elemento padre.

Propiedades relacionadas

text-transform es una de varias herramientas CSS para dar forma al aspecto del texto. Combínala con estas propiedades relacionadas:

  • text-decoration — subrayado, línea superior o tachado del texto.
  • font-variant — muestra el texto en versalitas (una variante tipográfica real, a diferencia de las mayúsculas visuales).
  • letter-spacing y word-spacing — combina bien con encabezados en mayúsculas, que a menudo se leen mejor con un espaciado adicional.
  • text-align — controla la alineación horizontal del texto transformado.
  • ::first-letter y ::first-linetext-transform también se aplica a estos pseudoelementos, útil para efectos de capitular.

Práctica

Práctica
¿Cómo se hace que cada palabra en un texto comience con letra mayúscula?
¿Cómo se hace que cada palabra en un texto comience con letra mayúscula?
Was this page helpful?