¿Cómo eliminar la propiedad Left cuando position: absolute?

137

Estoy anulando el CSS del sitio a una versión RTL cuando se elige un idioma específico.

Tengo un elemento que tiene que tener un posicionamiento absoluto. En la versión LTR, lo hago left: 0px;y está alineado a la izquierda; en la versión RTL con la que quiero hacer lo contrario right, pero la leftpropiedad no se anula, por lo que aún permanece a la izquierda.

  • He intentado hackear !important, pero eso no funcionó.
  • He intentado configurar left: none, pero eso no funcionó.

¿Cómo puedo configurarlo en ninguno o eliminarlo por completo mientras lo anulo?

eric.itzhak
fuente
Para eliminar solo un atributo css específico como el leftuso:var cssObject = $('selector').prop('style'); cssObject.removeProperty('left');
ilgaar

Respuestas:

321
left:auto;

Esto hará que la leftparte de atrás vuelva al valor predeterminado del navegador.


Entonces, si tiene su marcado / CSS como:

<div class="myClass"></div>

.myClass
{
  position:absolute;
  left:0;
}

Al configurar RTL, puede cambiar a:

<div class="myClass rtl"></div>

.myClass
{
  position:absolute;
  left:0;
}
.myClass.rtl
{
  left:auto;
  right:0;
}
Brusco
fuente
20

En el futuro se usaría left: unset;para desarmar el valor de left.

A partir de hoy, el 4 de noviembre de 2014 unsetsolo es compatible con Firefox.

Lea más sobre desarmado en MDN.

Supongo que podremos usarlo alrededor del año 2022 cuando IE 11 se elimine correctamente.

Jonas Äppelgran
fuente
IE pone el "IE" en "Nunca moriré".
adam rowe
1
A finales del año 2017, Microsoft Edge build 10565+ lo admite
Taras Yaremkiv
Solo usé esto para despejar una rightposición para un cambio receptivo - funcionó perfectamente (en Chrome)
SenAnan
1
left: initial

Esto también restablecerá leftlos valores predeterminados del navegador.

Pero es importante saber property: initialque no es compatible con IE.

MORHERO
fuente