Propiedades lógicas para flotantes y posicionamiento
La especificación de Propiedades y Valores Lógicos contiene una asignación para los valores físicos float
y clear
, y también para las propiedades de posicionamiento usadas con positioned layout. Esta guía nos permite saber cómo utilizar estas propiedades.
Asignando propiedades y valores
La tabla a continuación detalla las propiedades y valores discutidos en esta guía junto con sus asignaciones físicas. Estas, asumen un modo de escritura (writing-mode
), con una dirección de izquierda a derecha (left-to-right).
Propiedad o valor lógico | Propiedad o valor lógico |
---|---|
float : inline-start |
float : left |
float : inline-end |
float : right |
clear : inline-start |
clear : left |
clear : inline-end |
clear : right |
inset-inline-start |
left |
inset-inline-end |
right |
inset-block-start |
top |
inset-block-end |
bottom |
text-align : start |
text-align : left |
text-align : end |
text-align : right |
Además de estas propiedades asignadas, hay algunas propiedades abreviadas adicionales que son posibles al poder abordar las dimensiones de bloque y en línea. Estos no tienen mapeo a las propiedades físicas.
Propiedad lógica | Propósito |
---|---|
inset-inline |
Establece los dos valores de inserción anteriores para la dimensión en línea simultáneamente. |
inset-block |
Establece los dos valores de inserción anteriores para la dimensión de bloque simultáneamente. |
inset |
Establece los cuatro valores de inserción simultáneamente. |
Flotante y ejemplo claro
Los valores físicos usados con las propiedades float
y clear
son left
, right
y both
. La especificación de las Propiedades Lógicas definen los valores inline-start
y inline-end
como asignación para left
y right
.
En el ejemplo de abajo tenemos dos cajas — la primera tiene una caja flotante con float: left
, la segunda con float: inline-start
. Si tu cambias el modo de escritura (writing-mode
) a vertical-rl
o la dirección (direction
) a rtl
verás que la caja flotando a la izquierda siempre se queda en la izquierda, mientras que el ítem inline-start
-floated sigue la dirección (direction
) y el modo de escritura (writing-mode
).
Ejemplo: Propiedades de inserción para diseño posicionado
El posicionamiento generalmente nos permite posicionar un elemento de una manera relativa al bloque de contención — esencialmente, insertamos el elemento en relación con el lugar donde caería en función del flujo normal. Para hacer esto, hemos usado popiedades físicas como top
, right
, bottom
y left
.
Estas propiedades toman una longitud o un porcentaje como valor y se relacionan con las dimensiones de la pantalla del usuario.
Se han creado nuevas propiedades en la especificación de Propiedades Lógicas para cuando desee que el posicionamiento se relacione con el flujo de texto en su modo de escritura. Estos son los siguientes: inset-block-start
, inset-block-end
, inset-inline-start
y inset-inline-end
.
En el siguiente ejemplo hemos usado las propiedades inset-block-start
y inset-inline-end
para posicionar la caja azul usando un posicionamiento absoluto dentro del área con el borde punteado de color gris, que tiene position: relative
. Podemos cambiar la propiedad de modo de escritura (writing-mode
) a vertical-rl
, o agregar direction: rtl
, y ver cómo el cuadro de flujo relativo se mantiene con la dirección del texto.
Nuevas abreviaciones de dos- y cuatro-valores
Al igual que con otras propiedades en la especificación, tenemos algunas propiedades abreviadas nuevas, que permiten configurar dos o cuatro valores a la vez. Estos no tienen una equivalencia directa a propiedades físicas.
inset
— pone los cuatro lados juntos.inset-inline
— pone los dos en línea juntos.inset-block
— pone los dos bloques juntos.
Nota: Los navegadores que han implementado la especificación de propiedades lógicas han implementado hasta ahora las asignaciones directas y no las abreviaturas nuevas. Consulte la sección de datos de compatibilidad del navegador en cada referencia de página de propiedades para obtener más detalles.
Ejemplo: Valores lógicos para text-align
La propiedad text-align
tiene valores lógicos que se relacionan con la dirección del texto. — en lugar de usar left
y right
usamos start
y end
. En el siguiente ejemplo tenemos text-align: right
en el primer bloque y text-align: end
en el segundo.
Si cambias el valor de la dirección (direction
) a rtl
verás que la alineación permanece a la derecha para el primer bloque, pero va al extremo lógico en el segundo bloque.
Esto funciona de una manera más consistente cuando se usa la alineación de caja que usa inicio y final en lugar de direcciones físicas para la alineación.