关注前端开发/网页设计/网站可用性/用户体验,暴风彬彬的趣味互联网生活…
今天展示一下五月底用4天时间完成的一个小项目,天津麻将电视大奖赛的专题官网UI设计+前端开发。这个项目要的很急,呵呵,所以非常非常赶…界面方面可能还有很多不如意的地方,但是网页的前端代码我是在既追求效率又追求质量的基础上完成的。这个项目的交互原型和详细需求不是我出的,所以内容结构和内容量、布局等不是我能大规模修改的。我只能在原型的基础上进行创意设计和修饰配色等。
先来两张首页效果图:
两个版本之间的区别只在于赛事进程版块内,由于需求的内容量过大,所以导致页面很单调,版本一是我优化的,版本二是按需求的内容量设计的。这个需求我看到第一眼就觉得很无奈,这么庞大的信息量,有必要吗?!用户100%不会耐着性子把内容看完的,反倒是需要一些突出的图片或是颜色来引导用户浏览网页中最重要的内容,比如这个页面中的”报名”按钮、”赛事进程”板块和参赛步骤。再有就是既然是麻将游戏的电视比赛,那就一定要通过设计元素突出主题,能让用户在没有看到文字的时候也能大致了解页面的主题内容是什么,提高页面的可识别性。Banner的Q版电视人物和一些麻将就是起到这个效果。
关于页面的风格,我借鉴了很多腾讯的设计风格,走清新路线,希望能在炎炎夏日给人以清爽的感受….导航是Copy的,哇咔咔….时间紧迫啊….尽管拍我吧,哈
顺便说个题外话,哈,那个”易游开心”很山寨… 囧rz
天津麻将电视大赛专题网站Demo(点击查看)
下面来总结一下我使用的一些前端技术和经验,希望能对大家有所帮助,大家如果有更好的意见欢迎留言,互相学习。

注重CSS书写顺序使很多前端开发新人所忽视的,其实这种习惯的好处不用说大家也能猜出一二,最最主要的还是方便日后的查询和维护。

将CSS代码结构化之后,让它符合树形结构,便于查找各级元素的CSS样式属性。
很多前端新人都把学习重点放在CSS Hack上,为了让大部分主流浏览器兼容自己的网页,想方设法在CSS代码中插入适用于各种不同浏览器的Hack。其实完全没有必要,通常情况下的网页,基本上都可以在不使用CSS Hack的情况下达到浏览器兼容效果,当然,这需要扎实的CSS基础和丰富的经验。

如果是IE6单独存在的问题,那我会单独命名一个CSS文件,把适合IE6的标准CSS样式写在这个文件中,并在网页里使用IE条件注释达到仅让IE6读取该CSS文件的目的。呵呵,出于我对IE6的愤慨之情,所以把文件名命名为这个比较不”和谐”的名字。
注释如下:
<!–[if IE 6]>
<link rel=”stylesheet” type=”text/css” href=”style/fuck_ie6.css” />
<![endif]–>

这个没什么好说的,作用类似图书的目录,大家有兴趣可以阅读彬Go关于CSS索引注释的文章《CSS最佳实践:为今后的项目制作空白CSS模板文件》,这里面详细讲解了关于如何写CSS索引注释和它的好处。
命名规范对于一个团队来说是相当重要的,对于个人来说也是有一定的好处的。之前彬Go发表过一篇《Web UI 设计(网页设计)命名规范》,是我个人总结的一些相关命名规范内容,感兴趣的话可以看看。

我个人认为这个没什么可说的,但是考虑到很多前端新人可能不太了解如何实现,所以简单说一下实现的原理。它的效果就是让导航(已选择)标签停留在相应的页面上。比如首页的话,导航标签的”首页”高亮;在”奖品详情”页面,相应的”奖品详情”标签高亮。
基本实现原理就是在不同的页面为<body>标签添加一个id。比如首页是<body id=”home”>,赛事报道页面则是<body id=”report”>,以此类推。然后就可以使用CSS专门针对不同的body id值设置CSS样式了。我的样式是这样的(已缩减):
#home .nav_home a:link,#report .nav_report a:link {background-position:0 -78px;color:#005ea5;}
CSS Sprites近期收到了国内前端们的热烈追捧,但我只在网站中的导航上使用了这个技术。为什么呢?原因有以下两点:
1.CSS Sprites增加了切图时间,但这个项目时间很紧。
2.这个网站的流量不大,使用CSS Sprites技术没什么意义,不会有什么明显的减小流量和请求的效果。
也就是说CSS Sprites的优势基本无法在这个网站上得到体现。所以我这次放弃使用CSS Sprites技术,从而换来了开发(切图)效率上的提高。
如果大家想了解更多关于CSS Sprites的知识,可以看看《CSS Sprites(CSS图像拼合技术)教程、工具集合》。

