響應(yīng)式Web之流式網(wǎng)格系統(tǒng)

隨著移動端用戶的增加,我們希望設(shè)計出來的網(wǎng)頁能同時使用PC和移動端設(shè)備,同一個網(wǎng)頁增對不同的設(shè)備顯示效果也不一樣,這時需要用到響應(yīng)式設(shè)計。這里我先介紹一下流式網(wǎng)格系統(tǒng)。如果了解過 Bootstrap和Foundation框架的讀者就能發(fā)現(xiàn)這兩個框架都提供了獨特的網(wǎng)格系統(tǒng)。但是我們一般不會只為了使用網(wǎng)格系統(tǒng)而引入某一個框架,因此這里介紹一下如何根據(jù)自己需求設(shè)計一個流式網(wǎng)格系統(tǒng)。
為了網(wǎng)頁能根據(jù)設(shè)備自由縮放,在 \<\head> 元素中添加以下 \<\meta> 標(biāo)簽:
•width 屬性控制設(shè)備的寬度。假設(shè)您的網(wǎng)站將被帶有不同屏幕分辨率的設(shè)備瀏覽,那么將它設(shè)置為 device-width 可以確保它能正確呈現(xiàn)在不同設(shè)備上。
•initial-scale=1.0 確保網(wǎng)頁加載時,以 1:1 的比例呈現(xiàn),不會有任何的縮放。在移動設(shè)備瀏覽器上,通過為 viewport meta 標(biāo)簽添加 user-scalable=no 可以禁用其縮放(zooming)功能。通常情況下,maximum-scale=1.0 與 user-scalable=no 一起使用。這樣禁用縮放功能后,用戶只能滾動屏幕。
@media查詢
@media 查詢是CSS3的語法規(guī)則。使用@media 查詢可以針對不同的媒體類型定義不同的樣式,另外可以針對不同的屏幕尺寸設(shè)置不同的樣式。@media的CSS語法規(guī)則如下:
- @media mediatype and|not|only (media feature) {
- CSS-Code;
- }
例如:
- @media only screen and (max-width: 400px){
- body {
- background-color:lightblue;
- }
- }
表示只在媒體類型是數(shù)字屏幕而且寬度為400px或者更小時,則修改背景演示(background-color)。
另外我們也可以通過@media針對不同的媒體使用不同 stylesheets :
構(gòu)造網(wǎng)格
需求描述:設(shè)計一個網(wǎng)格系統(tǒng),在PC端顯示1行8列,而在手機端顯示2行4列
HTML代碼如下:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
- <link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
- </head>
- <body>
- <div class="row">
- <div class="grid m-grid-1 d-grid-1">
- </div>
- <div class="grid m-grid-1 d-grid-1">
- </div>
- <div class="grid m-grid-1 d-grid-1">
- </div>
- <div class="grid m-grid-1 d-grid-1">
- </div>
- <div class="grid m-grid-1 d-grid-1">
- </div>
- <div class="grid m-grid-1 d-grid-1">
- </div>
- <div class="grid m-grid-1 d-grid-1">
- </div>
- <div class="grid m-grid-1 d-grid-1">
- </div>
- </div>
- </body>
- </html>
CSS代碼如下:
- .row{
- width:100%;
- max-width:1024px; /*設(shè)置最大的寬度,一般為PC端才起作用*/
- margin:0 auto;
- outline: 1px solid blue;
- }
- /*為row類清除浮動來防止由浮動元素造成的外邊距折疊*/
- .row:before,.row:after {content: " ";display: table;}
- .row:after {clear: both;}
- /*設(shè)置每一列的格式*/
- .grid{
- height:20px;
- float:left;
- margin:1%;
- outline:1px solid red;
- }
- /*設(shè)置每一個移動設(shè)備上m-grid-1類的寬度值,m-grid-2類為m-grid-1的兩倍,以此類推*/
- .m-grid-1{width:23%;}
- .m-grid-2{width:48%;}
- .m-grid-3{width:73%;}
- .m-grid-4{width:98%;}
- /*為寬度大于或等于960px的設(shè)備設(shè)置列的寬度*/
- @media (min-width:960px){
- .d-grid-1{width:10.5%;}
- .d-grid-2{width:23%;}
- .d-grid-3{width:35.5%;}
- .d-grid-4{width:48%;}
- .d-grid-5{width:60.5%;}
- .d-grid-6{width:73%;}
- .d-grid-7{width:85.5%;}
- .d-grid-8{width:98%;}
- }
在PC 端顯示結(jié)果如下:
在手機端顯示如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
原文鏈接:http://blog.csdn.net/u014607184/article/details/51593836
相關(guān)文章
對于網(wǎng)站W(wǎng)eb端表單的交互式設(shè)計思考
表單是前端開發(fā)中最常實現(xiàn)的基礎(chǔ)功能之一,表單的設(shè)計對于用戶體驗來說非常重要,這里我們就來分享一篇攜程前端團隊對于網(wǎng)站W(wǎng)eb端表單的交互式設(shè)計思考:2016-07-06- 這篇文章主要為大家詳細介紹了HTML5本地存儲之Web Storage的相關(guān)資料,Web Storage如何用JSON存儲多個數(shù)據(jù),感興趣的小伙伴們可以參考一下2016-07-04
- 這篇文章主要為大家分享了了Web前端開發(fā)工程師需要掌握的核心技能,在W3C標(biāo)準(zhǔn)的結(jié)構(gòu)、行為和表現(xiàn)中我們需要掌握什么樣的核心技能,本文為大家揭曉,感興趣的小伙伴們可以參2016-06-20
web網(wǎng)頁開發(fā)面試筆試必備小知識(必看)
下面小編就為大家?guī)硪黄獁eb網(wǎng)頁開發(fā)面試筆試必備小知識(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-14