如何在position:absolute时删除Left属性?

eri*_*hak 124 css css-position

当选择特定语言时,我将网站CSS重写为RTL版本.

我有一个必须具有绝对定位的元素.在LTR版本中,我这样做left: 0px;并且它与左边对齐; 在RTL版本中我想反过来right,但left属性没有被覆盖,所以它仍然保持在左边.

  • 我试过黑客攻击!important,但那没用.
  • 我尝试过设置left: none,但那不起作用.

我怎样才能将其设置为none或在覆盖时完全删除它?

Cur*_*urt 302

left:auto;
Run Code Online (Sandbox Code Playgroud)

这将默认left返回浏览器默认值.


所以如果你有你的Markup/CSS:

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

.myClass
{
  position:absolute;
  left:0;
}
Run Code Online (Sandbox Code Playgroud)

设置RTL时,您可以更改为:

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

.myClass
{
  position:absolute;
  left:0;
}
.myClass.rtl
{
  left:auto;
  right:0;
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*ran 16

将来会left: unset;用来取消左边的值.

截至今天,2014年4月unset仅在Firefox中支持.

阅读有关MDN中未设置的更多信息.

我的猜测是,当IE 11被正确淘汰时,我们将能够在2022年左右使用它.

  • 为乐观的IE 11淘汰评论+1. (16认同)
  • 2017年底Microsoft Edge build 10565+支持 (2认同)