各位大大,在進行頁面設計時,如何有效的避免頁面下部出現多餘空白。?
如題。如何有效的避免頁面下部出現多餘空白。當然在此之前我已經定義全局padding和margin屬性為0,並且div的position屬性一般為relative,很少用absolute。
我想我明白題主的意思:當頁面內容的高度小於視口高度時,視口底部就是一片尷尬的空白(如圖一所示)。在這種情況下,我們往往期望頁腳是緊貼視口底部的(如圖二所示)。一般這種需求叫作 「sticky footer」。把《緊貼底部的頁腳》這篇文章推薦給題主,它提供了 CSS2 和 CSS3 時代在解決這個問題時可以選擇的方案。(該文截取自《CSS Secrets》一書,上面的示意圖也取自該書。)
這種效果稱為Sticky Footer效果。
早期要兼容一些低版本瀏覽器,會考慮一些Hack來處理,這些Hack都受到一些條件性的限制,比如說要指定Footer的高度。由此擴展性不強。
隨著CSS的強大之後,有一些高級的CSS技術手段可以實現,比如說Flexbox(flexbox | 博客自由標籤) 可以實現。
那麼有關於這種效果實現的一些方法,感興趣的話可以看看:sticky footerbody {background:black}
我的解決方案是footer都相對於屏幕定位在底部,如果是pc端,相對於body或者.wrap之類的絕對定位,為了防止頁面較長,這個footer擋住其它的元素,還要在頁面低下加入一個和footer一樣高或者更高一點的透明元素,就是這樣
如果是超過一屏應該就不存在問題了,如果不夠一屏:
&
&
&
&
&
&
&
&
&
&
&
要不試試把 body 設置個最小高度?
給中間內容區域設置一個min-height?
用js給footer一個margin-top
HTML結構
&
&
&
&
&
&&
&
CSS樣式
html,body,.wrap{height:100%;}
.wrap{ padding-bottom:55px; margin-bottom:-55px;}
.footer{position:relative; top:-50px; height:50px; z-index:10;}
推薦閱讀:
※前端如何更好的實現介面的緩存和更新?
※現在是2014年,新開發的網站還有必要支持IE6-IE8嗎?
※瀏覽器沙箱(sandBox)到底是什麼?
※Web前端開發比較好的技術類資源網站有哪些?
※知乎為什麼不把網頁背景改成潤眼色?亮白亮白的看時間長了不舒服!
TAG:前端開發 |