1.調(diào)整視口
創(chuàng)新互聯(lián)長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為興業(yè)企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),興業(yè)網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
代碼實(shí)例:
!DOCTYPE?html
head
meta?charset="UTF-8"?/
title布局之路-移動(dòng)端開(kāi)發(fā)實(shí)例/title
meta?name="viewport"?content="width=device-width,user-scalable?=?no"?/
link?rel="stylesheet"?type="text/css"?href="css/reset.css"?/
/head
body
div?class="wrap"/div
/body
/html
代碼解析:由于使用不同設(shè)備打開(kāi)網(wǎng)頁(yè)時(shí),寬度均有所不同,所以不能講視口設(shè)置為固定值,應(yīng)當(dāng)為width=device-width,即將視口設(shè)置為當(dāng)前設(shè)備的寬度。
2.確定設(shè)計(jì)圖的最小字體
瀏覽器(部分)能夠顯示的最小字體未12px,當(dāng)移動(dòng)端頁(yè)面寬度為320px時(shí),要保證最小字體為12px,那么在1080px的設(shè)計(jì)圖中,最小字體應(yīng)當(dāng)為42px。
代碼實(shí)例:
style?type="text/css"
html?{
font-size:?42px;
}
/style
3.浮動(dòng)布局
各個(gè)區(qū)塊都是浮動(dòng)的,不是固定不變的。為了能自適應(yīng)各個(gè)窗口。
代碼實(shí)例:
.main?{
float:?left;
width:?70%;
}
.box?{
float:?left;
width:?60.93%;
font-size:?1.71rem;
text-align:?center;
line-height:?4.64rem;
}
float浮動(dòng)的好處就是,如果寬度不夠放置下這個(gè)元素,元素會(huì)自動(dòng)滾動(dòng)到下方。
4.通過(guò)媒介查詢,為不同設(shè)備加載相應(yīng)樣式
有條件應(yīng)用樣式:
style
@media?all?and(min-width:500px){?...?}
@media?(orientation){?...?}
/style
代碼解析:
第一行媒體查詢代碼指的是:為寬度大于等于500px的設(shè)備設(shè)置樣式。
第二行媒體查詢代碼指的是:為縱屏狀態(tài)(可見(jiàn)區(qū)域大于或等于寬度)下的移動(dòng)端設(shè)備設(shè)置樣式。
有條件的加載樣式表:
head
link?rel="stylesheet"?href="wide.css"?media="screen?and(min-width:1024)"?/
link?rel="stylesheet"?href="mobile.css"?media="screen?and(max-width:320)"?/
/head
代碼解析:
第一行媒體查詢代碼指的是:為寬度大于等于1024px的設(shè)備,加載wide.css文件。
第二行媒體查詢代碼指的是:為寬度小于等于320px的設(shè)備,加載mobile.css文件。
5.使用百分比和rem替換px
除了布局和文本,"自適應(yīng)網(wǎng)頁(yè)設(shè)計(jì)"還必須實(shí)現(xiàn)圖片的自動(dòng)縮放。
代碼效果對(duì)比:
/*使用固定像素*/
.box?{
float:?left;
width:?658px;
font-size:?72px;
text-align:?center;
line-height:?195px;
}
/*使用百分比和rem*/
.box?{
float:?left;
width:?60.93%;
font-size:?1.71rem;
text-align:?center;
line-height:?4.64rem;
}
代碼解析:
水平方向的值,將具體像素調(diào)整為百分比。百分比的計(jì)算是根據(jù)父級(jí)的內(nèi)容區(qū)寬度進(jìn)行計(jì)算的。
例如,父級(jí)寬度為1080px, 子級(jí)元素為197px,那么子元素轉(zhuǎn)換為百分比為:197/1080*100%=18.24%。需要注意的是百分比根據(jù)父級(jí)計(jì)算,當(dāng)標(biāo)簽結(jié)構(gòu)級(jí)別不同時(shí),計(jì)算公式中的“分母”也有所不同,在開(kāi)發(fā)時(shí)這個(gè)地方很容易出現(xiàn)問(wèn)題,請(qǐng)務(wù)必注意。
垂直方向的值,將具體像素調(diào)整為rem,與水平方向相比,垂直方向的計(jì)算就比較簡(jiǎn)單。例如,行高為195px,HTML標(biāo)簽當(dāng)前的字體大小為42px,將行高轉(zhuǎn)換為rem單位,即195/42= 4. 64rem。
html5是html4的更新標(biāo)準(zhǔn)。html5新增了一些html標(biāo)簽以及這些標(biāo)簽對(duì)應(yīng)的css和js接口。 bootstrap是在html5標(biāo)準(zhǔn)形成之際推出的,因此bootstrap天生含有html5的一些標(biāo)簽和特性。 比如,bootstrap支持響應(yīng)式設(shè)計(jì),具體體現(xiàn)在bootstrap的css庫(kù)(主要是啟用了css3標(biāo)準(zhǔn)的media query功能)實(shí)現(xiàn)了各種設(shè)備下的一些預(yù)設(shè)的html+css組件(就是一些半成品的代碼片段,適合在網(wǎng)頁(yè)各個(gè)地方復(fù)制粘貼)。
簡(jiǎn)單說(shuō):
html5是html的最新標(biāo)準(zhǔn) ,體現(xiàn)在新標(biāo)簽,新css標(biāo)準(zhǔn),新js接口
bootstrap是基于html5技術(shù)的一個(gè)好用的前端代碼框架,可以簡(jiǎn)單的復(fù)制粘貼,修修改改做一個(gè)漂亮頁(yè)面
響應(yīng)式設(shè)計(jì)是一種設(shè)計(jì)實(shí)現(xiàn)理念 ,css3的meida query功能讓這個(gè)理念的實(shí)現(xiàn)變的現(xiàn)實(shí)而方便。
H5是指在html5標(biāo)準(zhǔn)推行以后,利用html5新特性在手機(jī)上的配合市場(chǎng)營(yíng)銷(xiāo)采用了大量的js css 及canvas技術(shù)實(shí)現(xiàn)的頁(yè)面。個(gè)人認(rèn)為H5的概念很狹隘不能代表整個(gè)web前端,更不能包含webapp。 但H5的概念也可以變的更寬放,泛指一切在手機(jī)上實(shí)現(xiàn)的應(yīng)用或頁(yè)面。
響應(yīng)式布局最簡(jiǎn)單的就是用css3來(lái)實(shí)現(xiàn)。我舉一個(gè)最簡(jiǎn)單的例子。
下面是html代碼。
!DOCTYPE html
html lang="en"
head
meta charset="UTF-8"
meta name ="viewport" content="width = device-width,initial-scale=1"
titleindex01/title
link href="style01.css" type="text/css" rel="stylesheet"
/head
body
div class="heading"第一/div
div class="container"
div class="left"第二/div
div class="main"第三/div
div class="right"第四/div
/div
div class="footing"第五/div
/body
/html
下面是css3代碼
*{
margin:0px;
padding: 0px;
}
.heading,
.container,
.footing{
margin: 10px auto;
}
.heading{
height: 100px;
background-color: red;
}
.left,
.right,
.main{
height: 300px;
background-color: yellow;
}
.footing{
height: 100px;
background-color: gray;
}
!--media="only screen and (max-width:640px)" 這句話的意思是:只要當(dāng)渲染屏幕的寬度不大于640px的時(shí)候才會(huì)使用這個(gè)樣式表--
@media screen and (min-width: 960px){
.heading,
.container,
.footing{
width:960px;
}
.left,
.main,
.right{
float: left;
height: 500px;
}
.left,
.right{
width:200px;
}
.main{
margin: 0px 5px;
width:550px;
}
.container{
height: 500px;
}
}
@media screen and (min-width: 600px) and (max-width: 960px){
.heading,
.container,
.footing{
width: 600px;
}
.left,
.main{
float: left;
height:400px;
}
.right{
display: none;
}
.left{
width: 160px;
}
.main{
width: 435px;
margin-left: 5px;
}
.container{
height: 400px;
}
}
@media screen and (max-width: 600px){
.heading,
.container,
.footing{
width: 400px;
}
.left,
.right{
width: 400px;
height: 100px;
}
.main{
margin-top: 10px;
width:400px;
height:200px;
}
.right{
margin-top: 10px;
}
.container{
height: 420px;
}
}
這樣就可以實(shí)現(xiàn)簡(jiǎn)單的響應(yīng)式布局!如果你想要了解的話,可以到華清遠(yuǎn)見(jiàn)學(xué)習(xí)一下。我就是在那里學(xué)習(xí)的。
HTML5 制作響應(yīng)式網(wǎng)頁(yè),首先需要考慮是全平臺(tái)適配還是只是移動(dòng)端適配。這里以移動(dòng)端響應(yīng)式網(wǎng)站為例,講述如何制作響應(yīng)式網(wǎng)頁(yè)。
1、選定基本設(shè)計(jì)尺寸,一般以1080為基準(zhǔn)。確定響應(yīng)式web設(shè)計(jì)的應(yīng)用場(chǎng)景之后,和美工(或設(shè)計(jì)師)溝通,之前,一般需要美工出幾套主流移動(dòng)設(shè)備屏幕分辨率的設(shè)計(jì)圖,現(xiàn)在,使用流式布局以及rem等可以使用一套設(shè)計(jì)圖,以最常用的移動(dòng)設(shè)備屏幕分辨率為基準(zhǔn)。
2、當(dāng)美工完成設(shè)計(jì)圖之后,前端工程師的工作就開(kāi)始了。這時(shí)你就可以使用PS或是FW進(jìn)行切圖了。一般說(shuō)來(lái),F(xiàn)ireworks cs6切圖更快,但是Fireworks有時(shí)會(huì)有圖片失真的情況發(fā)生,所以,有時(shí)需要使用PS進(jìn)行配合,PS有切片工具可以專(zhuān)門(mén)用來(lái)切圖。
具體代碼:
(function (doc, win) {
var docEl = doc.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function () {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
};
響應(yīng)式布局就是根據(jù)瀏覽器顯示區(qū)域大小不同顯示不同的樣式,比如說(shuō)你的瀏覽器是電腦1366*768就顯示寬屏布局(如左右布局),如果是手機(jī)寬480px,就顯示適用于手機(jī)的布局(如上下布局)。
響應(yīng)式布局和一般是使用css3的@media屬性,設(shè)置當(dāng)瀏覽器寬度不同時(shí)就調(diào)用不同的css。
以前,一般都是使用js來(lái)判斷瀏覽器是手機(jī)端還是pc端,是手機(jī)端的話就用手機(jī)端的css或整個(gè)頁(yè)面跳轉(zhuǎn)到專(zhuān)門(mén)的手機(jī)網(wǎng)站,是PC端就使用PC端css。但是現(xiàn)在移動(dòng)端更豐富了,手機(jī)屏幕大小不一,還有pad等介于中間的屏幕大小,所以就有了響應(yīng)式布局這個(gè)更適用于移動(dòng)互聯(lián)網(wǎng)的概念產(chǎn)生。
html5移動(dòng)端開(kāi)發(fā)和響應(yīng)式設(shè)計(jì)沒(méi)有必然聯(lián)系,不過(guò)在HTML5移動(dòng)開(kāi)發(fā)中經(jīng)常會(huì)經(jīng)常使用響應(yīng)式設(shè)計(jì)。
1、響應(yīng)式設(shè)計(jì)不僅用在移動(dòng)網(wǎng)站,在PC端也有不同屏幕的適配,而且移動(dòng)端和PC端可以只使用一套代碼,這就是全平臺(tái)的響應(yīng)式設(shè)計(jì)。
2、HTML5移動(dòng)端(移動(dòng)網(wǎng)站、混合應(yīng)用、WebAPP)為了解決屏幕適配經(jīng)常會(huì)使用響應(yīng)式設(shè)計(jì)(流式布局、CSS3媒體查詢),但是響應(yīng)式設(shè)計(jì)并不是必須,也可以使用流式布局和remnant來(lái)解決移動(dòng)端的屏幕適配問(wèn)題。
(function (doc, win) {
var docEl = doc.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function () {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
};
if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
3、HTML5移動(dòng)端開(kāi)發(fā)最初的時(shí)候使用固定布局,兩邊留白,那時(shí)也沒(méi)有用到響應(yīng)式設(shè)計(jì),不過(guò),那種用戶體驗(yàn)不好。