导航

毅博客

分享本身就是件快乐的事,我因别人得到帮助而感到幸福

« 破茧!2advanced正式改版了是繁体还是简体 »

标准下隔行换色的思考

本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
请大家帮忙:行文措辞难免有错,请大家在阅读时发现错误通过评论方式告诉我。谢谢大家

我们以前在DW中用表格布局着我们的网页的时候常常用到一种设计手法--隔行换色。也就是新闻列表或是列表类的每隔一行就换另一个色彩这样显得很漂亮也很合适阅读。所以这种手法被广大的设计师们收入囊中作为自己的又一把工具刀。但是随着网页标准浪潮的来袭,这种设计效果慢慢变得没有了,原因主要是来自于标准化后的这种效果的实现上。

由于标准后我们都用UL来代替了表格,代码虽然少了很多,但是好像效果也随之少了。隔行换色也遇到了瓶颈。我采用过CLASS方式来进行隔行换色:

<ul>
  <li class="one"></li>
  <li class="two"></li>
  <li class="one"></li> 
  <li class="two"></li>
</ul>

我们看到上面的代码所表现出来的是每行的CLASS都不一样,通过这样的方式的确可以解决隔行换色的问题,但是一直来我都被程序员告知这样写法程序没办法写。我一直很郁闷:用表格时他们是怎么写的?

当然抱怨归抱怨,问题总是需要解决的,之后有朋友想过用JS来实现隔行换色,这种设想在网页标准研究联盟中得到了反驳,认为样式的事没必要用行为去实理,并且用JS来实现的效果并不一定有CSS来解决的好。我同意这样的见解,并且我主张的是大背景实现。什么叫大背景实现呢,意思就是说通过在父级设定背景从而使得当前级得到隔行换色或是隔N行换N色。

<div class="list"> 
 <h3><span>领导讲话</span><em><a href="" title="">点击这里</a></em></h3> 
 <ul> 
  <li><a href="" alt="">假字以数十字为基础假字数…</a><em>(2006-12-18)</em></li> 
  <li><a href="" alt="">假字以数十字为基础假字数…</a><em>(2006-12-18)</em></li> 
  <li><a href="" alt="">假字以数十字为基础假字数…</a><em>(2006-12-18)</em></li>
  <li><a href="" alt="">假字以数十字为基础假字数…</a><em>(2006-12-18)</em></li> 
  <li><a href="" alt="">假字以数十字为基础假字数…</a><em>(2006-12-18)</em></li> 
 </ul> 
</div>

上图是我前几天刚完成的一个项目中的一个实例应用,大家可以看到我采用的是两行背景重复。而这个背景图是定义在UL上的而不定义在LI上。这样又使得我们少写一点代码,让代码显得更加的干净。同时这样技巧通过举一反三的思考就能做出更多很好玩的样式来,比如我们让每一行都不一样,或是让每一行都像是纸页脚卷起来一样,或是其它的什么花样,那就要看你能想出什么样的花招来了!

