1. 程式人生 > >rem自適應佈局用法及詳解

rem自適應佈局用法及詳解

對於很多新同學來說,rem還是比較熟悉而又陌生的, 熟悉呢是因為rem時常出現在耳邊,陌生呢是因為又搞不清原理。

今天咱們一起來弄清楚rem到底是怎麼一回事!

原理css3規定:1rem的大小就是根元素<html>的font-size的值。

        通過設定 根元素<html>的font-size的大小,來控制整個html文件內的字型大小、元素寬高、內外邊距等,

        根據移動裝置的寬度大小來實現自適應,不同的裝置都展示一致的頁面效果。

rem佈局簡單分析 分三步:

第一步:前端開發者首先拿到UI設計原型稿的寬度,如 320px 或者640px或者750px;

第二部:增加指令碼

    以640px設計稿為例:

<script>
		/*設定根元素<html>字型大小*/
		function getRem() {
			var html = document.getElementsByTagName("html")[0]; /*獲取標籤元素<html>*/
			var oWidth = document.body.clientWidth || document.documentElement.clientWidth; /*獲取裝置的寬度  ||後為相容IE低版本寫法*/
			html.style.fontSize = oWidth / 6.4 + "px"; /*設定根元素<html>字型大小   計算出的值 就相當於1rem;為什麼? 這就是rem單位的規定 1rem就等於根元素<html>字型大小*/
		}

		/*6.4: 為設計稿寬度640px; 若是750px的設計稿 只需要將6.4改為7.5即可。
		 * 在手機螢幕寬度與設計稿一致時,即:oWidth = 750px 那麼上面的計算 oWidth / 6.4 + "px" 結果就是100px;  html.style.fontSize = 100px 
		 *css3中規定 1rem就對應這<html>的font-size的大小,所以100px = 1rem 這樣方便大家將px轉化為rem 按照這個比例來設定字型大小、元素寬高、內外邊距等的單位為rem;
		 *舉例:在設計稿中,某一行字型大小為14px,則我們需要在css檔案中將對應的字型設定為0.14rem;
		 *      在設計稿中,某一個元素寬高分別為 100px與20px;則我們需要在css中將對應的寬高設定為1rem與0.2rem;
		 */

		/*頁面初始化呼叫getRem()*/
		window.onload = function() {
			/*初始化*/
			getRem();
			/*getRem繫結監聽*/
			window.addEventListener("resize", getRem, false);
		};
	</script>

第三步:css檔案中記得都使用rem單位。 關鍵點:字型大小,元素寬高,內外邊距一定是根據設計稿測量得來的。對 是設計稿!  舉例是640px寬的設計稿,