響應(yīng)式網(wǎng)頁設(shè)計是什么

導(dǎo)讀

  • 響應(yīng)式網(wǎng)頁設(shè)計是什么
  • 實現(xiàn)響應(yīng)式網(wǎng)頁設(shè)計的方法
  • 響應(yīng)式網(wǎng)站案例
  • viewport是什么
  • 設(shè)置viewport
  • Media Query是什么
  • 設(shè)置Media Query的三種用法
  • 媒體查詢的語法
  • 常見媒體類型
  • 常見媒體特性
  • 常見邏輯運算符
  • 媒體查詢示例
  • 工具

響應(yīng)式網(wǎng)頁設(shè)計是什么

  • 響應(yīng)式網(wǎng)頁設(shè)計是一種設(shè)計網(wǎng)頁的方法。
  • 這種方法主要使用媒體查詢讓網(wǎng)頁具有根據(jù)設(shè)備的類型和特點應(yīng)用CSS樣式的能力。

解釋:

  • 設(shè)計:設(shè)想、計劃铸鹰。設(shè)計就是把想法實現(xiàn)掘宪。
  • 網(wǎng)頁設(shè)計:按照一定的想法布局網(wǎng)頁內(nèi)容棒假。
  • 傳統(tǒng)網(wǎng)頁設(shè)計:主要針對PC端瀏覽器而設(shè)計,不具備響應(yīng)設(shè)備類型和特性的能力扎即,故不能針對多終端設(shè)備和尺寸的網(wǎng)頁進行優(yōu)化鬓梅。
  • 移動互聯(lián)網(wǎng)時代:隨著HTML 5的視口的出現(xiàn)及CSS3的media規(guī)則的出現(xiàn)供置。網(wǎng)頁具備了查詢訪問設(shè)備和設(shè)備特性的能力,響應(yīng)式網(wǎng)頁設(shè)計應(yīng)用而生绽快。
  • 響應(yīng):指讓我們的網(wǎng)頁能夠自動查詢用戶的訪問設(shè)備士袄,并根據(jù)查詢結(jié)果應(yīng)用不同的CSS樣式悲关。

實現(xiàn)響應(yīng)式網(wǎng)頁設(shè)計的步驟

第一步:設(shè)置視口

<meta name="viewport" content="width=device-width, initial-scale=1.0">

第二步:設(shè)置媒體查詢:使用Media Query判斷用戶訪問設(shè)備谎僻,從而應(yīng)用css樣式

案例

非響應(yīng)式網(wǎng)頁設(shè)計案例

響應(yīng)式網(wǎng)頁設(shè)計:媒體查詢

響應(yīng)式網(wǎng)頁設(shè)計:適配


Viewport是什么

viewport就是視口的意思娄柳,指移動端渲染網(wǎng)頁的區(qū)域。
解釋:

  • view: 是“看”的意思艘绍。
  • Port: 是“端口”的意思
  • Viewport: 翻譯為“視口”赤拒。
  • viewport是沒有大小的。就是viewport不等于網(wǎng)頁可見區(qū)域的大小诱鞠。
  • 視口可以通過meta標簽設(shè)置
  • 在進行響應(yīng)式網(wǎng)頁設(shè)計的時候挎挖,第一步就是設(shè)置視口,即把渲染頁面的視口尺寸設(shè)置為與設(shè)備的可見區(qū)域的尺寸一致航夺。
  • 設(shè)置viewport的主要目的是為了創(chuàng)建更合理的視口尺寸蕉朵。設(shè)置視口是制作響應(yīng)式網(wǎng)頁的第一步。
  • 視口是 HTML 5 中的元元素阳掐,用于根據(jù)用戶的設(shè)備縮放內(nèi)容始衅。這對于響應(yīng)式網(wǎng)頁設(shè)計很重要。

PC端視口:指網(wǎng)頁的可見區(qū)域缭保。移動端的視口與PC端的視口有所不同:

