【问题标题】:How to apply style on first child of multilevel recursive classes如何在多级递归类的第一个孩子上应用样式
【发布时间】:2022-01-11 00:54:22
【问题描述】:

我试图仅在主容器的第一个孙子上应用样式。 结构是这样的。

.container {
  display: flex;
}

.container.main {
  border: 1px solid gray;
}

.container.main .item>* {
  border-color: red;
}

.item {
  width: 30px;
  height: 30px;
  border: 1px solid blue;
  margin: 1px 1px 2px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="style.css">
  <title>Document</title>
</head>

<body>
  <div class="container main">
    <div class="container">
      <div class="item"></div>
      <div class="container">
        <div class="item">

        </div>
        <div class="container">
          <div class="container">
            <div class="container">
              <div class="item"></div>
              <div class="item"></div>
              <div class="item"></div>
              <div class="container">
                <div class="item"></div>
                <div class="item"></div>

              </div>
            </div>
          </div>
          <div class="item"></div>
        </div>
      </div>
    </div>
  </div>
</body>

</html>

我希望第一个孩子是黄色的,最后一个孩子是点缀的。 我怎样才能做到这一点? 正如您所看到的,每个孩子可能在不同的容器中都有一定的深度。

【问题讨论】:

  • 请注意,孩子 (a &gt; b) 和死者 (a b) 之间存在差异。在您的代码中,.container.main 的唯一孩子是 .container.main &gt; .container
  • 好的,我明白了。无论多深,我都希望第一个 .item 受到影响。并感谢您的宝贵时间。

标签: html css css-selectors


【解决方案1】:

由于级别不同,仅使用 CSS 无法做到这一点。但是,使用 CSS 和 javascript 的组合:

.item.first { /* some style */ }
.item.last { /* some other style */ }
const root = document.querySelector('.container.main');
const items = root.querySelectorAll('.item');
items[0].classList.add('first');
items[items.length-1].classList.add('last');

【讨论】:

    猜你喜欢
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 2013-08-22
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多