問題原因
最近實習在修bug的時候,遇到一個問題。簡單來說html的結構就和下面差不多
當然這只是簡單的結構

因為在外部有標簽是設置了:auto,所以當內容超出了展示窗口的時候,是可以使用滾動條對內容進行滾動的。并且滾動的時候 div: id=“下拉框點擊按鈕” 是會隨著頁面進行滾動。這個時候就發現了主要的問題 div:id=“下拉框窗口” 就定在了頁面中,不會隨著滾動而滾動css 設置滾動條位置,而是在頁面的絕對定位了。
以下兩張圖片問題情況
這就是問題的所在,設置了:的div標簽,沒有隨著頁面的滾動而滾動,也沒有隨著 div:標簽一起滾動。
首先了解
語法:
:
參數:
: 無特殊定位,對象遵循HTML定位規則
: 將對象從文檔流中拖出,使用left,right,top,等屬性進行絕對定位。而其層疊通過css z-index屬性定義。此時對象不具有邊距,但仍有補白和邊框
: 對象不可層疊,但將依據left,right,top,等屬性在正常文檔流中偏移位置
說明:
設置對象的定位方式,可以讓布局層容易位置絕對定位,控制盒子對象更加準確。
然后認識
是最棘手的值。 與 fixed 的表現類似css 設置滾動條位置,但是它不是相對于視窗而是相對于最近的“”祖先元素。如果絕對定位(屬性的值為)的元素沒有“”祖先元素,那么它是相對于文檔的 body 元素。記住一個“”元素是指 值不是 的元素。
其實可以發現主要就是設置了:的標簽,父元素沒有除了的屬性,所以導致定位在了body標簽里面中,所以就是直接以body計算定位,所以就算標簽是內嵌頁面,但是內嵌頁面滾動當前也不滾動。
解決方案
只要知道了原因,解決的方法就很簡單了。

當然這只是簡單的結構
只要給父元素設置除了的值就可以了,這樣設置的標簽就會以父元素的位置進行定位,內嵌頁面進行滾動的時候,當前標簽也會隨著滾動。