Come rimuovere la proprietà Left quando position: absolute?


137

Sto sostituendo il sito CSS a una versione RTL quando viene scelta una lingua specifica.

Ho un elemento che deve avere un posizionamento assoluto. Nella versione LTR, lo faccio left: 0px;ed è allineato a sinistra; nella versione RTL voglio fare il contrario right, ma la leftproprietà non viene ignorata, quindi rimane ancora a sinistra.

  • Ho provato a fare hacking !important, ma non ha funzionato.
  • Ho provato a impostare left: none, ma non ha funzionato.

Come posso impostarlo su none o rimuoverlo completamente durante la sostituzione?


Per rimuovere solo un attributo css specifico come leftusare:var cssObject = $('selector').prop('style'); cssObject.removeProperty('left');
ilgaar

Risposte:


321
left:auto;

Questo leftripristinerà l'impostazione predefinita del browser.


Quindi se hai il tuo Markup / CSS come:

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

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

Quando si imposta RTL, è possibile modificare in:

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

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

20

In futuro si userebbe left: unset;per annullare il valore di sinistra.

Ad oggi, il 4 novembre 2014 unsetè supportato solo in Firefox.

Maggiori informazioni su unset in MDN.

Suppongo che saremo in grado di usarlo intorno all'anno 2022, quando IE 11 verrà gradualmente eliminato.


IE inserisce "IE" in "I'mnever dIE".
Adam Rowe,

1
Alla fine dell'anno 2017 Microsoft Edge build 10565+ lo supporta
Taras Yaremkiv

Ho appena usato questo per cancellare una rightposizione per un cambiamento reattivo - ha funzionato perfettamente (in Chrome)
SenAnan,

1
left: initial

Questo leftripristinerà anche l'impostazione predefinita del browser.

Ma è importante sapere che property: initialnon è supportato in IE.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.