当位置:绝对时,如何删除Left属性?


137

选择特定语言后,我会将网站CSS覆盖为RTL版本。

我有一个必须绝对定位的元素。在LTR版本中,我这样做left: 0px;并且它与左侧对齐;在RTL版本中,我想对进行相反的操作right,但是该left属性没有被覆盖,因此它仍然保留在左侧。

  • 我曾尝试使用进行黑客入侵!important,但这没有用。
  • 我尝试设置left: none,但是没有用。

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


要仅删除特定的css属性(例如,left使用):var cssObject = $('selector').prop('style'); cssObject.removeProperty('left');
ilgaar 2013年

Answers:


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的值。

截至目前unset,Firefox仅支持2014年11月4日。

了解有关MDN中未设置的更多信息。

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


IE将“ IE”放在“ I'llnever dIE”中。
亚当·罗伊,2013年

1
在2017年底,Microsoft Edge版本10565+支持它
Taras Yaremkiv

刚刚用它清除了right响应式变化的位置-完美运行(在Chrome中)
SenAnan

1
left: initial

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

但是要知道的重要一点property: initial是IE不支持。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.