css讓高度自適應(yīng)的方法:1、給html元素設(shè)置“height:100%;display:table;”樣式,給body元素設(shè)置“display:table-cell;height:100%;”樣式即可。2、使用flex布局。
本教程操作環(huán)境:windows7系統(tǒng)、CSS3&&HTML5版、Dell G3電腦。
在寫(xiě)css靜態(tài)頁(yè)面的時(shí)候讓Html的高度自適應(yīng)屏幕高度是一個(gè)常見(jiàn)的需求,比如你有一個(gè)需要置底的bottom按鈕,需要在內(nèi)容不足一屏的時(shí)候顯示在屏幕的底部,在內(nèi)容超過(guò)一屏的時(shí)候顯示在所有內(nèi)容的底部。
效果圖:
CSS的做法
方法1:
html { height: 100%; display: table; } body { display: table-cell; height: 100%; }
方法2:使用flex布局:
<div class="container"> <header></header> <content></content> <footer></footer> </div>
.container { display: flex; min-height: 100vh; flex-direction: column; } header { background: #cecece; min-height: 100px; } content { background: #bbbbbb; flex: 1; /* 1 代表盡可能最大,會(huì)自動(dòng)填滿除了 header footer 以外的空間 */ } footer { background: #333333; min-height: 100px; }
JS的做法
css的做法有時(shí)候會(huì)在定位的時(shí)候造成一些麻煩,可以嘗試使用js去動(dòng)態(tài)改變html的高度
基于zepto
$(document).ready(function(){ var windowHeight = $(window).height(); if($(this).height() < windowHeight){ $(this).height(windowHeight); } });
原生js
window.onload = function(){ var winHeight = 0; if (window.innerHeight){ winHeight = window.innerHeight; }else if ((document.body) && (document.body.clientHeight)){ winHeight = document.body.clientHeight; } var html = document.getElementsByTagName('html')[0]; if(document.body.offsetHeight < windowHeight){ html.style.height = windowHeight; } };