纯CSS实现列表的背景色交替及鼠标划过变色

用纯CSS实现的列表背景色交替效果, 另外附加了个鼠标划过变色. 其实, 这是08年写的一个效果, 当时博客还叫Bluebird’s sky, 哈, 如今仅剩个本地的躯壳了, 域名都过期了.
纯CSS实现列表的背景交替及鼠标划过变色
列表背景色交替实现原理很简单,用一张二倍于列表单行高度的背景图,然后,上半部分PS成奇数行颜色,下半部分PS成偶数行颜色,然后将这张图定义给列表外围元素平铺.这样一来,纵使有万千行,它也会轻而易举的交替颜色.相之于JS实现,它只有寥寥几行代码,是不是轻了许多,但有一点, 背景图必须算好, 列表高度值也必须固定, 否则就悲剧了.
鼠标划过效果,不多言了, 定义元素的:hover. 悲剧的是, 万恶的是IE6不支持.
CSS核心代码点此查看DEMO

#demo dl{background:url(http://mrthink.net/demo/images/bg_dd1x60.png)}
#demo dl dd{padding-left:8px;height:30px;line-height:30px;cursor:pointer}
#demo dl dd:hover{background-color:#888;color:#fff}

另, 本文仅是一种CSS思路, 实际应用,请自行权衡项目需求.

共有 13 条评论.

发表评论3,267 Views

  1. 不兼容 国内IE6还很多

    [回复]

  2. 背景图能解决能解决背景色交替的问题是还很不错的想法,这个例子为什么要用dl和dd?ul和li不行么?如果列表内文字是一个a标签的话,在ie6下应该可以实现鼠标划过变色的问题吧,我是初学者,请多指教!

    [回复]

    Mr.Think 回复:

    @Mr blood, ul,li也可.a标签文字变色定义伪类样式即可.

    [回复]

  3. 比较炫,牛。

    [回复]

  4. 不兼容决定了一切。js一行代码的事。

    [回复]

    Mr.Think 回复:

    @oophper, 哈,不能说不兼容决定了一切吧? Css3与Html5目前也不兼容,你也无视吗

    [回复]

  5. 很不错的思路,值得学习

    [回复]

  6. 好是好 只能做死了 要想兼容两个 挺麻烦的 直接搞一个就好 省的加载慢

    [回复]

    Mr.Think 回复:

    @***网, 本文仅是一个思维. 具体项目实现请依实际情况选择.

    [回复]

  7. 一般都做分级支持了,能用原生的:hover尽量用,不能用的就JS。

    [回复]

  8. 很聪明的写法,学习了。多谢博主

    [回复]

  9. 隔行变色的想法真不错,不过你是用在dl和dd上,用在表格上好像IE下又有问题……

    [回复]

    Mr.Think 回复:

    @ZH CEXO, 这种实现方式是有局限性的. 但只要行的高度能固定应该也是可以的吧..

    [回复]

发表评论[无需注册]