在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ absolute定位的元素怎么會影響整個頁面的高度設置

absolute定位的元素怎么會影響整個頁面的高度設置

clipboard.png

這是整個頁面的布局(打碼略多..抱歉)

紅框中是一個iframe,整個頁面的高度是通過js計算的。

遇到的問題是,
頁面遇到刷新或者resize操作,有一定幾率會導致整個頁面上移,由于設置了overflow:hidden,所以頂欄無法操作。

排查后發(fā)現(xiàn)是因為右下角的盒子絕對定位,同時設置了負bottom值造成的:

clipboard.png

問題是:

我把absolute改為fixed之后解決了這個問題(沒復現(xiàn)了),但不清楚原理是什么?

absolute和fixed不是都會脫離文檔流嗎?為什么會影響高度計算?

這是高度計算的代碼(不是我寫的):

// ------頁面高度 start
    var $win = $(window), // 用于頁面高度和哈希值監(jiān)聽
        $body = $('body'),
        $fnCTop = $('#fnCTop'),
        $fnCNav = $('#fnCNav'),
        $fnMainBox = $('#fnMainBox'),
        TOPNAVH = $fnCTop.outerHeight() + $fnCNav.outerHeight();

    function setMainBoxHeight() {
        $fnMainBox.outerHeight($win.height() - TOPNAVH).find('#fnSidebar').outerHeight($win.height() - TOPNAVH - 90);
    }
    setMainBoxHeight();
    $win.resize(function (event) {
        setMainBoxHeight();
    });
    // ------頁面高度 end

希望可以解答我的疑惑。感謝。

另外如果我描述不清,可以評論補充,請不要點反對。

嘛,也可以點反對啦,不過也請評論告訴理由...怕了怕了。

回答
編輯回答
過客

fixed的定位是相對于瀏覽器窗口,absolute的定位是相對于距離當前元素最近的有設置position屬性的父元素

2017年9月3日 17:54