Как удалить свойство Left, когда position: absolute?


137

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

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

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

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


Чтобы удалить только определенный атрибут CSS, например, leftиспользуйте:var cssObject = $('selector').prop('style'); cssObject.removeProperty('left');
ilgaar

Ответы:


321
left:auto;

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


Так что если у вас есть разметка / 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;
}

20

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

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

Узнайте больше о unset в MDN.

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


IE помещает «IE» в «Я никогда не умру».
Адам

1
В конце 2017 года Microsoft Edge build 10565+ поддерживает его
Тарас Яремкив

Просто использовал это для очистки rightпозиции для
адаптивных

1
left: initial

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.