自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Foundation框架——快速創(chuàng)建跨平臺的網(wǎng)站頁面原型

開發(fā) 前端
如今,我們需要從設計流程的上游改變長久以來的習慣,比如嘗試快速創(chuàng)建可以在不同設備上進行測試的原型,而不只是針對臺式機瀏覽器或筆記本。這就是我們(英文原文作者的團隊)開發(fā)Foundation框架的原因。

最近兩篇譯文都有涉及框架和跨平臺方面的話題:前一篇中,我們了解了一些用于移動應用開發(fā)的前端框架工具;今天這篇的立足點偏向設計開發(fā)流程的上游,它將向我們展示怎樣使用Foundation框架快速創(chuàng)建跨平臺的、可以在多種設備上進行測試的響應式頁面原型。下面開始正文部分。

開門見山的說,作為網(wǎng)頁設計和開發(fā)人員,我們面臨著以下幾個嚴峻的問題:

◆ 每天,人們用來上網(wǎng)的設備種類和數(shù)量都在不斷上升。

◆ 為每種設備設計開發(fā)不同的界面是不可能的。

◆ 即使你專門為某些設備定制打造,這些設備也很有可能在不久的將來退出主流舞臺。

真心歡樂。別怕,大家一起面對并解決問題。其實,不同類型的設備及屏幕的這個問題,很早以前就開始存在了,只是多年來我們一直忽視這個狀況,一廂情愿的守著960像素的網(wǎng)格系統(tǒng)。

如今,我們需要從設計流程的上游改變長久以來的習慣,比如嘗試快速創(chuàng)建可以在不同設備上進行測試的原型,而不只是針對臺式機瀏覽器或筆記本。這就是我們(英文原文作者的團隊)開發(fā)Foundation框架的原因。

