【问题标题】:Select first five elements of a div using class [duplicate]使用类选择div的前五个元素[重复]
【发布时间】:2021-01-16 20:46:09
【问题描述】:

<div> 中的元素将是动态的类型和计数。 我需要模糊前五个元素。 无论是什么类型,如何选择.doc-container<div> 的前五个元素?

我已经看到我们可以使用 nth:child 但他们需要一些元素,例如 li:nth:child(2) 等。

有没有办法解决这个问题?

<div class="doc-container">
  <p>one</p>
  <h1>two<h1>
  <p>three</p>
  <span>four</span>
  <p>five<p>
  <h3>six</h3>
</div>

【问题讨论】:

  • 最简单的版本:用循环遍历.div-container.childrens,并在第五个孩子之后停止。
  • 使用纯 css 怎么可能?
  • 为什么只有css?还有javascriptjquery标签。
  • 因为如果你可以用 css 做 css 比 jquery 或 js 更好
  • @Sfili_81 那么OP不应该添加不相关的标签;)

标签: html css


【解决方案1】:

这可能是我解决它的方法,它可能不是最好的。不使用库

console.log(Array.from(document.getElementsByClassName('doc-container')[0].children).slice(0, 5))
<div class="doc-container">
  <p>one</p>
  <h1>two</h1>
  <p>three</p>
  <span>four</span>
  <p>five</p>
  <h3>six</h3>
</div>

【讨论】:

    【解决方案2】:

    如果你想获取前两个元素,试试这个

    .doc-container > :nth-child(-n+2){
      color: green;
    }
    <div class="doc-container">
       <p>one</p>
      <h1>two</h1>
      <p>three</p>
      <span>four</span>
      <p>five</p>
      <h3>six</h3>
       
     </div>

    只需将 2 替换为您要选择的元素数量即可。

    【讨论】:

      【解决方案3】:

      使用公式-n + 5,意思是“第五个元素及以下”。使用&gt; 选择器,您只选择父级的直系后代。使用*:nth-child,无论类型如何,您都可以选择每个子元素。

      .doc-container > *:nth-child(-n + 5) {
        filter: blur(10px);
      }
      <div class="doc-container">
        <p>one</p>
        <h1>two</h1>
        <p>three</p>
        <span>four</span>
        <p>five</p>
        <h3>six</h3>
      </div>

      【讨论】:

      • 是的...代替选择器类型..只需放 *...很好...工作得很好..谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      • 2012-04-17
      • 2016-05-09
      • 2023-04-09
      • 1970-01-01
      • 2021-04-05
      相关资源
      最近更新 更多