瀏覽器界面 移動端 PC端
視口定義 渲染頁面的區(qū)域 網(wǎng)頁的可見區(qū)域
可見區(qū)域 視口不等于可見區(qū)域 視口等于可見區(qū)域
視口交互 1. 在屏幕上移動頁面會出現(xiàn)視覺反饋條

2.更改視口比例:雙擊汛闸、捏合、捏開(不能更改大小)
3.可以設(shè)置網(wǎng)頁的視口屬性 | 通過調(diào)整窗口大小改變視口大小 |


設(shè)置Viewport

可以通過<meta> 標簽設(shè)置移動端視口的大小和縮放艺骂。

如果不設(shè)置視口的尺寸诸老,移動設(shè)備通常會自動優(yōu)化網(wǎng)頁的顯示。在iOS系統(tǒng)上視口默認為980px寬钳恕。如果你希望實現(xiàn)更加復(fù)雜合理的優(yōu)化别伏,通常需要修改移動設(shè)備的默認視口設(shè)置。

設(shè)置視口屬性的語法是:

<meta name="viewport" content="屬性列表" /> 

viewport包含6個屬性

  1. width:設(shè)置視口的寬度忧额。屬性值:
  • number:1- 10000厘肮。數(shù)字表示視口的像素寬度,無單位宙址,不支持負值轴脐。比如width=600
  • device-width:等于100vw100%
<meta name="viewport" content="width:320" /> 

  1. height:設(shè)置視口的高度抡砂。屬性值:
  • number:1- 10000大咱。數(shù)字表示視口的像素高度,無單位注益,不支持負值碴巾。比如height=600
  • device-height:等于100vw100%
<meta name="viewport" content="height:640" /> 

  1. initial-scale:控制第一次加載頁面時的縮放級別丑搔。屬性值:
  • 0.1 - 10
  • 默認值:1厦瓢。
  • 負值:忽略提揍。
<meta name="viewport" content="initial-scale:1" /> 

  1. minimum-scale:控制頁面上允許的縮小程度。屬性值:
  • 0.1 - 10
  • 默認值:0.1煮仇。
  • 負值:忽略劳跃。
<meta name="viewport" content="minimun-scale:2" /> 

  1. maximum-scale:控制頁面允許放大多少。屬性值
  • 0.1- 10浙垫。
  • 任何小于 3 的值都無法訪問。
  • 默認值:10夹姥。
  • 負值:忽略杉武。
<meta name="viewport" content="maxinum-scale:6" /> 

  1. user-scalable:控制頁面上是否允許放大和縮小操作。屬性值:
  • 有效值:0辙售、1轻抱、no 或 yes。
  • 默認值:1旦部,與 yes 相同祈搜。
<meta name="viewport" content="user-scalable:yes" /> 

視口的常規(guī)設(shè)置方法:

<meta name="viewport" content="width=device-width, initial-scale=1" /> 

警告:1. 將 user-scalable值設(shè)置為 0(與否相同)違反了《Web 內(nèi)容可訪問性指南》 Web Content Accessibility Guidelines (WCAG)。2. 使用 user-scalable=no 可能會給有視力障礙(例如低視力)的用戶帶來可訪問性問題志鹃。 WCAG 要求至少 2 倍縮放夭问;但是,最佳做法是啟用 5 倍變焦


Media Query是什么

  • Media Query的中文:媒體查詢
  • 媒體查詢是一種查詢訪問設(shè)備的技術(shù)曹铃$智鳎可以查詢訪問設(shè)備的類型和特性,根據(jù)媒體查詢的結(jié)果應(yīng)用不同的CSS樣式陕见。

媒體查詢的三種用法

第一種:通過為<link>標簽設(shè)置media屬性定位媒體秘血,例如