Foundation是一款開源的前端框架,我們可以使用它快速創(chuàng)建頁面原型。相比于其他同類型工具,F(xiàn)oundation(http://foundation.zurb.com/)的移動化方案更加出色;借鑒響應式Web設計的思路和方法,F(xiàn)oundation對內(nèi)容結(jié)構(gòu)在不同類型設備中的的呈現(xiàn)方式進行了相應的預設。(關于響應式Web設計,可以參考我們之前的幾篇文章,包括響應式設計的概念、組成要素及基本實現(xiàn)思路,怎樣通過CSS3 Media Query實現(xiàn)響應式Web設計,以及相關的產(chǎn)品需求和設計流程案例學習)

接下來,我們將通過一個完整的實例,來演示怎樣使用Foundation快速創(chuàng)建跨平臺的頁面原型。走著!

資源概覽

首先到foundation.zurb.com(http://foundation.zurb.com/)下載代碼包;果斷點擊大藍按鈕即可。代碼包中包含以下文件及結(jié)構(gòu):

◆ index.html - 我們將從這里開始創(chuàng)建***個頁面。

◆ javascripts和stylesheets路徑 - 主要的靜態(tài)資源文件,包括jQuery及所需的樣式表。

◆ humans.txt和robots.txt - 里面的代碼算是不錯的樣板,有空的時候可以溜幾眼。

JS方面的東西基本不在本文討論范圍,我們繼續(xù)來看看stylesheets路徑中的文件:

◆ global.css - 全局基礎樣式表,包括相對常規(guī)的12列固定寬度的網(wǎng)格系統(tǒng)、快速創(chuàng)建復雜布局的可嵌套工具等。另外還有其他全局字體、布局等方面的樣式定義。

◆ ui.css - 用來對那些組成原型的常規(guī)UI元素進行樣式定義。

◆ mobile.css - 負責移動設備方面的樣式,涉及響應式的樣式定義都在這里。

分別在瀏覽器和代碼編輯器中打開index.html文件。在瀏覽器中,我們可以看到該頁面包含了一些用于構(gòu)筑原型的基礎布局結(jié)構(gòu)及UI元素。

 

foundation-prototype-framework-responsive-multiple-device

 

接下來,我們將從網(wǎng)格系統(tǒng)、快速創(chuàng)建原型、移動化這三個方面依次進行實例講解。

網(wǎng)格系統(tǒng)

首先來簡單看看global.css中的網(wǎng)格系統(tǒng)。如果你熟悉960網(wǎng)格系統(tǒng)或是Blueprint CSS框架,那么對Foundation的網(wǎng)格結(jié)構(gòu)也應該不會陌生。下面是一段典型的結(jié)構(gòu)代碼:

  1. <div class="container">  
  2.   <div class="row">  
  3.     <div class="eight columns" id="mainContent"> ... </div>  
  4.     <div class="four columns" id="sidebarContent"> ... </div>  
  5.   </div>  
  6. </div> 

該結(jié)構(gòu)由三部分組成:外層容器container、行容器row和列容器columns。外層容器的作用只是為頁面添加左右內(nèi)邊距(padding)。

行容器擁有一個固定的***寬度值,防止頁面在大顯示器中過寬;當然,如果你想打造純粹的液態(tài)布局,也可以在樣式表中去掉這個屬性。

列容器是最內(nèi)層的內(nèi)容容器,在我們的網(wǎng)格系統(tǒng)中,每行最多可以放置12個列容器。上面的代碼中,我們創(chuàng)建的是典型的“內(nèi)容+側(cè)邊欄”布局,寬度分別為全寬的2/3和1/3。

網(wǎng)格布局可以進行嵌套:

  1. <div class="container"> 
  2.   <div class="row"> 
  3.     <div class="eight columns"> 
  4.       <div class="row"> 
  5.         <div class="four columns"> ... </div> 
  6.         <div class="four columns"> ... </div> 
  7.         <div class="four columns"> ... </div> 
  8.       </div> 
  9.     </div> 
  10.     <div class="four columns"> ... </div> 
  11.   </div> 
  12. </div> 

Foundation官網(wǎng)中有一些布局范例可以參考。

#p#

快速創(chuàng)建原型

開始動手。我們要為一個簡單的新聞資訊類網(wǎng)站制作首頁和文章內(nèi)頁的原型;整個過程包括兩部分:使用Foundation快速創(chuàng)建基礎原型,以及為不同類型的設備進行移動化處理。首先來看***部分。

***拿起紙和筆,在創(chuàng)建原型之前將構(gòu)思勾畫出來。下面是我們?yōu)榛A版本的首頁(桌面顯示器版本)畫的草圖:

 

foundation-prototype-framework-responsive-sketch

 

可以看到,首頁的大致布局包括頁頭、主要文章內(nèi)容圖文、側(cè)邊的次級內(nèi)容圖文、特色文章圖文列表。對這個頁面,我們可以用到一些Foundation自帶的布局結(jié)構(gòu),以及一個不錯的外部服務。

◆ 頁面整體布局方面,使用前面介紹過的網(wǎng)格系統(tǒng)。

◆ 全局主導航使用Foundation預設的tab結(jié)構(gòu)。

◆ 對于每個圖文單元中的圖片,我們使用placehold.it提供的服務。它會按照指定的比例輸出可以填滿容器的示范內(nèi)容,包括用來占位的圖片,以及可以自定義的文案等。

OK我們從頁頭開始。Foundation框架會保證舊瀏覽器兼容HTML5,所以我們在這里可以放心的使用更加語義化的header標簽。因為頁頭是一個包含多列內(nèi)容的塊級結(jié)構(gòu),所以我們還要為它添加class="row"。代碼如下:

  1. <div class="container">  
  2.   <header class="row">     
  3.     <div class="two columns">  
  4.       <img src="http://placehold.it/200x120" />  
  5.     </div>  
  6.     <div class="eight columns">  
  7.       <h1 class="centered">The Foundation Times</h1>  
  8.       <h5 class="centered">December 1, 2011</h5>  
  9.     </div>  
  10.     <div class="two columns">  
  11.       <img src="http://placehold.it/200x120" />  
  12.     </div>  
  13.   </header> 

可以看到,在外部容器container中,我們將header作為完整的一行,其中放置了三列,寬度方面是1:4:1的關系。在***列和第三列中,我們使用了placehold.it提供的占位圖片,用來表示logo等元素。在第二列中,我們使用h1標簽作為網(wǎng)站標題的容器,副標題則使用h5。

接下來是導航。我們要使用Foundation預設的tab形式;代碼結(jié)構(gòu)如下:

  1. <div class="row"> 
  2.   <div class="twelve columns"> 
  3.     <dl class="tabs"> 
  4.       <dd><a href="#" class="active">All News</a></dd> 
  5.       <dd><a href="#">Llamas</a></dd> 
  6.       <dd><a href="#">Alpacas</a></dd> 
  7.       <dd><a href="#">Vicunas</a></dd> 
  8.       <dd><a href="#">Other Dromedaries</a></dd> 
  9.     </dl> 
  10.   </div> 
  11. </div> 

雖然在這一行中只有一套導航元素,但是我們?nèi)匀恍枰獙Ш皆亓斜韉l放置在一個列容器中,并且將這個列容器設置為12列全寬,否則布局將出現(xiàn)問題。

