色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

為什么從絕對定位容器中刪除子元素會影響其在CSS中父容器的scrollTop CSS值?

錢多多2年前10瀏覽0評論

“我試圖理解CSS在一些項目需求中的位置,但是遇到了一個場景,對于這個場景,我找不到任何關于瀏覽器為什么以特定方式運行的解釋。我在React應用程序中遇到了這個問題,但同樣的問題也發生在純HTML中。

下面是問題的偽代碼。我有4級HTML元素。

<parent-container>
  <buffer-container>
    <row-container>
      <row 1 />
      <row 2 />
      <row 3 />
      ....
      <row n />
    </row-container>
  </buffer-container>
</parent-container>

父容器的高度為400px,并定義了溢出。 緩沖容器的相對位置和高度為2000像素。 row-container沒有高度,所以它基于其子容器獲取高度。但是它是絕對定位的,頂部給定為0表示緩沖容器和行容器的頂部對齊。

現在,當我稍微滾動一下,假設第10行可見,我轉到devtools Elements選項卡,刪除第1行。手動刪除只是模擬以編程方式刪除行元素。注意到滾動條跳了一下。父容器的scrollTop CSS值被更改。

即使我從絕對定位的行容器中刪除行,我也不明白為什么刪除會導致父容器上的scrollTop發生變化。

我準備了一個代碼沙箱來復制這個場景。 https://code sandbox . io/s/jump-scroll-with-absolute-child-hhg5rg?file=/index.html

我試著瀏覽Stackoverflow上的CSS問題和圍繞CSS定位的文章,但沒有得到正確的解釋