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