如何清除"相对位置?

时间:2013-08-06 19:42:20

标签: css position clear

我想要达到身体的左:0 ,但我在一个相对位置。 有没有办法在不更改容器类的情况下执行此操作?

我正在寻找像 clear:两个的浮动对象。

HTML:

<div class="container">
    <div class="absolute">Content</div>
</div>

式:

.container {
    position: relative;
    left: 100px; /*or any other value*/
}

.absolute {
    position: absolute;
    left: 0;
}

4 个答案:

答案 0 :(得分:6)

您所要求的内容违反了相对包含块中绝对定位元素的预期用法。 CSS2 spec说:

  

虽然父外框实际上没有偏移,但将其“position”属性设置为“relative”意味着它的框可以作为定位后代的包含块。

你要问的任何方法都是黑客,你应该重新考虑(a)为什么你需要层次结构,或者(b)为什么你需要相对定位的包含块

答案 1 :(得分:0)

.container {
    position: relative;
    left: 100px; /*or any other value*/
    overflow: visible
}

.absolute {
    position: absolute;
    left: 0;
}

答案 2 :(得分:0)

我能够解决此问题的方法是使用关键字“ initial”。这样会将所有属性恢复为其默认值。

#yourElement {
  position:initial;
}

有关更多信息,请参阅:https://www.w3schools.com/cssref/css_initial.asphttps://www.w3schools.com/cssref/pr_class_position.asp 希望这会有所帮助!

答案 3 :(得分:0)

我遇到了同样的问题,我不喜欢答案“不要使用它,这很不好”,因为我发现有时使用这些“位置”属性很有用。

尽管我确实理解该论点,但取决于容器的属性,“ position:relative”元素可能包含其他元素。但是,也许,“相对定位”含义的这种“过载”应该在规范中进行多样化。因为我不想绝对地将我的About元素定位,而是相对于其容器定位-除了使用这种相对定位,我不能做其他事情(可以吗?)。

所以我找到了这个解决方案。

通常,我将断点定义为“将XY尺寸减小”,如下所示:

@wide-screen-down: ~'(max-width:1199px)';
@desktop-down: ~'(max-width:991px)';
@tablet-down: ~'(max-width:767px)';

通常很好,但是在这种情况下,我只是不希望元素大小在手机大小上相对放置。所以我定义了一个额外的断点:

@phone-up: ~'(min-width:481px)';

因此,“位置:相对”仅设置为一定的最小宽度!不用设置它,以后再尝试取消设置-与任何关键字(未设置,初始,继承)都不适合我。

这并不能真正回答OP的问题-分别。答案是,至少在Linux上的Chrome 86中,无法取消设置“ position:relative”设置。如果您可以将此属性绑定到屏幕尺寸,则可以采用上述解决方法。