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

时间:2012-04-20 11:53:32

标签: css css-position

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

我有一个必须具有绝对定位的元素。在LTR版本中,我做left: 0px;并且它与左边对齐;在RTL版本中,我希望与right执行相反的操作,但left属性不会被覆盖,因此它仍然保留在左侧。

  • 我曾尝试使用!important进行黑客攻击,但这不起作用。
  • 我已尝试设置left: none,但这不起作用。

如何在覆盖时将其设置为无或完全删除?

3 个答案:

答案 0 :(得分:291)

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;
}

答案 1 :(得分:15)

将来可以使用left: unset;取消左侧的值。

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

Read more about unset in MDN.

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

答案 2 :(得分:1)

left: initial

这也会将left设置回浏览器默认值。

但是IE中不支持知道property: initial很重要。