Como remover a propriedade Left quando position: absolute?


137

Estou substituindo o CSS do site por uma versão RTL quando o idioma específico é escolhido.

Eu tenho um elemento que precisa ter posicionamento absoluto. Na versão LTR, eu faço left: 0px;e está alinhado à esquerda; na versão RTL, quero fazer o oposto right, mas a leftpropriedade não é substituída e, portanto, permanece à esquerda.

  • Eu tentei hackear !important, mas isso não funcionou.
  • Eu tentei configurar left: none, mas isso não funcionou.

Como posso defini-lo como nenhum ou removê-lo completamente enquanto o substitui?


Para remover apenas um atributo css específico, como leftuso:var cssObject = $('selector').prop('style'); cssObject.removeProperty('left');
ilgaar

Respostas:


321
left:auto;

Isso voltará ao padrão leftdo navegador.


Portanto, se você possui sua marcação / CSS como:

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

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

Ao configurar o RTL, você pode mudar para:

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

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

20

No futuro, seria usado left: unset;para desarmar o valor da esquerda.

Até hoje, 4 de novembro de 2014 unseté suportado apenas no Firefox.

Leia mais sobre a definição no MDN.

Meu palpite é que poderemos usá-lo por volta do ano 2022, quando o IE 11 for devidamente eliminado.


O IE coloca o "IE" em "Eu nunca vou morrer".
Adam Rowe

1
No final do ano de 2017, o Microsoft Edge build 10565+ é compatível com
Taras Yaremkiv 22/11

Apenas usei isso para limpar uma rightposição de mudança responsiva - funcionou perfeitamente (no Chrome)
SenAnan

1
left: initial

Isso também leftretornará ao padrão do navegador.

Mas importante saber property: initialnão é suportado no IE.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.