【问题标题】:How positioning wil work in css?定位将如何在 css 中工作?
【发布时间】:2019-09-11 21:58:11
【问题描述】:

https://jsfiddle.net/z3fhtbq9/

我希望上面的小提琴会从身体的顶部到底部显示红色的背景颜色。但它没有。为什么?

<div style="background-color:red;position:relative;top:0px;bottom:0px;">

【问题讨论】:

标签: css css-position


【解决方案1】:

添加一个 div 大小(高度宽度)..它会工作

<div style="height: 100vh;background-color:red;position:relative;top:0px;bottom:0px;">
</div>

div 的高度为 0,width 为 0(宽度始终相同),这就是为什么没有观察到变化的原因。如果您在 div 中添加了一些内容,例如一些文本,或者只是给出了一个高度-宽度,它可能会起作用。

这里的 100vh 意味着元素将始终是设备视口的 100% 高度。

具有绝对定位的元素不受其他元素的影响 并且不影响其他元素。所以基本不受影响 通过任何其他元素。所以 100% vh 对它不起作用。它会工作 如果你放入一个相对定位的全尺寸 div。绝对 定位元素相对于最近定位的元素进行定位 祖先(非静态)。

【讨论】:

  • width 是 100%,只有没有任何 height
  • @deceze.: 是的,完全正确..好吧,让我编辑答案...只是匆忙回答。
  • 其实这里给 position:relative top:0 bottom:0 有什么用?应该会自动延伸吧?
  • 是的@KarthikeyanSoundararaj ..:) 抱歉回复晚了。
  • 没关系@coderredoc。但是为什么它不在这里扩展呢?
【解决方案2】:

我看不出与定位的关系,但要用这个 div 填充 body,您需要设置元素的宽度和高度。你可以在css上设置:

html, body {width:100%; height:100%; margin:0;}

然后在您的 div 样式中添加 100% 的宽度和高度,如下所示:

<div style="width:100%; height:100%; background-color:red;position:relative;top:0px;bottom:0px;"></div>

或者你可以把红色背景样式放在body div上。

【讨论】:

  • 将元素定位为相对是“相对于自身”。意味着如果一个元素被定位为相对于顶部 50px,那么它将从通常放置的顶部获得 50px 的位置。如果这是真的,在我的情况下,我将位置相对、顶部和底部位置设置为 0。所以它已经填满了整个身体。但它没有发生。为什么?
  • 检查下面的小提琴jsfiddle.net/z3fhtbq9/9它是如何在整个区域显示背景颜色的?
猜你喜欢
  • 2022-12-11
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
  • 1970-01-01
  • 2015-02-06
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多