web-dev-qa-db-ja.com

位置が絶対の場合、Leftプロパティを削除する方法は?

特定の言語が選択されると、サイトのCSSをRTLバージョンにオーバーライドします。

絶対位置を設定する必要がある要素があります。 LTRバージョンでは、left: 0px;を実行しますが、それは左揃えです。 RTLバージョンでは、rightを使用して反対の操作を行いますが、leftプロパティはオーバーライドされないため、左に留まります。

  • !importantでハッキングを試みましたが、うまくいきませんでした。
  • left: noneを設定しようとしましたが、うまくいきませんでした。

なしに設定するか、オーバーライド中に完全に削除するにはどうすればよいですか?

120
eric.itzhak
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;
}
296
Curt

将来的には、leftの値を設定解除するためにleft: unset;を使用するでしょう。

現在、2014年11月4日unsetはFirefoxでのみサポートされています。

MDNでの設定解除についての詳細を読む

私の推測では、IE 11が適切に段階的に廃止される2022年ごろに使用できるようになるでしょう。

16
left: initial

これにより、leftがブラウザのデフォルトに戻ります。

ただし、property: initialはIEではサポートされていません。

1
MORHERO