当前位置: 首页 > 面试题库 >

位置:绝对身高和父母身高?

安泰平
2023-03-14
问题内容

我有一些容器,他们的孩子只是绝对的/相对的。如何设置容器的高度,以便他们的孩子进入其中?

这是代码:

HTML

<section id="foo">
    <header>Foo</header>
    <article>
        <div class="one"></div>
        <div class="two"></div>
    </article>
</section>

<div style="clear:both">Clear won't do.</div>
<!-- I want to have a gap between sections here -->

<section id="bar">
    <header>bar</header>
    <article>
        <div class="one"></div><div></div>
        <div class="two"></div>
    </article>
</section>

CSS

article {
    position: relative;
}

.one {
    position: absolute;
    top: 10px;
    left: 10px;
    background: red;
    width: 30px;
    height: 30px;
}

.two {
    position: absolute;
    top: 10px;
    right: 10px;
    background: blue;
    width: 30px;
    height: 30px;
}

这是一个jsfiddle。我希望“栏”文本出现在4个正方形之间,而不是在它们后面。

有简单的解决方法吗?

请注意,我不知道这些子项的高度,也无法为容器设置高度:xxx。


问题答案:

如果我了解您要正确执行的操作,那么我认为使用CSS保持孩子的绝对位置是不可能的。

绝对定位的元素已从文档流中完全删除,因此它们的尺寸不能更改其父级的尺寸。

如果 确实 必须在将子代保持为的同时实现这种影响,则position: absolute可以使用JavaScript通过在呈现后定位绝对子代的高度,并使用其来设置父代的高度来确定高度。

或者,只需使用float: left/float:right和页边距即可获得相同的定位效果,同时将子级保留在文档流中,然后可以overflow:hidden在父级上使用(或任何其他clearfix技术)以使其高度扩展到其子级。

article {
    position: relative;
    overflow: hidden;
}

.one {
    position: relative;
    float: left;
    margin-top: 10px;
    margin-left: 10px;
    background: red;
    width: 30px;
    height: 30px;
}

.two {
    position: relative;
    float: right;
    margin-top: 10px;
    margin-right: 10px;
    background: blue;
    width: 30px;
    height: 30px;
}


 类似资料:
  • 我有一些容器,它们的子容器仅处于绝对/相对位置。如何设置容器的高度,使其孩子在容器内? 代码如下: HTML CSS 这里有一个jsfiddle。我希望“栏”文本出现在4个方格之间,而不是它们后面。 http://jsfiddle.net/Ht9Qy/ 有简单的解决办法吗? 请注意,我不知道这些孩子的身高,也不能为容器设置身高:xxx。

  • 问题内容: 我通过设置找到了一种使div容器至少占据整个页面高度的方法。但是,当我添加一个嵌套div和set时,它不会扩展到容器的高度。有办法解决吗? 问题答案: 这是一个已报告的Webkit(chrome /safari)错误,具有最小身高的父母的孩子不能继承height属性: : 显然Firefox也受到了影响(目前无法在IE中进行测试) 可能的解决方法: 添加位置:相对于#containme

  • 问题内容: 我试图了解什么对我来说似乎是意外的行为: 我在容器内有一个最大高度为100%的元素,该元素也使用最大高度,但是,出乎意料的是,子代溢出了父代: 但是,如果给定父级的显式高度,则此问题已解决: 有谁知道为什么孩子在第一个例子中不尊重父母的最大身高?为什么需要一个明确的高度? 问题答案: 当您指定的百分比上一个孩子,这是父母的实际高度的百分比,而不是父母的,奇怪的。同样适用于。 因此,如果

  • 问题内容: 我在另一个div内有两个div,我想使用css将一个子div放在父div的右上角,另一个子div放在父div的底下。即,我想对两个子div使用绝对定位,但是将它们相对于父div而不是页面定位。我怎样才能做到这一点? 范例html: 问题答案: 这工作,因为手段类似“使用,,,来定位自己相对于谁拥有最近的祖先或”。 因此,我们使have 和子代都有,然后使用和定位子代。

  • 问题内容: 我正在尝试在Flexbox中填充Flex项目的垂直空间。 不能满足要求的高度,但以下两种情况除外: 的高度为100%(这很奇怪,因为弹性商品默认情况下为100%,而且在Chrome中存在错误) 绝对位置也不方便 目前,该功能不适用于Chrome或Firefox。 问题答案: 采用 与David Storey的答案类似,我的解决方法是: 或者到,你可以使用只是在你想拉长项目。

  • 问题内容: 我知道什么是绝对位置和相对位置,但是我仍然不清楚一些要点。以供参考 CSS: 的HTML: 现在的要点是: 相对div自动采用100%宽度,但绝对div仅采用内容宽度。为什么? 当我给高度100%时,相对div无效,但绝对div的高度为100%。为什么? 当我给margin-top:30px时,它也偏移绝对div,但是当我给top:30px时,则只有相对div偏移。为什么? 当我不给绝