怎么在CSS内自由定义变量?

动态创建了一组div列表,类似于这样<divid="div1">内容1</div><divid="div2">内容2</div><divid="div3">内容3</di... 动态创建了一组div列表,类似于这样
<div id="div1">内容1</div>
<div id="div2">内容2</div>
<div id="div3">内容3</div>
...
现在我想让id以奇数结尾的div背景为红色,id以偶数结尾的div背景为蓝色,如此交替,怎样在CSS里实现?
展开
 我来答
从前有个T
2013-03-20 · TA获得超过5345个赞
知道小有建树答主
回答量:685
采纳率:0%
帮助的人:766万
展开全部
用伪类:nth-child就可以做到了,不过你的这些DIV需要有一个父级元素,例如下面这样:

<div class="container">
<div id="div1">内容1</div>
<div id="div2">内容2</div>
<div id="div3">内容3</div>
...
</div>

然后在CSS里面只要作下面的定义就行了:

.container:nth-child(2n-1) {background:red;}
.container:nth-child(2n) {background:blue;}

这是一个CSS3的样式,如果需要让它兼容IE8及以下浏览器的话,就要引入jquery库和一个js小插件,可以用下面的写法:
<script type="text/javascript" src="jquery.min.js"></script>

<!--[if (gte IE 6)&(lte IE 8)]>
<script src="selectivizr.js"></script>
<![endif]-->

其中selectivizr.js这个百度一下就能找到的,是一个很小的JS文件,专门解决一些CSS3下的选择器不兼容早期浏览器的问题的。
缓步莫迟疑C
2013-03-20 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6217
采纳率:73%
帮助的人:6517万
展开全部
如果是IE下的话,你倒是可以试试这样定义CSS
div {
background-color:expression(parseInt(this.id.replace(/\D/gi,''))%2==0?'#0000FF':'#FF0000');
}
但不是所有浏览器都支持CSS中使用expression的
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ck_2036
2013-03-20 · TA获得超过906个赞
知道小有建树答主
回答量:904
采纳率:33%
帮助的人:734万
展开全部
不要用id 用class
<div class="line">内容1</div>
<div class="line">内容2</div>
<div class="line">内容3</div>

.line:nth-child(odd) { background-color: red; }
.line:nth-child(even) { background-color: blue; }

IE版本低于9不支持:nth-child
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
前海中天资本
2013-03-20 · 超过27用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:78.5万
展开全部
css里面无法实现,只能自己手动设置奇数偶数div的背景色
要想自动实现,需要用js
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
兰亭幽草
2013-03-20 · TA获得超过2946个赞
知道小有建树答主
回答量:1453
采纳率:46%
帮助的人:372万
展开全部
.line:odd { background-color: red; }
.line:even { background-color: blue; }
IE6下需要插入一张类库才能使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式