【问题标题】:how to target an element child in css如何在css中定位元素子元素
【发布时间】:2021-06-13 16:08:16
【问题描述】:

大家好,以我为例,我想以 3 元素为目标,并且我的标签不同,3 元素可以是 p 或 div 或其他东西,所以我只想定位 3 元素不管是什么,我都想选择 3 元素。

如果有帮助,我可以用 CSS 做到这一点吗?

例如:

<div>
  <p></p>
  <span><span>
  <div></div> //3 element here is div
  <a></a>
</div>

或者:

<div>
  <div></div>
  <span><span>
  <p></p> //3 element here is p
  <a></a>
</div>

【问题讨论】:

  • 你的例子不是很有帮助,因为你没有说你想用它们做什么。您的意思是要为 third 元素设置样式吗?如果是这样,请查找“第 n 个孩子”。
  • 你的意思是这样div &gt; *?或div *:nth-child(3) 或?
  • 这能回答你的问题吗? Select all child elements recursively in CSS
  • ^^ 这有点与您的问题相反,但解释了选择所有孩子和所有后代的方式之间的区别

标签: html css


【解决方案1】:
  1. 如果您总是有 4 个标签,并且想要定位前 3 个标签,

div > *:not(:last-child){
  background-color: red;
}
<div>
  <p>AAAAAAAAAAAAAAA</p>
  <span>AAAAAAAAAAAAAAA</span>
  <div>AAAAAAAAAAAAAAA</div>
  <a>AAAAAAAAAAAAAAA</a>
</div>
  1. 您还可以定位前 3 个元素,如下所示,

div > *:nth-child(-n+3){
  background-color: red;
}
<div>
  <p>AAAAAAAAAAAAAAA</p>
  <span>AAAAAAAAAAAAAAA</span>
  <div>AAAAAAAAAAAAAAA</div>
  <a>AAAAAAAAAAAAAAA</a>
</div>

【讨论】:

  • 我只想始终定位 3 个元素,无论它是什么
  • div > :nth-child(1), div > :nth-child(2), div > :nth-child(3){ 背景:红色; }
  • code 7 ,我已经更新了答案。您也可以检查第二种方式。
【解决方案2】:

如果你只想选择父 div(或任何其他元素)的前三个子元素,你可以这样做,

.parent:nth-child(1),
.parent:nth-child(2),
.parent:nth-child(3){
   //Your styles
}

上面的代码将选择父 div 的第一个、第二个和第三个孩子,我给了一个父类。 此外,如果您想选择该父 div 的所有子项,您可以简单地这样做,

.parent > *{
  //Your styles
}

此代码将选择 .parent div 的所有子项

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2019-03-16
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多