對于頁面其他部分的內(nèi)容,基本方式是類似的,我們將會用到網(wǎng)格系統(tǒng)、一些基本的元素、以及Foundation自帶的UI組件。下面是頁面剩余部分的HTML代碼:

  1. <div class="row"> 
  2.   <div class="eight columns"> 
  3.     <img src="http://placehold.it/800x340" /> 
  4.     <h3><a href="#">Llamas: Great Pets or the Best Pets?</a></h3> 
  5.     <p>Intrepid reporter Jordan Humphreys went to Happy Time Llama Farm to investigate: are llamas merely great pets, or he best pets? Read the full article to find out!</p> <a href="#" class="small radius nice blue button">Read More &rarr;</a> 
  6.   </div> 
  7.   <div class="four columns"> 
  8.     <div class="row"> 
  9.       <div class="five columns"> 
  10.         <img src="http://placehold.it/120x100" /> 
  11.       </div> 
  12.       <div class="seven columns"> 
  13.         <h5><a href="">Alpaca Farm Closed</a></h5> 
  14.         <p>Anthony Tadina reports on this tragic closing.<br /><a href="#">Read More &rarr;</a></p> 
  15.       </div> 
  16.     </div> 
  17.     ... [repeat this row twice more]  
  18.   </div> 
  19. </div> 
  20.                   
  21. <div class="row"> 
  22.   <div class="twelve columns"> 
  23.     <hr /> 
  24.   </div> 
  25. </div> 
  26.                   
  27. <div class="row"> 
  28.   <div class="three columns"> 
  29.     <img src="http://placehold.it/260x190" /> 
  30.     <h5><a href="#">Feature 1</a></h5> 
  31.     <p>Description<br /><a href="#">Read More &rarr;</a></p> 
  32.   </div> 
  33.   ... [repeat this column 3 more times]  
  34. </div> 
  35.                   
  36. <footer class="row"> 
  37.   <div class="seven columns"> 
  38.     <p><strong>The Foundation Times</strong><br />&copy; 2025 no rights reserved.</p> 
  39.   </div> 
  40.   <div class="five columns"> 
  41.     <p><a href="#">All News</a> | <a href="#">Llamas</a> | <a href="#">Alpacas</a> | <a href="#">Vicunas</a> | <a href="#">Other Dromedaries</a></p> 
  42.   </div> 
  43. </footer> 

我們可以看到,HTML原型中每個部分的代碼結(jié)構(gòu)其實都是相當基礎和簡單的。需要注意的是class中帶有“button”的元素,這些是Foundation預設的按鈕,包括幾種不同的風格樣式。我們可以用這樣的方式將a標簽或是button類型的input元素定義為風格化按鈕,并通過“small”、“radius”等class為其設置具體的樣式:

◆ small或large - 可選;控制按鈕的尺寸;如果不做設置,默認將為中等尺寸。

◆ radius - 可選;為按鈕增加幾像素的圓角效果。該值還可以是round,樣式為左右兩側(cè)完全圓弧。不做設置時,默認樣式是矩形。

◆ nice - 可選;添加少許高光等細節(jié)效果。

◆ blue - 可選;設置顏色;該值還可以是red、black、grey,或是在樣式表中進行過自定義的任何名稱。

◆ button - 唯一的必要class,用來將元素格式化為按鈕。

通過這樣一些很基本的HTML代碼,我們就已經(jīng)創(chuàng)建好了基礎版本的原型;當前的實際效果如下圖所示。

 

foundation-prototype-framework-homepage-basic

 

如果僅僅需要為桌面設備制作頁面原型,那么到這里我們的任務就已經(jīng)完成了。不過在本次實例中,我們還要演示怎樣使原型針對不同類型移動設備進行響應式的兼容,實現(xiàn)跨平臺。

#p#

移動化