作者 / 振之
网站 / 毅博客 http://andy.andymao.com/
电话 / (86)025 5890 9295
  • quote 2.振之
  • http://www.jonmax.com/
  • LI 是包含UL里的,所以当LI为一条条有相同的高度时,我们在UL时设置一个背景,让这个背景平铺下来,这样不就可以让人觉得是LI上的背景了嘛。而这个背景依据LI的高度设定两倍或是更多,做上不同的色彩或是样式,作为背景,从表现来看,LI的每条下面的样式就会不一样。

    这篇文章主要是讲思路与概念,不提供实例讲解,到底要什么做实践一下就清楚了。

    另请不要用“有点不明白”作为名称,这又不是真名也不像是网名。
  • 2006-10-10 2:35:22 回复该留言
  • quote 3.冷韵
  • http://www.lenvo.cn
  • 我在blog前一个版本中就是这么弄的,不光应用隔行换色,可以数个图标循环,效果可以看一下http://chenefei.com右侧项目列表前的小色块。但他把行距设置的不合理,这样有个问题如果要换行距图片就得替换……
  • 2006-10-16 21:24:18 回复该留言
  • quote 6.ant
  • 有道理
    我建了一个适合css初学者的群
    请有意者加入
    33036725
    我门一起讨论
  • 2006-11-17 15:11:34 回复该留言
  • quote 9.cougar
  • 第一个的class="one"class="two"那个怎么不能用程序实现呢??
    那个程序是新手吧
  • 2006-12-22 14:06:39 回复该留言
  • quote 10.Gareth
  • 不太清楚作者说的程序没法写是什么意思。我有一个想法不知道能不能实现:
    思路如下:
    funtion ChooseClass (Num){
    if (Num%2){
    classStr="one";
    else
    classStr="two";
    return classStr
    }

    在程序开始的地方设置全局变量 Num;
    在循环体中
    for(Num=1;Num<=RepeatNum;Num++){
    ......
    //每次写 class的时候调用 ChooseClass(Num)
    class=<%=ChooseClass(Num)%>
    ......
    }

    不知道这样可不可以。
  • 2006-12-27 18:48:38 回复该留言
  • quote 12.Linkin
  • 哈哈..隔行换色在ASP.NET中可以很容易实现..但要做到符合3WC标准就有点难....因为是要用到ASP.NET控件来实现....所以会产生一些多余的HTML代码(相对于标准来说的)..
  • 2006-12-28 14:35:05 回复该留言
  • quote 14.没明白者
  • 看了你写的,想学下,不过还是没明白,能不能在这里直接把css样式写好,做个列子出来啊,呵呵,可以加我qq21529894,教下吗?
  • 2007-1-12 11:08:15 回复该留言
  • quote 15.Zen
  • http://zenin.cn
  • 问下,如果用js行为判断,是与标准有冲突吗?之前我也像您这样做的,但这样li就规定了一行的高度。
  • 2007-2-16 10:41:34 回复该留言
  • quote 17.振之
  • http://www.andymao.com
  • TO:Zen
    理论上说,根本不需要动用JS来做处理。但是用的话没什么,可以理解。

    TO:jarway
    行为控制样式算不上是禁区,但是这样并没有什么好处。行为也没有必要去管样式的事,这有点狗拿耗子的意思,虽然能拿,但不是它的工作,从某种角度来说用JS来控制样式并不是十分完美的。
  • 2007-4-19 19:47:13 回复该留言
  • quote 18.sumertea
  • 大哥,我对后面的样式不理解!!能不能麻烦您把这段代码给我发过来,让我再好好的研究研究,谢了!我的QQ号是493566950!期待你的回信!
  • 2007-4-29 16:27:48 回复该留言
  • quote 21.嗰個人
  • 請問有後面的CSS代碼嗎? 還有,“但是一直来我都被程序员告知这样写法程序没办法写。”為甚麽呢? 我問了一下我們這邊的程序員,他説可以做,以前做TABEL的時候也是可以做的。
  • 2007-6-26 10:23:46 回复该留言
  • quote 22.振之
  • http://www.jonmax.com
  • 关于CSS代码过几天我会加上,最近一直在忙!至于说程序员说不不好写也是因为程序员的个人因素。理论上是可以实现的!
  • 2007-6-26 11:24:31 回复该留言
  • quote 25.cc
  • 这个办法确实很讨巧。
    唯一的问题是,行距必须要固定。
  • 2007-10-30 11:28:08 回复该留言
  • quote 26.映彩衣
  • 你说的大背景也就用图片可以实现,如果用底色就不可以了,
  • 2008-4-18 18:23:56 回复该留言
  • quote 27.振之
  • http://andymao.com/
  • @映彩衣,如果直接用底色可以方便实现那就不用我在这里大费唇舌的说这一堆话了。
    @cc,这是一个变通的办法,不是万能的。如果需要更强的就需要借助JS的力量了!
    @All,感谢各位对振之的支持
  • 2008-4-25 9:54:55 回复该留言
  • quote 28.Marc
  • 我也有个问题,Li行距定义多少那个图片就定义这个行距的2N倍吗?
  • 2008-6-29 1:44:43 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-Blog .Theme from Google黑板报 By Washun

Copyright 2005-2007 Jonmax.com. All Rights Reserved.

Search

最新评论及回复

最近发表

资助者链接