【问题标题】:Coloring every second sub-layer in CSS在 CSS 中每隔一个子层着色
【发布时间】:2015-12-23 00:05:34
【问题描述】:

我正在开发一个包含层次结构的白板应用程序。

所以我的问题是:如何在 CSS(或者如果需要 js)中为每一秒子层着色?

示例样式

ul {
  width: 256px;
  min-height: 64px;
  padding: 16px 0 16px 16px;
  background-color: blue;
}
/*FOLLOWING SHALL BE REPLACED BY AN SELECTOR OR JS-ALGORITHM*/

div>ul>ul,
div>ul>ul>ul>ul,
div>ul>ul>ul>ul>ul>ul,
div>ul>ul>ul>ul>ul>ul>ul>ul {
  background-color: red;
}
<div>
  <ul>
    <ul>
      <ul>
        <ul>
          <ul>
            <ul>
            </ul>
          </ul>
        </ul>
      </ul>
    </ul>
  </ul>
</div>

我的目标是为第 2 行和第 4 行中的 div 着色(等等:6、8、10,...如果我要使用更多子层)

【问题讨论】:

标签: javascript html css css-selectors parent-child


【解决方案1】:

没有 CSS 选择器。但是,您可以使用 JavaScript (jQuery) 中的递归函数来实现它:

colorList($('div > ul'));

function colorList($ul) {
    $ul.css({'backgroundColor': 'red'});

    var $nextElement = $ul.find('> ul > ul');
    if($nextElement.length) {
        colorList($nextElement);
    }
}

【讨论】:

  • 我认为您正在动态创建 HTML 代码,因此只需向需要设置样式的 &lt;ul&gt; 添加一个类会更容易。
  • 是的,我们会这样做,所以 php 会生成类
猜你喜欢
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 1970-01-01
相关资源
最近更新 更多