<link href="css/style1.css" rel="stylesheet" type="text/css" media="screen" />
<link href="css/style2.css" rel="stylesheet" type="text/css" media="all" />
<link href="css/print.css" rel="stylesheet" type="text/css" media="print" />
<link href="phone.css"  rel="stylesheet" media="screen and (max-width: 600px)"  />

第二種:或通過為<style>標簽設(shè)置media屬性定位媒體,例如:

<style type="text/css" media="screen">
  @import url("./css/style.css"); 
</style>

第三種:或通過@media規(guī)則在CSS文件中定位媒體评甜,例如

/*css文件*/
@media not|only 媒體類型 and (媒體特性表達式) {
  CSS-Code;
}


媒體查詢的語法

  • 媒體查詢通過可選的媒體設(shè)備和可選的媒體特性表達式組成
  • 每個媒體特性表達式必須用括號括起來灰粮。
  • 媒體設(shè)備和媒體特性表達式之間使用邏輯運算符連接
    • and
    • not
    • only
    • ,
  • 媒體查詢不區(qū)分大小寫。

媒體類型

媒體類型指常見的媒體設(shè)備類型忍坷,媒體類型是可選的粘舟。

  • all: 所有媒體設(shè)備。
  • print : 打印機
  • screen : 計算機屏幕佩研、平板屏幕柑肴、智能手機屏幕等設(shè)備屏幕。
  • speech: 屏幕閱讀設(shè)備

示例:查詢打印機設(shè)備

@media print {
  /* … */
}

示例:查詢多個設(shè)備

@media screen, print {
  /* … */
}


媒體特性表達式

媒體特性通過表達式形式描述了用戶代理旬薯、輸出設(shè)備或環(huán)境的特征晰骑。

示例:查詢鼠標懸停

@media (hover: hover) {
  /* … */
}

示例:查詢視口寬度

@media (max-width: 1250px) {
  /* … */
}

示例:查詢彩色屏幕的設(shè)備

@media (color) {
  /* … */
}

示例:查詢兩個特性(and運算符)

@media (min-width: 30em) and (orientation: landscape) {
  /* … */
}


邏輯運算符

邏輯運算符 not、and 和 only 可用于組成復(fù)雜的媒體查詢绊序。您還可以通過用逗號分隔多個媒體查詢將它們組合成一個規(guī)則硕舆。

and :用于將多個媒體特征組合到一個媒體查詢中秽荞,要求每個鏈接的特征返回 true 以使查詢?yōu)?true。它還用于將媒體功能與媒體類型連接起來抚官。

not: 用于否定媒體查詢扬跋,如果查詢將返回 false,則返回 true耗式。如果出現(xiàn)在逗號分隔的查詢列表中胁住,它只會否定應(yīng)用它的特定查詢。如果使用 not 運算符刊咳,還必須指定媒體類型。

only:僅當整個查詢匹配時才應(yīng)用樣式儡司。它對于防止舊瀏覽器應(yīng)用選定的樣式很有用娱挨。當不只使用時,舊瀏覽器會將查詢屏幕和 (max-width: 500px) 解釋為屏幕捕犬,忽略查詢的其余部分跷坝,并將其樣式應(yīng)用于所有屏幕。如果使用 only 運算符碉碉,則還必須指定媒體類型柴钻。

,: 逗號用于將多個媒體查詢組合成一個規(guī)則。逗號分隔列表中的每個查詢都與其他查詢分開處理垢粮。因此贴届,如果列表中的任何查詢?yōu)檎妫瑒t整個媒體語句返回真蜡吧。換句話說毫蚓,列表的行為類似于邏輯或運算符。

示例:查詢屏幕設(shè)備+特性

@media screen and (min-width: 30em) and (orientation: landscape) {
  /* … */
}

示例:反向查詢設(shè)備和特性(not 關(guān)鍵字不能用于否定單個特征查詢昔善,只能用于否定整個媒體查詢)

@media only screen and (color) {
  /* … */
}


