關于響應式布局,你必須要知道關于響應式布局的幾件事(4)
文章主要介紹了你必須要知道關于響應式布局的幾件事,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。一、前言響應式Web設計可以讓一個網站同時...
七、rem響應式布局
rem響應式布局思想
- 一般不要給元素設置具體的寬度,但是對于一些小圖標可以設定具體寬度值
- 高度值可以設置固定值,設計稿有多大,我們就嚴格寫多大
- 所有設置的固定值都用REM做單位(首先在HTML中設置一個基準值:PX和REM的對應比例,然后在效果圖上獲取PX值,布局的時候轉化為REM值)
- JS獲取真實屏幕的寬度,讓其除以設計稿的寬度,算出比例,把之前的基準值按照比例進行重新的設定,這樣項目就可以在移動端自適應了
什么是rem,它與em有何區別
rem:當前頁面中元素的REM單位的樣式值都是針對于HTML元素的font-size的值進行動態計算的
em:表示父元素的字號的倍數。(特例:在text-indent屬性中,表示文字寬度)
body →font-size:20px;
<div class="box1"> → font-size:2em;
box1
<div class="box2"> → font-size:2em;
box2
<div class="box3"> → font-size:2em;
box3
</div>
</div>
</div>
em為單位的時候,font-size屬性是計算后繼承,box1計算出來是40px。那么里面的box2、box3繼承的都是40px。em單位不僅僅可以用來設置字號,還可以設置任何盒模型的屬性,比如width、height、padding、margin、border
rem有一點優勢就是可以和媒體查詢配合,實現響應式布局:
@media screen and (min-width: 320px) {
html {font-size: 14px;}
}
@media screen and (min-width: 360px) {
html {font-size: 16px;}
}
@media screen and (min-width: 400px) {
html {font-size: 18px;}
}
運用場景
如果我們做的H5頁面只在移動端訪問,這是因為REM不兼容低版本的瀏覽器。而如果移動端和PC端公用一套代碼,建議使用流式布局。
如何做個REM響應式布局
1、從UI設計師拿到PSD設計稿,然后在樣式中給HTML設定一個font-size的值,我們一般都設置一個方便后面計算的值,例如:100px
html{
font-size:100px;//1rem=100px
}
2、寫頁面,寫樣式
首先按照設計稿的尺寸來寫樣式,然后在寫樣式值的時候,需要把得到的像素值除以100計算出對應的REM的值。
值得注意的是:真實項目中外層盒子的寬度我們一般還是不寫固定值,沿用流式布局法的思想,我們用百分比的方式布局
margin:0 0.2rem
height:3rem;
3、根據當前屏幕的寬度和設計稿的寬度來計算我們HTML的font-size的值
例如:設計稿寬度為640px,其中有一個部分是輪播圖,它的尺寸是600*300,在樣式中給HTML設定一個font-size的值為100px,則輪播圖大小應該為 6rem×3rem,那如果手機屏幕寬度為375px,其font-size應該設置為多少。
375/640*100->fontsize=58.59375//此時輪播圖能自適應手機屏幕大小
根據當前屏幕寬度和設計稿寬度的比例,動態計算一下當前寬度下的fontsize值應該是多少,如果fontsize的值改變了,之前設定的所有REM單位的值自動會跟著放大或者縮小。可以通過以下這段代碼實現:
<script>
~function(){
var desW=640,
winW=document.documentElement.clientwidth,
ratio=winW/desW;
document.documentElement.style.fontSize=ratio*100+“px“;
}();
</script>
但如果當前屏幕寬度大于設計稿寬度,圖片會被拉長而失真,所以以上代碼需要稍微做些修改:
//html部分
<section id="main">
<div class="box"></div>
</section>
//js部分
<script>
~function(){
var desW=640,
winW=document.documentElement.clientwidth,
ratio=winW/desW;
var oMain=document.getElementById('main');
if(winW>desW){
oMain.style.width=desW+"px";
oMain.style.margin="0 auto";
return;
}
document.documentElement.style.fontSize=ratio*100+“px“;
}();
</script>
以上就是本文的全部內容,希望對大家的學習有所幫助
使用CSS混合模式和SVG來動態更改產品圖片的顏色
文章主要介紹了使用CSS混合模式和SVG來動態更改產品圖片的顏色,需要的朋友可以參考下。前兩天在Codepen看到了@Kyle Wetton寫的一個示例, 使用CSS混合模式和SVG來改變沙發的...
css新手教程之背景圖充滿整個屏幕的示例代碼介紹
文章主要給大家介紹了關于css新手教程之背景圖充滿整個屏幕的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用css具有一定的參考學習價值。想讓整個界面有一個背...
詳解移動端網頁設計實現內滾動的四種解決方案
這篇文章主要介紹了關于移動端實現內滾動的四種解決方案,實現的效果就是在一個區域內只允許部分區域產生滾動的效果,而其余部分則不能移動,需要的朋友可以參考借鑒,下面來一起看看吧。...
網頁設計如何優雅的實現垂直居中
這篇文章主要給大家介紹了關于如何優雅的實現垂直居中的相關資料,文中分別給大家介紹了已知寬高的元素、未知寬高的元素以及基于 Flexbox 的解決方案,都分別給出了示例代碼供大家參考學習,需要的朋友們下面隨著小編來一起學習學習吧...
網頁設計:淺談網頁基本性能優化規則小結
這篇文章主要介紹了淺談網頁基本性能優化規則小結的相關資料,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...
用戶需求導致營銷型網頁設計
我們的每期話題,團隊在內部都會通過郵件進行一番討論,隨著討論的激烈,往往能碰撞出很多有意義的觀點,因此,將討論內容分享出來,有興趣的朋友可以接著話題討論下去。Junchen:期望不是從石頭里面蹦出來的,所有期望都是受到外界影響、結合自身需求的一個外在表現...
網頁設計柵格就是你對頁面版式的規劃
英文原文:http://desktoppub.about.com/od/grids/l/aa_gridsorder.htm柵格就是你對頁面版式的規劃你日常所見的許多頁面都有柵格存在。你可能注意不到,但它確實存在,并且支撐著設計內容,建立整體的架構,引導著頁面的元素。柵格是隱形的架構,用于指導你頁面...
網頁設計內容網頁中關于圖片預覽的設計
之前有寫過《內容頁頁碼的預覽導航》跟《照片預覽導航分析》兩個文章,想說明的是預覽這一功能在用戶心理所占有的比重是很大的,如果僅僅只是給出一排順序數字做為鏈接的標題,用戶的心理會產生不安全感。雖然給出一排順序數字做為鏈接幾乎是整個互聯網的默認分頁鏈接模...
網頁設計:腳本素材重構用戶體驗
設計網站的同志背景主要有兩種:學計算機、學藝術。基本上會寫代碼的不懂設計,會設計的不懂代碼,這個格局似乎到今天還沒變。某些學計算機的同學,有自己的審美品位,也能夠做出看起來不錯的網站,但學藝術的同學普遍難搞懂代碼...
bootstrap學習心得總結:css樣式設計分享
下面小編就為大家帶來一篇bootstrap學習心得總結-css樣式設計分享。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...