实现背景交替的几种方法

Saturday, August 01, 2009 吉光片羽 1

今天在做评论列表的时候,又遇到了背景交替的麻烦。用JQuery很容易就能解决啦,可是就为了这个导入JQuery库,似乎太没必要。所以又找来以前用到过的一个JS,同时,还发现有个纯CSS就能解决的方法,下面来做个总结,以便今后开发的时候不用再东奔西跑。也希望能给同样需要这一效果的朋友提供一个更简单合适的方法:

1. 先来看CSS的,很简单,应用到了expression,非IE的主流浏览器可以使用:nth-child()来实现,详细见第4个方法:
CSS 样式表
ul{list-style:none;font-size:12px;line-height:20px;color:#666;} 
ul li{background-color:expression(this.sourceIndex%2==0?'#EAF8FD':'#ffffff');}
HTML :\ Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行 运行此代码
注意,这个IE专属的玩意是不支持FF的。

2. 再来看个JS的:
Javascript 代码
<script type="text/javascript">
objName=document.getElementById("list01").getElementsByTagName("li");
for (i=0;i(i%2==0)?(objName(i).className = "li01"):(objName(i).className = "li02");
}
</script>
CSS 样式表
ul{list-style:none;color:#666;font-size:12px;}
.li01{background:#EAF8FD;}
.li02{background:#fff;}
HTML :\ Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行 运行此代码
很可惜,这个也不支持FF。

3. 下面这个JS的,IE、FF都通过,不过要注意的是body里要写个onload="initUI":
Javascript 代码
<script type="text/javascript">
function initUl(){
var a=document.getElementsByTagName('ul');
for (var i=0;i var v=document.getElementsByTagName('li');
var ii=1;
for (var j=0;j if (v[j].parentNode==a[i]){
if (ii++%2==0){
v[j].className="l2";
}
else{
v[j].className="l1";
}
}
}
}
}
</script>
CSS 样式表
.l1{background:#ffffff}
.l2{background:#f4f4f4}
HTML :\ Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行 运行此代码

4. 接下来是一个JS库,IE7.js,可以直接从Google引用该代码:

<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script>

注意,作者的项目名称叫IE7.js,但我们这里引入的是IE8.js,因为IE8.js才支持CSS 选择器。利用到的是

:nth-child() /*括号里可以是特定的某个数值 或者 even(表示偶数) odd(表示奇数)

这个属性,同时,他还是CSS3的一个属性,也就是说,在不久的将来,要实现表格或列表背景交替就不用那么麻烦了!
HTML :\ Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行 运行此代码
注意,这个属性好像FF3以上才支持,本人使用3.5测试通过的。也就是说,如果不针对IE,主流浏览器都可以利用这个CSS3属性来实现背景交替效果。

5. 最后,当然是万能的JQuery啦!同样也是利用到了CSS 选择器的概念,同样有odd(偶数),even(奇数)两种:
JQuery 代码

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function(){
$("ul li:odd").css({background:"#999"});
});
</script>
HTML :\ Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行 运行此代码
担心什么?这可是所有浏览器都兼容的哦!

如果你有什么见解,欢迎参与评论!

点击这里获取该日志的TrackBack引用地址

日志标签: JQuery  JS  css  Firefox  IE  背景交替  教程  

已有人对此文发表了评论

  1. 引用该评论 nane 8/1/2009 11:59:33 PM 回复
    恩,沙发

发表评论:

邮箱网址为选填;若您注册了GRAVATAR,请填写邮箱(不会公开),否则最好不填,您可在提交评论前选择表情头像;点击他人头像可引用其评论。插入UBB

About me

Name: KandyTang
Age: 20+
Location: Guilin, China
QQ: 121885959
Email: KandyT@qq.com

My Works

中文酷博聚合 汽车手绘·视频·教程 史努比(中文)网 免费的PJBlog皮肤 淘宝创意导购 桂林{摄影}品牌

Gallery

Unnamed Album

Unnam... (4)

复线文字LOGO设计

复线文字L... (10)

订书钉的创意-微型城市

订书钉的创... (4)

2010元宵烟火

2010元宵烟火 (7)

国外贺卡设计欣赏

国外贺卡设计欣赏 (20)