Как удалить свойство Left при позиции: absolute?

Я переопределяю CSS сайта в RTL-версии, когда выбран конкретный язык.

У меня есть элемент, который должен иметь абсолютное позиционирование. В версии LTR я делаю left: 0px; и выравнивается влево; в RTL-версии я хочу сделать обратное с right, но свойство left не переопределено, поэтому оно все еще остается слева.

  • Я пробовал взломать с помощью !important, но это не сработало.
  • Я пробовал установку left: none, но это не сработало.

Как я могу либо установить его на none, либо полностью удалить его при переопределении?

Ответ 1

left:auto;

По умолчанию значение left будет возвращено в браузер по умолчанию.


Итак, если у вас есть Markup/CSS как:

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

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

При установке RTL вы можете изменить на:

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

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

Ответ 2

В будущем можно было бы использовать left: unset; для отмены значения слева.

На сегодняшний день 4 ноября 2014 года unset поддерживается только в Firefox.

Подробнее о unset в MDN.

Я предполагаю, что мы сможем использовать его примерно в 2022 году, когда IE 11 будет поэтапно отменен.

Ответ 3

left: initial

Это также установит left обратно в браузер по умолчанию.

Но важно знать, что property: initial не поддерживается в IE.