Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 是否可以使用CSS清除绝对定位的元素?_Html_Css_Css Position - Fatal编程技术网

Html 是否可以使用CSS清除绝对定位的元素?

Html 是否可以使用CSS清除绝对定位的元素?,html,css,css-position,Html,Css,Css Position,有没有办法用CSS清除绝对定位的元素?我正在创建一个页面,需要绝对定位站点的每个部分(section元素),并且我希望在这些元素下面应用一个包含内容的页脚。尝试相对定位页眉和页脚,以查看是否会考虑总高度,但页脚仍然会“被困”在section元素下面。有什么想法吗 <header style="position: relative;"></header> <div id="content" style="position: relative;"> &

有没有办法用CSS清除绝对定位的元素?我正在创建一个页面,需要绝对定位站点的每个部分(section元素),并且我希望在这些元素下面应用一个包含内容的页脚。
尝试相对定位页眉和页脚,以查看是否会考虑总高度,但页脚仍然会“被困”在section元素下面。有什么想法吗

<header style="position: relative;"></header>

<div id="content" style="position: relative;">

    <section id="a" style="position: absolute;"></section>

    <section id="b" style="position: absolute;"></section>

    <section id="c" style="position: absolute;"></section>

    <section id="d" style="position: absolute;"></section>

    <section id="e" style="position: absolute;"></section>

</div>

<footer style="position: relative;"></footer>


绝对定位元素不再是布局的一部分-父项不知道绝对定位子元素有多大。您需要自行设置“内容”的高度,以确保其不会与页脚重叠。

不要在布局中使用绝对定位的元素,因为这些元素已从正常流程中删除,并且不再影响其周围的元素。而且它们不受其他因素的影响

在条件允许时,使用绝对定位移动容器内的元素

对于浮动元素,我建议您使用一种称为clearfix的特定清除技术。我虔诚地使用它


有相同的问题,将所有元素放置在绝对位置,但让第一个相对,对于高度发生变化的响应布局,它确实有助于跟踪元素高度的变化,注意在这种情况下,所有元素都具有相同的高度:

.gallery3D项目{
位置:绝对位置;
排名:0;
左:0;
}
.gallery3D项目:第一种类型{
位置:相对位置;
显示:内联块;

}
我发现了一个简单的解决方案,它可能不涵盖所有可能的问题,但至少它解决了我的问题

HTML:


绝对定位元素不是浮动元素,因此没有什么比清除它们更重要的了。我还想说,没有JavaScript是无法做到这一点的。我明白了。但当我说“清楚”的时候,你明白我在追求什么吗?将下一个父级放在上一个内容下面的行为。我非常熟悉如何处理常规结构,但在这种情况下,我需要绝对定位这些元素。我决定改用JS解决方案。@StaffanEstberg如果仍然可行,你能发布你的JS解决方案吗?
<p>Content before</p>
<div class="offset-wrapper">
    <div class="regular">
        <img src="https://www.gravatar.com/avatar/bdf0bf75e96fa18e57769865ebeb9a6e?s=48&d=identicon&r=PG" />
    </div>
    <div class="special">
        <img src="https://www.gravatar.com/avatar/bdf0bf75e96fa18e57769865ebeb9a6e?s=48&d=identicon&r=PG" />
    </div>
</div>
<p>Content after</p>
.offset-wrapper {
  background: green;
  position: relative;
  width: 100px;
}
.offset-wrapper .regular {
  visibility: hidden;
}
.offset-wrapper .special {
  bottom: -15px;
  left: -15px;
  position: absolute;
}