媒體查詢示例

一元潘、最大寬度Max Width

<link rel="stylesheet" media="screen and (max-width:600px)" href="small.css" type="text/css" />

上面表示的是:當屏幕小于或等于600px時,將采用small.css樣式來渲染W(wǎng)eb頁面君仆。

二翩概、最小寬度Min Width

<link rel="stylesheet" media="screen and (min-width:900px)" href="big.css" type="text/css"  />

上面表示的是:當屏幕大于或等于900px時,將采用big.css樣式來渲染W(wǎng)eb頁面返咱。

三钥庇、多個Media Queries使用

<link rel="stylesheet" media="screen and (min-width:600px) and (max-width:900px)" href="style.css" type="text/css" />

Media Query可以結(jié)合多個媒體查詢,換句話說洛姑,一個Media Query可以包含0到多個表達式上沐,表達式又可以包含0到多個關(guān)鍵字,以及一種Media Type楞艾。正如上面的其表示的是當屏幕在600px-900px之間時采用style.css樣式來渲染web頁面参咙。

四龄广、設(shè)備屏幕的輸出寬度Device Width

<link rel="stylesheet" media="screen and (max-device-width: 480px)" href="iphone.css" type="text/css" />

上面的代碼指的是iphone.css樣式適用于最大設(shè)備寬度為480px,比如說iPhone上的顯示蕴侧,這里的max-device-width所指的是設(shè)備的實際分辨率择同,也就是指可視面積分辨率

五、iPhone4

<link rel="stylesheet" media="only screen and (-webkit-min-device-pixel-ratio: 2)" type="text/css" href="iphone4.css" />

上面的樣式是專門針對iPhone4的移動設(shè)備寫的净宵。

六敲才、iPad

<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css" type="text/css" /> 
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css"  type="text/css" />

在大數(shù)情況下,移動設(shè)備iPad上的Safari和在iPhone上的是相同的择葡,只是他們不同之處是iPad聲明了不同的方向紧武,比如說上面的例子,在縱向(portrait)時采用portrait.css來渲染頁面敏储;在橫向(landscape)時采用landscape.css來渲染頁面阻星。

七、android

/*240px的寬度*/
<link rel="stylesheet" media="only screen and (max-device-width:240px)" href="android240.css" type="text/css" />
/*360px的寬度*/
<link rel="stylesheet" media="only screen and (min-device-width:241px) and (max-device-width:360px)" href="android360.css" type="text/css" />
/*480px的寬度*/
<link rel="stylesheet" media="only screen and (min-device-width:361px) and (max-device-width:480px)" href="android480.css" type="text/css" />

我們可以使用media query為android手機在不同分辨率提供特定樣式已添,這樣就可以解決屏幕分辨率的不同給android手機的頁面重構(gòu)問題妥箕。

八、not關(guān)鍵字

<link rel="stylesheet" media="not print and (max-width: 1200px)" href="print.css" type="text/css" />

not關(guān)鍵字是用來排除某種制定的媒體類型更舞,換句話來說就是用于排除符合表達式的設(shè)備畦幢。

九、only關(guān)鍵字

<link rel="stylesheet" media="only screen and (max-device-width:240px)" href="android240.css" type="text/css" />

only用來定某種特定的媒體類型缆蝉,可以用來排除不支持媒體查詢的瀏覽器宇葱。其實only很多時候是用來對那些不支持Media Query但卻支持Media Type的設(shè)備隱藏樣式表的。其主要有:支持媒體特性(Media Queries)的設(shè)備返奉,正常調(diào)用樣式贝搁,此時就當only不存在;對于不支持媒體特性(Media Queries)但又支持媒體類型(Media Type)的設(shè)備芽偏,這樣就會不讀了樣式雷逆,因為其先讀only而不是screen;另外不支持Media Qqueries的瀏覽器污尉,不論是否支持only膀哲,樣式都不會被采用。

