Foundation框架 - 快速创建跨平台的网站页面原型
移动化
用户使用移动设备访问网站时,期望会有所不同。对于眼前这个内容类网站,我们希望用户在使用移动设备进行访问的时候,可以在首屏直接看到主要内容部分。移动设备用户在浏览网页时,很厌恶的一点就是,在忍受了网站页头和全局导航的加载过程之后,仍然无法立刻看到主要内容。(关于在移动设备中,网站内容呈现方式的策略,可以参考我们之前关于响应式网站产品需求及设计流程方面的文章)
在不做任何移动化处理之前,我们的原型在小屏幕移动设备中的呈现方式如下图所示:

首屏中,我们只能看到logo、网站标题等与主要内容、全局导航无关的元素。真心不靠谱。我们接下来要使用一些Foundation提供的的专门用来处理不同设备视图的class,让原型中某些元素在小屏幕移动设备中发生变化。
当前,我们的基础版页面原型中,header部分的代码是这样的:
<header class="row">
<div class="two columns">
<img src="http://placehold.it/200x120" />
</div>
<div class="eight columns">
<h1 class="centered">The Foundation Times</h1>
<h5 class="centered">December 1, 2011</h5>
</div>
<div class="two columns">
<img src="http://placehold.it/200x120" />
</div>
</header>添加了移动化的class之后:
<header class="row hide-on-phones">
<div class="two columns">
<img src="http://placehold.it/200x120" />
</div>
<div class="eight columns">
<h1 class="centered">The Foundation Times</h1>
<h5 class="centered">December 1, 2011</h5>
</div>
<div class="two columns">
<img src="http://placehold.it/200x120" />
</div>
</header>
<header class="row show-on-phones">
<div class="twelve columns">
<img src="http://placehold.it/480x100" />
<h1 class="centered">The Foundation Times</h1>
<h5 class="centered">December 1, 2011</h5>
</div>
</header>重点在于两个新的class,一个是hide-on-phones,另外一个是show-on-phones。顾名思义,它们用来控制元素在手机设备上的显示和隐藏。Foundation预设了一些这样的class,用来根据不同类型的设备,响应式的调整页面元素的呈现方式。
现在,当使用手机浏览页面原型时,只有第二个简化的header会显示出来。接下来,我们为这个移动版本的header写几行样式:
h1.centered { text-align: center; margin-bottom: 0; }
h5.centered { text-align: center; }
.show-on-phones h1.centered { font-size: 24px; font-size: 2.4rem; }
.show-on-phones h5.centered { font-size: 12px; font-size: 1.2rem; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid #ddd; }来看看到目前的成果:

好多了。现在的问题是,导航项在小屏幕中显得太多了,布局发生了错乱。一个常见的解决方案是,对手机设备,将导航移至页面底部。当然,我们并不是要真的移动它,而是像前面那样设置不同的显示规则。对于目前的全局导航,在class中增加一个hide-on-phones:
<div class="row hide-on-phones"> <div class="twelve columns"> <dl class="tabs"> <dd><a href="#" class="active">All News</a></dd> <dd><a href="#">Llamas</a></dd> <dd><a href="#">Alpacas</a></dd> <dd><a href="#">Vicunas</a></dd> <dd><a href="#">Other Dromedaries</a></dd> </dl> </div> </div>
接下来,在页面底部,footer之前,添加一个新的导航;HTML结构与头部的全局导航基本一致:
<div class="row show-on-phones"> <div class="twelve columns"> <dl class="tabs mobile"> <dd><a href="#" class="active">All News</a></dd> <dd><a href="#">Llamas</a></dd> <dd><a href="#">Alpacas</a></dd> <dd><a href="#">Vicunas</a></dd> <dd><a href="#">Other Dromedaries</a></dd> </dl> </div> </div>
区别在于两点:一是在容器的class中使用了show-on-phones,使该导航只在手机中显示;另外,在导航列表的class里增加了一个“mobile”,这样可以使每个导航tab都成为全宽,整个导航将成为一个纵向列表。
现在,我们的原型在手机中的首屏效果是这样的:

基于网格系统,编写了少量的高语义化HTML代码,配合Foundation原生提供的一些样式工具class,我们已经创建出了可以用来进行跨平台演示和测试的首页原型。
译文代表原作者观点。欢迎发表评论,或到译者微博进一步交流探讨。
