一、序言
学习的初级阶段都是从模仿开始的,就像练字一样,需要经历描摹临三个阶段,第一阶段:
描,即是用笔直接在范字上描着写。
拿到我们前端学习来说就是照着教程中的代码写一遍。
接着进入第二阶段:
摹,即是用透明纸蒙在范字上,在透明纸上描着范字写。
对应于前端学习就是在教程的代码的基础上做一些小小的调整。
最后一个阶段:
临,即是比着范字,边看边写。
此时应该做到的就是能够像素级的还原设计图了。
当然前端需要学习的内容不应该止步于还原设计稿,但是一口吃不成胖子是不,所以今天先来一个简单的仿站,从页面布局下手。本次仿的为博雅互动,简介如下:
深圳市东方博雅科技有限公司是中国最早社交棋牌游戏开发及运营商,主打多款热门网络棋牌游戏,德州扑克、斗地主、麻将等多款游戏,支持网页及iPhone、iPad、Android版本,多年来深受广大用户喜欢。
二、分析页面的结构
从上图可以看出,页面页面有一个很明显的版心,经测量为1200px,整个页面可以初步划分为头部,内容和页脚三大部分,其中内容又可以划分为轮播,产品展示和信息模块块。
由此,可以写出如下的页面骨架:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div class="header"></div>
<div class="banner"></div>
<div class="product"></div>
<div class="information"></div>
<div class="footer"></div>
</body>
</html>
当然如果不考虑兼容性或者引入HTML5标签解析的js的话,解析js传送门可以使用最新的标签,语义化更好,具体如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<header></header>
<main>
<div class="banner"></div>
<div class="product"></div>
<div class="information"></div>
</main>
<footer></footer>
</body>
</html>
三、根据语义化在页面的骨架中填入相应的标签和内容
1. 头部
接着写头部,头部主要组成为logo,导航栏以及加入我们,可以让logo和导航栏一起左浮动,加入我们右浮动实现页面中的布局
<div class="header">
<div class="inner_c">
<div class="logo">
<h1><a href="#">博雅互动-专业游戏网站</a></h1>
</div>
<div class="nav">
<ul>
<li class="first current"><a href="">首页</a></li>
<li><a href="game.html">博雅游戏</a></li>
<li><a href="news.html">博雅新闻</a></li>
<li><a href="">关于我们</a></li>
<li><a href="">客服中心</a></li>
<li><a href="">投资者关系</a></li>
<li><a href="">校园大使</a></li>
</ul>
</div>
<div class="joinus">
<a href="">加入我们</a>
</div>
</div>
</div>
2. 页面的主体结构
轮播图部分的实现使用了大量的无需列表,分别如下:
- 轮播图部分的每张图片
- 产品展示的每一个产品都用li标签包裹
- 每一条新闻和招聘信息
除此之外,就是使用span标签包裹词组,利用a标签包裹需要跳转的内容,还有一些小标题为了更好的语义化,使用h4标签。
由于主题部分的代码较多就不一一贴上,可以到我的github上面查看
3. 页脚
页脚主要由两个div组合而成,比较简单
<div class="footer">
<div class="inner_c">
<div class="links">
<a href="#">网站地图</a>
<span>|</span>
<a href="#">免责声明</a>
</div>
<div class="copyright">
Copyright © 2004 - 2016 博雅互动(Boyaa Interactive)
<a href="">粤ICP备05062536号</a>
增值电信业务经营许可证:粤B2-20110513
![](images/govIcon.gif)
</div>
</div>
</div>
四、CSS部分
CSS的书写主要分为四个文件
- common.css 主要存放页面的公用部分,一般为页头,页脚部分,有时会包括轮播图,广告等部分,主要看该网站的首页和各个子页面之间有多少重复的结构。
- reset.css 重置默认的CSS样式,便于统一页面在各个浏览器之间的展示,去除不必要的默认样式,比如a标签的下划线,li标签默认的小圆点以及各种盒模型相关的属性等等
- index.css 首页专属的CSS布局代码
- base.css 一些原子类,这些类是在各个模块中可能大量使用的样式,如下部分原子类展示:
.f12{font-size:12px;}
.f13{font-size:13px;}
.f14{font-size:14px;}
.f16{font-size:16px;}
.f20{font-size:20px;}
.fb{font-weight:bold;}
.fn{font-weight:normal;}
.t2{text-indent:2em;}
.lh150{line-height:150%}
.lh180{line-height:180%}
.lh200{line-height:200%}
.unl{text-decoration:underline;}
.no_unl{text-decoration:none;}
.nomargin{margin:0 !important;}
.tl{text-align:left;}
.tc{text-align:center;}
.tr{text-align:right;}
.bc{margin-left:auto;margin-right:auto;}
.fl{float:left;display:inline;}
.fr{float:right;display:inline;}
.cb{clear:both;}
.cl{clear:left;}
.cr{clear:right;}
当页面中有上述的样式时,直接引用对用的样式即可
五、页面轮播效果
这博雅互动的仿站中,采用的是呼吸轮播的轮播效果,原理是将所有的图片使用绝对定位的方式摞在一起,只显示第一张图片,接着每隔一定时间,让最顶层的图片的opacity从1变为0,而第二张图片的变化与第一张相反,opacity从0变为1,这样就实现了一次呼吸轮播效果,循环往复即可
六、总结
对于一个静态页面的开发,首相要分割出页面的总体结构,接着使用语义化的标签分别表示各个部分。
对于样式部分,则一般以浮动配合定位实现各种页面布局,只要有耐心,一像素一像素的调整,一定可以将样式调好。
最后,附上项目源码:GitHub项目仓库
项目预览:点击我