十被碗、其他

在Media Query中如果沒有明確指定Media Type某宪,那么其默認為all,如:

<link rel="stylesheet" media="(min-width: 701px) and (max-width: 900px)" href="medium.css" type="text/css" />

另外還有使用逗號(锐朴,)被用來表示并列或者表示或兴喂,如下

<link rel="stylesheet" type="text/css" href="style.css" media="handheld and (max-width:480px), screen and (min-width:960px)" />

上面代碼中style.css樣式被用在寬度小于或等于480px的手持設(shè)備上,或者被用于屏幕寬度大于或等于960px的設(shè)備上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末衣迷,一起剝皮案震驚了整個濱河市畏鼓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壶谒,老刑警劉巖云矫,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異汗菜,居然都是意外死亡让禀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門陨界,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巡揍,“玉大人,你說我怎么就攤上這事普碎『鸱剩” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵麻车,是天一觀的道長。 經(jīng)常有香客問我斗这,道長动猬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任表箭,我火速辦了婚禮赁咙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘免钻。我一直安慰自己彼水,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布极舔。 她就那樣靜靜地躺著凤覆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拆魏。 梳的紋絲不亂的頭發(fā)上盯桦,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音渤刃,去河邊找鬼拥峦。 笑死,一個胖子當著我的面吹牛卖子,可吹牛的內(nèi)容都是我干的略号。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼玄柠!你這毒婦竟也來了突梦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤随闪,失蹤者是張志新(化名)和其女友劉穎阳似,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铐伴,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡撮奏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了当宴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畜吊。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖户矢,靈堂內(nèi)的尸體忽然破棺而出玲献,到底是詐尸還是另有隱情,我是刑警寧澤梯浪,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布捌年,位于F島的核電站,受9級特大地震影響挂洛,放射性物質(zhì)發(fā)生泄漏礼预。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一虏劲、第九天 我趴在偏房一處隱蔽的房頂上張望托酸。 院中可真熱鬧,春花似錦柒巫、人聲如沸励堡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽应结。三九已至,卻和暖如春布疼,著一層夾襖步出監(jiān)牢的瞬間摊趾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工游两, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留砾层,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓贱案,卻偏偏與公主長得像肛炮,于是被迫代替她去往敵國和親止吐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 響應(yīng)式網(wǎng)頁設(shè)計是什么 定義:響應(yīng)式網(wǎng)頁設(shè)計就是讓網(wǎng)頁具備根據(jù)設(shè)備應(yīng)用CSS樣式的能力 解釋: 響應(yīng)式網(wǎng)頁設(shè)計英文:...
    錢能通神閱讀 1,317評論 0 2
  • 導(dǎo)讀 響應(yīng)式網(wǎng)頁設(shè)計是什么 實現(xiàn)響應(yīng)式網(wǎng)頁設(shè)計的方法 響應(yīng)式網(wǎng)站案例 viewport是什么 設(shè)置viewport...
    buhaoqi閱讀 1,267評論 6 15
  • 一侨糟、名詞解釋 名詞引用自教科書——《響應(yīng)式Web設(shè)計——HTML5和CSS3實戰(zhàn)(第二版)》 響應(yīng)式Web設(shè)計(R...
    GeekJun閱讀 765評論 0 3
  • 一碍扔、介紹 什么是響應(yīng)式網(wǎng)頁設(shè)計? 響應(yīng)式網(wǎng)頁設(shè)計使您的網(wǎng)頁在所有設(shè)備上都很好看秕重。 響應(yīng)式網(wǎng)頁設(shè)計僅使用HTML和C...
    小王子b612小行星閱讀 10,392評論 0 5
  • 響應(yīng)式Web設(shè)計(Responsive Web Design):即網(wǎng)頁內(nèi)容會隨著訪問它的視口及設(shè)備的不同而呈現(xiàn)不同...
    翌年閱讀 1,351評論 0 0