用戶使用移動設備訪問網(wǎng)站時,期望會有所不同。對于眼前這個內(nèi)容類網(wǎng)站,我們希望用戶在使用移動設備進行訪問的時候,可以在首屏直接看到主要內(nèi)容部分。移動設備用戶在瀏覽網(wǎng)頁時,很厭惡的一點就是,在忍受了網(wǎng)站頁頭和全局導航的加載過程之后,仍然無法立刻看到主要內(nèi)容。(關于在移動設備中,網(wǎng)站內(nèi)容呈現(xiàn)方式的策略,可以參考我們之前關于響應式網(wǎng)站產(chǎn)品需求及設計流程方面的文章)

在不做任何移動化處理之前,我們的原型在小屏幕移動設備中的呈現(xiàn)方式如下圖所示:

 

foundation-prototype-framework-mobile-iphone-default

 

首屏中,我們只能看到logo、網(wǎng)站標題等與主要內(nèi)容、全局導航無關的元素。真心不靠譜。我們接下來要使用一些Foundation提供的的專門用來處理不同設備視圖的class,讓原型中某些元素在小屏幕移動設備中發(fā)生變化。

當前,我們的基礎版頁面原型中,header部分的代碼是這樣的:

  1. <header class="row">    
  2.   <div class="two columns"> 
  3.     <img src="http://placehold.it/200x120" /> 
  4.   </div> 
  5.   <div class="eight columns"> 
  6.     <h1 class="centered">The Foundation Times</h1> 
  7.     <h5 class="centered">December 1, 2011</h5> 
  8.   </div> 
  9.   <div class="two columns"> 
  10.     <img src="http://placehold.it/200x120" /> 
  11.   </div> 
  12. </header> 

添加了移動化的class之后:

  1. <header class="row hide-on-phones">    
  2.   <div class="two columns"> 
  3.     <img src="http://placehold.it/200x120" /> 
  4.   </div> 
  5.   <div class="eight columns"> 
  6.     <h1 class="centered">The Foundation Times</h1> 
  7.     <h5 class="centered">December 1, 2011</h5> 
  8.   </div> 
  9.   <div class="two columns"> 
  10.     <img src="http://placehold.it/200x120" /> 
  11.   </div> 
  12. </header> 
  13.     
  14. <header class="row show-on-phones"> 
  15.   <div class="twelve columns"> 
  16.     <img src="http://placehold.it/480x100" /> 
  17.       
  18.     <h1 class="centered">The Foundation Times</h1> 
  19.     <h5 class="centered">December 1, 2011</h5> 
  20.   </div> 
  21. </header> 

重點在于兩個新的class,一個是hide-on-phones,另外一個是show-on-phones。顧名思義,它們用來控制元素在手機設備上的顯示和隱藏。Foundation預設了一些這樣的class,用來根據(jù)不同類型的設備,響應式的調(diào)整頁面元素的呈現(xiàn)方式。

