2012-04-20 11 views
94

Estoy anulando el CSS del sitio a una versión RTL cuando se elige un idioma específico.Como eliminar la propiedad izquierda cuando la posición es absoluta?

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

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

¿Cómo puedo establecerlo en ninguno o eliminarlo por completo durante la anulación?

+0

Para eliminar solo un atributo css específico como 'left' uso: 'var cssObject = $ ('selector'). Prop ('estilo'); cssObject.removeProperty ('left'); ' – ilgaar

Respuesta

260
left:auto; 

Esto hará que el valor predeterminado sea left.


Así que si usted tiene su margen de beneficio/CSS:

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

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

Al configurar RTL, podría cambiar a:

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

.myClass 
{ 
    position:absolute; 
    left:0; 
} 
.myClass.rtl 
{ 
    left:auto; 
    right:0; 
} 
13

En el futuro se podría usar left: unset; para desconfigurar la valor de izquierda.

A partir de hoy 4 nov 2014 unset solo es compatible con Firefox.

Read more about unset in MDN.

Mi conjetura es que seremos capaces de utilizarlo en torno al año 2022, cuando Internet Explorer 11 es eliminado correctamente.

+12

+1 para el comentario optimista de eliminación de IE 11. –

+0

IE pone el "IE" en "I'll never dIE". –

+0

Al final del año 2017 Microsoft Edge build 10565+ lo admite –

1
left: initial 

Esto también configurará left de nuevo en el navegador predeterminado.

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

Cuestiones relacionadas