我的页面制作方法(2)
发布时间:2008-03-23 13:51:00
做前端也有几年时间了,不敢说能把他看地多透,但是多多少少还是有些自己的东西。下面以 Tudou.com 的首页为例,总结总结。
就制作而言,我将一张页面分为四层:框架、布局、模块、列表和数据块。
一、框架
页面的框架基本上都是:“头”、“主体”、“尾”。但是对于一些页面如Tudou.com,由于布局的需要,还应在“头”的下面还要加个“菜单”。
二、布局(以下用#ID表示页面元素)
#Head和#Foot里的就不说了,具体查看演示页面源码。
布局说的是将#Main里的内容分成几大块。我们看Tudou.com,#Main里典型的左右结构,我们用#Layout_1,#Layout_2表示。如图
三、模块
布局#Layout_1,#Layout_2里的块就是模块了,
按我的理解,模块至少要有一个ID,Class则要视页面设计,给需要重用的加上。
关于模块的ID名称,要取个有意义的名字,当然偷懒的可以用#Col_1,#Col_2,。。。
模块的Class名称用.cols_1,.cols_2,。。。
模块内部的如下图
四、列表和数据块
模块的主体是由列表组成的,而列表里则包含数据块。
按我的理解,页面上的信息其实就是不同类型的列表。我们应将典型的列表方式提取出来,放在公用样式里(public.css)。
以Tudou.com为例,需要定义到public.css里的列表至少要有以下三种:
.list-v 垂直列表方式 (图片和文字成垂直排列)
.list-h 水平列表方式 (图片和文字成水平排列)
.list-t 文字列表方式
数据块其实是微格式的一个变相应用,给不同的数据元素定义固定的结构。
Tudou.com 需要定义的数据块有:
.mVideo (视频)
.mList (豆单)
.mUser (用户)
比如 .mVideo 应该是这样的:
<div class=“mVideo”>
<div class=“p”><a href=“” title=“”><img src=“” alt=“阿联又挂彩 有望首发战公牛” /></a></div>
<div class=“d”>
<div class=“d_name”><a href=“” title=“”>阿联又挂彩 有望首发战公牛</a></div>
<div class=“d_user”><a href=“” title=“”>阿联又挂彩 有望首发战公牛</a></div>
<div class=“d_length”>06:88</div>
<div class=“d_time”>发布时间:<span>2007-10-08 14:31</span></div>
<div class=“d_intro”>阿联又挂彩阿联又挂彩阿联又挂彩</div>
<div class=“d_honor”>荣誉:<span><img src=“” alt=“Ç¿” /></span></div>
<div class=“d_view”>人气:<span>222</span></div>
<div class=“d_comment”>评论:<span>323</span></div>
<div class=“d_favorite”>收藏:<span>32</span></div>
<div class=“d_type”>类型:<span><a href=“” title=“”>µçÓ°</a><a href=“” title=“”>µçÊÓ¾ç</a></span></div>
<div class=“d_tag”>标签:<span><a href=“” title=“”>Twins</a><a href=“” title=“”>Ñݳª»á</a></span></div>
<div class=“d_subject”>专题:<span><a href=“” title=“”>±¬ÁÏ</a></span></div>
</div>
</div>
最后,附上关键字表,就是一些用于公共定义的ID和Class名称。
ID
#B-* // Body用
#Head, #Main, #Foot //布局用ID
#Message // 系统消息用
#Logo, #Toolbar, #Search, #Menu // Head内元素
#Layout_*, #Group_*, #Col_* // Main内元素
#Links, #CopyRight // Foot内元素
#B* // 广告位,与class=”b”结合使用
#Plugin // Banner用
Class
.txt, .btn, .label_checkbox, .label_input, .handle // 表单内元素
.meat // 模块主体元素
.list_*(.list_v, .list_h, .list-t, .list_top, …) // 列表元素,详见“列表”
.m // 更多,可延伸至“绝对定位于右上角”的元素
.s1, .s2, … // 用于子单元块需各自定义样式的元素,如菜单、排行榜等
.s // 特殊元素,如果一个元素相对于兄弟节点特殊,则用之
.b // 广告位
.p, .d, .d_*, .h // 数据块内元素,分别为图片、详细、详细内元素、操作
.handle // 操作元素
.m_*(.mVideo, .mComment, .mUser, .mSubject, …) // 数据块元素
.*_fix // *元素的补丁元素
.current // 当前元素


猜你喜欢
- 本文为大家分享了机器学习10大经典算法,供大家参考,具体内容如下1、C4.5C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是I
- 物体跟踪效果展示 过程:一、初始化def Motor_Init(): global L_Motor, R
- 内容摘要: 当用户填写页面<FORM>内容时所提供的全部值,或在浏览器地址栏输入在URL后的值,通过Form和QueryStrin
- 本文实例讲述了Python实现的人工神经网络算法。分享给大家供大家参考,具体如下:注意:本程序使用Python3编写,额外需要安装numpy
- 目录1、简介2、正文2.1 and操作符2.2 or操作符2.3 in操作符2.4 not操作符2.5 操作符顺序1、简介在MySQL中使用
- BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_i
- PhantomJS作为常用获取页面的工具之一,我们已经讲过页面测试、代码评估和捕获屏幕这几种使用的方式。当然最厉害的还是网页方面的捕捉,这里
- 本文实例讲述了Python实现对不原生支持比较操作的对象排序算法。分享给大家供大家参考,具体如下:问题:想在同一个类的实例之间做排序,但是它
- 一、背景本文章主要是分享如何使用Python从MySQL数据库中面抽取试题,生成的试卷每一份都不一样。二、准备工作1.安装Python3下载
- 相信学Python的小伙伴肯定有这样的尴尬局面,给一个函数不会用,原因是:不知道参数列表中的类型是什么意思,比如初学者都会疑问的:*args
- Mac 环境中既有自带的 Python2.7 也有自己安装的 Python 3.5.1,默认想用 Python3 的环境1. 添加 Pyth
- 用Django开发网站的时候,前端页面内的文本框总是不能被设置为只读,找了一些资料发现可以在form class里面进行设置。方法一:首先在
- 效果图:实现代码如下view<canvas id="radar-canvas" class="radar
- 什么是面向事件的编程(事件驱动的编程):编程中所有的程序是由事件决定 – 可以是由用户操作(键盘,鼠标),也可以是由其他程序和流的到达或者操
- 本文实例为大家分享了python绘制温度变化雷达图的具体代码,供大家参考,具体内容如下假设某天某地每三个小时取样的气温为针对温度变化趋势绘制
- 在人工智能开启的时代,Python作为人工智能的首选语言,前景可以预见。因此学习Python的人越来越多。不过,很多初学Python的小白都
- Pivot 及 Pivot_table函数用法Pivot和Pivot_table函数都是对数据做透视表而使用的。其中的区别在于Pivot_t
- 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。>>> def now():... &n
- 限制访问可以基于某种权限,某些检查或者为login视图提供不同的位置,这些实现方式大致相同。一般的方法是直接在视图的 request.use
- 1、实现 __getitem__(self)class Library(object): def __init__(self):