現(xiàn)在,當使用手機瀏覽頁面原型時,只有第二個簡化的header會顯示出來。接下來,我們?yōu)檫@個移動版本的header寫幾行樣式:

  1. h1.centered { text-align: center; margin-bottom: 0; }  
  2. h5.centered { text-align: center; }  
  3.     
  4. .show-on-phones h1.centered { font-size: 24px; font-size: 2.4rem; }  
  5. .show-on-phones h5.centered { font-size: 12px; font-size: 1.2rem; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid #ddd; } 

來看看到目前的成果:

 

foundation-prototype-framework-mobile-iphone-header

 

好多了。現(xiàn)在的問題是,導航項在小屏幕中顯得太多了,布局發(fā)生了錯亂。一個常見的解決方案是,對手機設備,將導航移至頁面底部。當然,我們并不是要真的移動它,而是像前面那樣設置不同的顯示規(guī)則。對于目前的全局導航,在class中增加一個hide-on-phones:

  1. <div class="row hide-on-phones"> 
  2.   <div class="twelve columns"> 
  3.     <dl class="tabs"> 
  4.       <dd><a href="#" class="active">All News</a></dd> 
  5.       <dd><a href="#">Llamas</a></dd> 
  6.       <dd><a href="#">Alpacas</a></dd> 
  7.       <dd><a href="#">Vicunas</a></dd> 
  8.       <dd><a href="#">Other Dromedaries</a></dd> 
  9.     </dl> 
  10.   </div> 
  11. </div> 

接下來,在頁面底部,footer之前,添加一個新的導航;HTML結(jié)構(gòu)與頭部的全局導航基本一致:

  1. <div class="row show-on-phones"> 
  2.   <div class="twelve columns"> 
  3.     <dl class="tabs mobile"> 
  4.       <dd><a href="#" class="active">All News</a></dd> 
  5.       <dd><a href="#">Llamas</a></dd> 
  6.       <dd><a href="#">Alpacas</a></dd> 
  7.       <dd><a href="#">Vicunas</a></dd> 
  8.       <dd><a href="#">Other Dromedaries</a></dd> 
  9.     </dl> 
  10.   </div> 
  11. </div> 

區(qū)別在于兩點:一是在容器的class中使用了show-on-phones,使該導航只在手機中顯示;另外,在導航列表的class里增加了一個“mobile”,這樣可以使每個導航tab都成為全寬,整個導航將成為一個縱向列表。

現(xiàn)在,我們的原型在手機中的首屏效果是這樣的:

 

foundation-prototype-framework-mobile-iphone-content

 

基于網(wǎng)格系統(tǒng),編寫了少量的高語義化HTML代碼,配合Foundation原生提供的一些樣式工具class,我們已經(jīng)創(chuàng)建出了可以用來進行跨平臺演示和測試的首頁原型。

#p#

自己試試看

接下來,你可以按照我們前面的方法,自己試著為文章內(nèi)頁創(chuàng)建原型。同樣,從手繪草稿開始。我們已經(jīng)幫你完成了這一步,并添加了一些注釋,作為編寫原型代碼時的小提示;見下圖:

 

foundation-prototype-framework-responsive-sketch-article-page

 

你可以下載這套實例的源文件包,實際看看這些原型相關文件(包括文章內(nèi)頁)的完整代碼。

跨平臺原型在項目實踐中能起到怎樣的作用?

正如我們在本文開頭提到的,要使網(wǎng)站在任何類型的設備上都盡量兼容,***的辦法就是從設計流程的上游出發(fā),創(chuàng)建跨平臺性比較強的原型,確保從一開始就可以對布局結(jié)構(gòu)等方面的設計方案進行及時檢驗。設計方面的迭代不能再僅僅依靠Photoshop了。

最近,我們在一個為本地某公益組織創(chuàng)建網(wǎng)站的實際項目中,運用這樣的方式,進行了24小時沖刺式的設計開發(fā)。在勾畫出網(wǎng)站頁面的草圖之后,我們使用Foundation框架,在不到兩個小時的時間里,為所有的頁面創(chuàng)建了原型。這些原型可以幫助我們在多種設備平臺中直接測試相應的設計方案,同時,前端人員能夠基于這些原型的代碼結(jié)構(gòu)并行式的展開相關開發(fā)工作,內(nèi)容團隊也可以基于可視化的原型策劃文案;在這期間,我們也同時進行著視覺設計方面的工作。

有興趣的話,可以查看關于這次項目的更多細節(jié),包括全部頁面的草圖、跨平臺原型等。

到目前為止,我們已經(jīng)在很多客戶項目案例中使用了Foundation框架;在我們自己的一些應用類型網(wǎng)站的設計開發(fā)過程中也有用到,包括axeapp.com,spurapp.com和reelapp.com。

原文:http://beforweb.com/node/23

【編輯推薦】

 

責任編輯:陳貽新 來源: Be For Web
相關推薦

2023-12-21 09:16:40

Electron前端多進程架構(gòu)

2011-07-06 11:16:32

Unity3DCocos2dSparrow Fra

2014-07-08 09:37:28

跨平臺Webhtml5

2022-09-04 18:09:41

Flet前端開發(fā)

2024-05-22 09:54:19

2011-08-22 10:00:13

HTML 5

2019-10-25 10:42:51

框架Web開發(fā)

2011-09-05 11:27:17

Sencha Touc框架HTML5

2010-10-09 15:01:27

PhoneGapiPhoneAndroid

2012-03-16 13:43:29

2011-08-25 08:59:58

HTML 5

2014-07-31 16:00:10

KiiXamarin

2011-07-05 14:59:47

PhoneGapHTML 5

2021-06-14 09:54:46

框架開發(fā)應用程序

2019-01-29 10:06:31

開源技術 趨勢

2023-07-18 08:49:59

.NET MAUI應用程序

2021-06-11 18:05:31

App平臺框架

2020-02-03 09:30:42

開發(fā)技能代碼

2014-05-30 15:50:46

DIGIA嵌入式Qt

2025-03-14 00:53:12

點贊
收藏

51CTO技術棧公眾號