soy Kseso y esto EsCSS

text-align-last: control de la última línea aunque también sea la primera

La "nueva" propiedad text-align-last para el control de la alineación en la última línea. Sea cual sea, incluso si es la primera.

text-align-last: control de la última línea aunque también sea la primera

·Por Kseso ✎ 0
text-align-last: control de la última línea aunque también sea la primera

Preámbulos

Uno

Allá por el inicio de la existencia del blog "trasladaba" al español el nuevo, entonces, documento Css text level 3. Hoy aquel documento está como last call y aunque no haya alcanzado el estatus de recomendation ya ha visto la luz el siguiente desarrollo que lo complementa y amplía: Css text level 4.

Como suele ser habitual en el camino de cualquier documento del Consorcio algunas de las novedades del "level 3" están marcadas como at risk (que viene a ser un estado como el del Gato de Schrödinger), de otras no busques ver su funcionamiento en vivo en navegadores y alguna que ya están listas para jugar con ellas.

Dos

Poco después (sobre 2 meses) de publicado el post sobre Css text level 3 traía a estas páginas otra traducción. En este caso del artículo de Patrick Kunka Text-align: Justify and RWD.

En él muestra cómo crear una grilla o rejilla con los elementos distribuidos equitativamente en base a la propiedad text-align. También recoge un par de "inconvenientes" en el momento de su publicación:

  1. La declaración text-align: justify; sólo aplica si hay 2 ó más lineas conformadas.
  2. Distribución de los ítems en la última línea si está incompleta.

El primer caso (ítems ocupan una sóla línea) se puede solventar con Css: se encarga al pseudoelemento ::after que conforme una línea más. Así los ítems se distribuyen como deseamos. Es la línea formada por los trazos de la siguiente imagen:

Alineación justificada y distribuida en una sóla línea con ayuda de un elemento de
Alineación justificada y distribuida en una sola línea con ayuda de un elemento de "salto"

Para el segundo "pequeño inconveniente" Css no tenía solución (entonces). Así que quedaba delegado o encomendado a la programación y lenguaje usado en ella (js, php...) en calcular los espacios vacíos de la última línea de ítems y crear otros tantos ocultos para lograr una distribución o alineación deseada:

2 inconveniente de text-laign: justify solventado con elementos extras
2 inconveniente de text-laign: justify solventado con elementos extras

Tres

En la edición de este año de Octuweb, en su primer artículo, uno de los "trucos" para engañar a Css que incluía su autora era el punto 1 del preámbulo anterior: una sóla línea de ítems forzada su alineación justificada con el pseudoelemento.

text-align-last: control de la última línea

Después de esta larga serie de preámbulos (disculpas para que el artículo no quedase tan pobre y para darte qué leer) retomemos el documento Css text level 3 y una de sus novedades text-align-last.

Con esta propiedad se controla el tipo de alineación en la última línea. Y la última es la última, con independencia de cuántas haya antes que ella. Aplica aunque la última también sea la primera.

Los valores para text-align-last son:

  • auto
  • start
  • end
  • left
  • right
  • center
  • justify

Soporte a text-align-last

Por mis pruebas ya es usable en Chrome y Firefox con prefijo -moz-. En IE 11 tiene algunas inconsistencias según caniuse.com.

Demo 1: ítems de menú

Una línea de items ocupando toda la línea:

See the Pen text-align-last by Kseso (@Kseso) on CodePen.

Demo 2: párrafos

See the Pen QjMOop by Kseso (@Kseso) on CodePen.

Pero, pero, pero...

Si realmente quieres tener control de la distribución o alineación de ítems en casos como la primera demo recurre al flexbox sin dudar. Tendrás muchas más herramientas, aka declaraciones, para lograr tu propósito.

avatar del Editor del blog

the obCSServer ᛯ Ramajero Argonauta, Enredique Amanuense de CSS.
#impoCSSible inside
Dicen que, en español, EsCss es el mejor blog de CSS. Posíblemente exageren.
@Kseso EsCss Kseso