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

绝对与相对位置的宽度和高度

段晨
2023-03-14
问题内容

我知道什么是绝对位置和相对位置,但是我仍然不清楚一些要点。以供参考

CSS:

.rel{
    position:relative;
    background:red;
} 
.abs{
    position:absolute;
    background:blue;
}

的HTML:

<div class="rel">rel</div>
<div class="abs">abs</div>

现在的要点是:

  • 相对div自动采用100%宽度,但绝对div仅采用内容宽度。为什么?

  • 当我给高度100%时,相对div无效,但绝对div的高度为100%。为什么?

  • 当我给margin-top:30px时,它也偏移绝对div,但是当我给top:30px时,则只有相对div偏移。为什么?

  • 当我不给top:0 , left:0绝对div时,它需要高于div高度。为什么?


问题答案:
  1. 设置position:absolute会从文档结构的正常流程中删除有问题的元素。因此,除非您明确设置宽度,否则它将不知道会有多宽。您可以明确设置width:100%是否要这样做。

  2. position:relative总体上具有的元素的行为与普通position:static元素的行为相同。因此,height:100%除非父元素具有定义的高度,否则设置将无效。相反,绝对定位的元素从文档流中删除,因此可以自由调整到其包含元素当前具有的任何高度。

  3. 这可能与HTML中的父元素有关,但是除非您提供页面的完整HTML和CSS,否则我将无济于事。

  4. top和left属性的默认值为auto。这意味着浏览器将为您计算这些设置,并将它们设置为元素不存在时将呈现的位置position:absolute



 类似资料:
  • 如何根据具有绝对位置的子元素高度增加具有相对位置的父元素的高度。 在下面的例子中,父元素的高度显示为0px PS:我不想使用任何脚本 预期: 我得到的是: JSFIDLE 超文本标记语言: CSS:

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

  • 问题内容: 和CSS 和有什么不一样?那你什么时候应该使用呢? 问题答案: CSS绝对定位 绝对定位是最容易理解的。您从CSS 属性开始: 这告诉浏览器应将要定位的所有内容从文档的正常流程中删除,并将其放置在页面上的确切位置。它不会影响HTML中它之前或之后的元素在网页上的放置方式,但是除非您重写它,否则 它将 取决于其父级的位置。 如果你想一个元素从文档窗口的顶部10个像素的位置,你会使用偏移与

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

  • 问题内容: 我有一些容器,他们的孩子只是绝对的/相对的。如何设置容器的高度,以便他们的孩子进入其中? 这是代码: HTML CSS 这是一个jsfiddle。我希望“栏”文本出现在4个正方形之间,而不是在它们后面。 有简单的解决方法吗? 请注意,我不知道这些子项的高度,也无法为容器设置高度:xxx。 问题答案: 如果我了解您要正确执行的操作,那么我认为使用CSS保持孩子的绝对位置是不可能的。 绝对

  • 问题内容: 我有3个要素。 第一个更大(包装)并具有 第2个相对于第1个相对位置绝对定位(并包含在第1个中) 第3个包含在第2个中,并且也具有绝对定位。 为什么第3个位置相对于第2个绝对位置(这也是第1个位置的绝对位置)而不是相对位置的第一个位置? 因为3rd 是绝对定位到2nd的绝对定位。 问题答案: 因为就像重置孩子的相对位置一样。 这是无法解决的-如果您希望第三个相对于第一个绝对定位,则必须