如何将CSS位置'top'相对于文档高度而非视口高度进行设置?

6 浏览
0 Comments

如何将CSS位置'top'相对于文档高度而非视口高度进行设置?

我将尝试让我的问题更清晰。

因为我在Html body中使用了以下设置,所以我需要滚动页面到底部。

body {  height: 180vh;}

我想设置一个相对于文档高度的div位置的top属性,以便我可以控制它的位置,只有在向下滚动时才可见。我更喜欢使用百分比值来设置,这样代码可以适应不同尺寸的设备。

但是默认情况下,top属性是相对于视口的,所以我无法通过设置top值来实现它。

有没有办法实现我想做的事情?即使不使用top属性。

0
0 Comments

问题的原因是,当设置CSS的位置属性(position)为top时,默认是相对于视口高度(viewport height)来定位的。但有时候我们希望元素的位置是相对于文档高度(document height)来定位的。

解决方法是,首先要确保body元素的position属性是relative、absolute或fixed。然后可以将元素的position属性设置为absolute,这样它就会依赖于最近一个具有上述三个属性的父元素。最后,可以设置元素的top、left、right和bottom属性来实现相对于文档高度的定位。

下面是一个示例代码:

body {
  height: 180vh;
  position: relative;
}
#down {
  position: absolute;
  // 或者使用 bottom: 10%;
  bottom: 25px;
}

Here

通过以上代码,我们可以将元素的位置相对于文档高度进行定位。

0
0 Comments

问题:如何将CSS的position属性中的'top'属性设置为相对于文档高度而不是视口高度?

解决方法:

要解决这个问题,有两种方法可以选择:

1. 使用padding-top属性:将body元素的高度设置为视口高度的180%,然后在需要设置相对于文档高度的元素中使用margin-top属性,并将其值设置为视口高度的110%。

2. 使用position:absolute和top属性:将需要设置相对于文档高度的元素的position属性设置为absolute,然后将top属性的值设置为视口高度的150%。

以下是代码示例:

body {
  height: 180vh;
}
.myDiv1 {
  margin-top: 110vh;
  height: 100px;
  width: 100%;
  background: lightblue;
}
.myDiv2 {
  position: absolute;
  top: 150vh;
  height: 100px;
  width: 98%;
  background: lightpink;
}


  

以上就是解决将CSS的position属性中的'top'属性设置为相对于文档高度而不是视口高度的方法。

0
0 Comments

问题的出现原因是在CSS中设置了元素的position为absolute,并且希望通过设置top属性来将元素定位在离文档底部的位置。然而,设置top属性为百分比时,默认是相对于视口高度而非文档高度进行计算的。

解决方法是给body元素设置position为relative,并将div元素的position设置为absolute。这样可以通过设置top属性的百分比来实现将元素定位在文档底部。具体代码如下所示:

body {  
  height: 180vh;
  background: lightblue;
  position: relative;
}
div{
   height: 30px;
   width: 140px;
   border: solid 2px gray;
   background: white;
   position: absolute;
   top: 100%;
}

以上代码中,通过将body元素的position设置为relative,使得div元素的top属性的百分比是相对于body元素的高度进行计算的。因此,设置top为100%时,div元素将会定位在文档底部。

通过以上方法,我们可以将CSS中的top属性设置为相对于文档高度而非视口高度进行计算,从而解决了该问题。

0