Gamehome

关注Web Standard!

导航

一个挺有意思的CSS留言板

效果

博皮工作无限期拖延...很多种因素,时间、精力、最主要的还是能力,想做一个心仪的皮肤,但却迟迟下不了手,万事开头难,也因我“眼高手低”吧。

虽然没有在博皮,但在一次无意看到一个外国博客的留言板显示样式时很是感兴趣,是个做搜索引擎优化方面的高手,网址是:http://www.seomoz.org/blog/,下图为其效果图:

树型留言板效果图
效果图

HTML

Code

CSS

Code

 

简单说明

#comments /*留言板的主框架,大小可按需要调整*/
ul#comment_tree 
/*树型列表的主干,可想像成树的主干,其余的留言信息为其子分支、孙分支*/
.comment_wrapper 
/*用户留言信息的外套*/
.member 
/*用户信息,下级元素包括名字(.member span)和头像(.member img)等*/
.comment 
/*留言内容外框,下级元素包括留言时间(h6 comment_date),留言内容(comment_content) 等留言信息*/
ul.replies 
/*留言回复列表,相对上级ul向右偏移固定距离,树型留言实现的核心,html中有两种replies标签,一种是作为父标签,另一种则作用子孙标签出现。(这里通过计算使父标签的replies的margin-left设成了120px,子孙replies设成了24px,这个可以根据 comment_li_bg.gif的宽度自行调整)*/
li.reply 
/*实现树型留言的“分枝”效果,此“枝”用comment_li_bg.gif图片实现*/

 

实现原理其实就是利用列表的继承和层叠,原网站中使用了子选择器的方法来实现留言向右偏移的分级效果:

ul#comments_tree > li > ul.replies {
    border-left
: 1px solid #DDD;
    margin
: 0 0 0 120px;
    padding-top
: 1.0em;
}

ul#comments_tree > li > ul.replies ul.replies 
{
    border-left
: 1px solid #DDD;
    margin
: 0 0 0 24px;
    padding-top
: 1em;
}

然而,IE6以下的浏览器是不支持这功能的,原网站使用了普通的留言列表样式来应付IE6以下的浏览器。


于是我便尝试用“*”这个通用选择器对父级replies的子孙列表应用了样式:


ul#comment_tree  li  ul.replies{
    border-left
:1px solid #ddd;
    margin-left
:120px;
    padding-top
:1em;
}    

ul#comment_tree  li  ul.replies * ul.replies
{ /*:KLUDGE: "*"指的是将所有ul.replies下的ul.replies,
这种方法替代了子选择器方法,从而可令IE6以下版本也可支持
*/
    margin-left
:24px;
    border-left
:1px solid #ddd;
    padding-top
:1em;
}

 这样一来就可以实现IE6以下的浏览器了,不敢说是真正改良,但在各浏览器测试过并没有问题。

html中的deep-n,并没有定义相应的样式,这是为动态化而做准备的,在这里也使用也为了方便观察代码。

心得

  • 代码规范好重要。 看完自己写的html才写到了第4级留言,代码量就已经相当壮观了,而且还是一个劲的ul和li,所以敲代码时要善于利用Tab键。
  • 调试时要基于Firefox,作为标准浏览器,只要它能正常显示,IE方面如果不正常就针对样式进行调整或使用Hack(不得已的情况下)。
  • 用Firebug进行代码和布局的察看,说来汗颜,最近才开始使用Firebug来配合一些开发工作,而这个实例是我1个月前做的,当时想看源码就用TelePort这个工具把那原网页搬回本地研究- -b,现在才知道Firebug太强大了!

CSS练习也算是做得不少了,但这是我第一次写CSS文章,觉得自己的语言表达能力还是太菜了些,看不明白的请见谅...

发现写CSS并不难,难的是对CSS样式和文件的规划,最近在研究一些大型网站的CSS规划,但是网上的相关文章太少了。

 

下面是打包的源文件

css样式表实例点击下载图标下载
css样式表实例下载

posted on 2009-07-09 15:17  Gamehome  阅读(10378)  评论(0编辑  收藏  举报