嵌套列表css规则,以支持无限深度

时间:2013-06-11 14:55:11

标签: css

我有以下css:

.navi-live ol{
  margin:0;
  padding:0;
  list-style-type: none;
}
.navi-live li{
  margin:0;
  padding:0px;
  list-style-type: none;
}
.navi-live ol .nav-item-contents{
  padding-left:20px;
}
.navi-live ol ol .nav-item-contents{
  padding-left:40px;
}
.navi-live ol ol ol .nav-item-contents{
  padding-left:60px;
}
.navi-live ol ol ol ol .nav-item-contents{
  padding-left:80px;
}
.navi-live ol ol ol ol ol .nav-item-contents{
  padding-left:100px;
}

这是有效的(我不想缩进li或ol,但缩进内容就像li和ol缩进一样),但是限制了我创建的css规则的数量。

如何在不限制为每个我想支持的新缩进级别创建新规则的情况下执行上述操作?

jsfiddle:http://jsfiddle.net/k4hjp/1/

谢谢,

1 个答案:

答案 0 :(得分:4)

您应该能够对所有nav-item-content div进行简单的选择,在递增填充变量的同时迭代每个div。

jsfiddle

//put this inside a function and call it when you want to append to the navigation
var padding = 20;
$('.nav-item-contents').each(function(){
    $(this).css('padding-left',padding+'px');
    padding+=20;
});

修改

添加了如何追加儿童的演示:jsfiddle