这个是必须的,这玩意儿地球人都知道,我就不多说了。但遗憾的是,这个认证只停留在我的Demo中,运营中的实际网站已经有很多错误了,是为网站填充内容的运营客服人员搞乱的,无奈一下….我也懒得改了,有Demo就行了。
天津麻将电视大赛专题网站Demo(点击查看)
好了,关于使用到的技术我目前只想到这些,以后可能还会补充新的。最后想说一下,前端开发并不是非要追求所有高级技术,并不是在一个项目中使用最高级的技术就能证明米的能力有多强。真正的高手是懂得分析一个前端开发项目,用最适合的前端技术实现当前项目的人,这样才能记得到质量有追求了最高的效率。比如我刚才说的CSS Sprites,它明显不适用于这个项目。再比如滑动门,我也没有使用在导航上,因为这个专题网站是有有效期的,基本上不会涉及到导航文字的改变,所以浪费时间在使用这些技术上的话毫无意义。我相信有更多的高手能使用比我更恰当的技术来完成自己的项目,所以在下才把这篇文章发上来,希望能互相学习。大家尽管拍砖啦….嘎嘎嘎~~
订阅彬Go以查看前端开发/CSS相关最新教程及资源。
43 条 关于 "近期作品:麻将电视赛官网UI设计+前端开发" 的评论
厉害啊!看着比较舒服!
好像你比较偏向蓝色系
博主好强,学习啦
技术体现也就nav这块。其他也没什么用到js文件了吧。
而且看了下源代码有点复杂。根本不用每个栏目都给他一个class
默认就好久定义a,和a:hover再定义一个a.on就是点击后的效果。
只要JS判断下点击后一个值给他返回就赋予现在用a写比较方便..以后我估计也是趋势.反正都是要连接的.
aaa
bbb
ccc
样式部分:
.nav{定义宽度}
.nav li{定义漂浮;定义间距}
.nav li a{定义宽度;定义padding;定义背景}
.nav li a:hover{定义经过背景}
.nav li a.on{定义链接点击后背景}
@声扬:
可以用纯CSS实现的的东西,为什么非要搬出来JS来实现呢?没有必要的啦……
设计的不够创新,就像是模板套用的一样。
@KE
阿柯啊,我们这个页面没法跟你们那个比的,风格不同的面向的用户也不同。找你这样说腾讯的网站也是在套用模板喽?嘎嘎嘎~~
@KE
哈,不过还是感谢大胆拍砖!我这个的重点在xHTML+CSS哦,本人不是专业视觉设计师…
天津前端牛人好像不很多,呵呵,博主挺强
学了好多,谢谢啊~
如果图也是你画的,做也是你做的那你牛逼,要是只是制作那真不怎么样,背景图都是死,很容易做的
回复楼上来自澳大利亚的看官:
很不幸,图是我画的,页面也是我做的,但我并不觉得我牛B。我头一次看到形容设计界面用”画”这个如此专业的动词,呵呵,您现在还停留在以背景图为标准呢呀…我火星了…嘎嘎嘎~~
我是新手,关于面包屑 有个疑问
如果是用cms的话 类似的栏目都用同一个模板,没法为每个页面的body定义不同的id,那怎么实现面包屑?
谢谢!
@john
你可以通过服务器端动态语言或者Javascript为导航标签动态添加类。
回复的真快… 谢谢了
无论是从设计还是从技术上都特别好,特别喜欢,学习了,绝对的偶像
希望有更多的ui和ue
那个banner很好,很喜欢!
能不能把源文件给我,我绝不用做商业用途
背景图用得比较多,是否可以组合成一个大图在用background-position控制?
呵呵,没有看到
“这个网站的流量不大,使用CSS Sprites技术没什么意义,不会有什么明显的减小流量和请求的效果。
”
会跟写出来还是不一样的哈,博主不但会,而且能写出来。。。
宽度兼容,不用hack,貌似可以这样(高度也一样):
width:200px; min-width:200px;
@ToFishes
我认为只要会,就能写出来啊,只不过更多的人比较懒,不愿意写出来罢了,呵呵…
你那个限制宽度的,指针多我的哪里的代码?我没有使用过hack啊,只不过是把针对IE6的width属性放在fuck_ie6.css文件中了.
你怎么都用png图片的?能给小生讲讲原因吗?
@网名
因为:
1.IE6以上版本都支持PNG 8位图片了。
2.在同等颜色数量下,png比gif图片要稍微小一些。
谢谢你的答复.
你用的都png是8吗?
为什么你的h2隐藏,有的用display:none;有的用text-indent:-9999px;
作品感觉还是保守了点。没有预料中的好。不过暴风彬彬满注重细节的,这点很专业。这篇文章也学到了蛮多技巧的。赞~~
不错的设计,博主有空介绍点好的学习资料啊
很受益,毕业一年也没正经设计过一个页面,顶一下。
@网名“为什么你的h2隐藏,有的用display:none;有的用text-indent:-9999px;”
后面半句是seo的一种技巧,语义…
前半句我觉得是没什么必要,统一为“text-indent:-9999px”就行,当然数值设置-2009足够了~~
@air & 网名:
首先,大家应该清楚display:none;和text-indent:-9999px;这两个的实际意义,虽然他们看上去是一样的(内容都没有)。但是display:none;代表的是彻底不占用文档空间,而text-indent:-9999px;则仍然要占用文档流的空间的。
一般情况下,如果这个容器内的内容和背景图等都不用显示,那就用display:none;,只让搜索引擎和屏幕阅读器看到内容。
如果不显示内容,显示背景图。那就使用indent:-9999px;。
关于为什么使用-9999px不使用-2009px的问题,我有两个理由:
1.9999输入速度快。
2.也许以后的浏览器分辨率会更大,容器的尺寸会更大,保不准会有很大的容器,如果你习惯了2009的输入习惯,拿到时候就要改掉这个习惯了。我想9999的分辨率不太可能达到吧,嘎嘎嘎~~
好!受教~~
太爱彬彬了,怎么才发现你这~
膜拜
整个博客 和 文章 都不错的 向您 好好学习学习
你太牛了
顶
顶
[...] 從lenbol辭職后買了一個新筆記本,神舟的天運F4200,3000塊的價格,足夠平民化,配置也基本夠用。買這個本本給偶的職業生涯帶來幾個小變化,比如開始在液晶屏上搗鼓PS,雖然吐血且非常不專業,但也從另一個角度深刻理解了不同顯示器下的色差;再比如常年使用臺式機,過去對寬頻顯示模式下的網站設計理解不夠,現在比較了解了;再比如一咬牙安裝了IE8,忍受它偶爾的假死狀態之余,現在對IE,Chorm和Firefox的全面兼容做得比過去好,并開始考慮全面升級自己以后寫的樣式表,即開始全面使用CSS2的選擇器,并將CSS3掌握起來,孤立IE6(這是從彬Go處得到的靈感,未實施過,躍躍欲試哈)。 [...]
同行问好~O(∩_∩)O~
Flex
很好! GOOD
老实说,版本2确实好于你的版本1,这是看到得结果。
你版本1 的解释和理由我很认可,但是实现的不够,所以还是那个版本2好些:)
斌兄,非常喜欢你Blog,能否做一个友情链接
很棒!值得学习
又一篇高质量的文章
最欣赏的是这句话:
真正的高手是懂得分析一个前端开发项目,用最适合的前端技术实现当前项目的人,这样才能记得到质量有追求了最高的效率。
在很多项目中都是使用了别人的框架 代码乱到自己都有些看不下去了,但事实证明,效率才是第一位的,在真正的项目中,除了同行(比如上面看代码看到很细的朋友),没有几个人会关注你代码写得是不是很beauty,他们眼里只有页面的第一印象如何如何
非常喜欢你的设计 代码我不懂 头部那个banner真的挺好的
我要评论 >>