Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 如何在每个节中仅显示此类型的第一个组件?_Css_Reactjs_Sass_Styled Components - Fatal编程技术网

Css 如何在每个节中仅显示此类型的第一个组件?

Css 如何在每个节中仅显示此类型的第一个组件?,css,reactjs,sass,styled-components,Css,Reactjs,Sass,Styled Components,我有x数量的部分,他们有x数量的子部分,如果条件为真,他们会显示一个小弹出窗口,但情况可能是,条件可能为真,每个部分超过一个,但我只想显示每个部分的第一个弹出窗口 我尝试了:first of type,(:not),为弹出窗口设置一个id,all设置一个display:none,为不是第一个类型的部分的所有元素设置一个display:none <div> <section> <Subsection><PopUp /> </S

我有x数量的部分,他们有x数量的子部分,如果条件为真,他们会显示一个小弹出窗口,但情况可能是,条件可能为真,每个部分超过一个,但我只想显示每个部分的第一个弹出窗口

我尝试了:first of type,(:not),为弹出窗口设置一个id,all设置一个display:none,为不是第一个类型的部分的所有元素设置一个display:none

<div>
   <section>
      <Subsection><PopUp /> </Subsection>
      <Subsection> </Subsection>
      <Subsection><PopUp /> </Subsection>
   </section>
   <section>
      <Subsection> </Subsection>
      <Subsection> </Subsection>
      <Subsection><PopUp /> </Subsection>
   </section>

   <section>
      <Subsection> </Subsection>
      <Subsection><PopUp /> </Subsection>
      <Subsection><PopUp /> </Subsection>  
      <Subsection><PopUp /> </Subsection>
      <Subsection> </Subsection>
   </section>
<div>
}

这只是一个示例,我还有几个样式、组件和类,但是任何与此相关的解决方案都适用于我的原始代码

但是,作为参考,这是样式化组件

export const ProWrapper = styled.div`
  position: absolute;
  bottom: 35px;
  display: ${({ open }) => !open && 'none'};
`; /popup component/

export const SectionWrapper = styled.div`
  ${ProWrapper}:first-of-type {
    opacity: 0.7;
  }
`; /section component/
在这个例子中,我设置了不透明度:0.7,页面中的所有弹出窗口都得到了这个规则,而不仅仅是第一个类型

更新:

我用javascript解决了这个问题,用一种我认为更简单的方式,javascript是我的第一个选择,但我无法让它第一次工作

解决方案:我为每个部分创建一个flag=false,只有当flag为false时,弹出窗口才会呈现,并且我在弹出窗口呈现时将flag值设置为true


尽管如此,我还是不明白为什么我无法通过css访问第一个类型,因此,我不会关闭此问题,因为通过css处理此问题的问题仍然存在。

您是否尝试过
小节:非(:第一个孩子)弹出窗口
?是的,@mulsun,但它只为子节中的弹出窗口设置规则,我的意图是每个小节只呈现一个弹出窗口,而不是每个小节。
section subsection:not(:first child)popup{display:none}
隐藏每个小节的第一个小节的弹出窗口。还是我没有得到?你能提供JSFIDLE吗?
export const ProWrapper = styled.div`
  position: absolute;
  bottom: 35px;
  display: ${({ open }) => !open && 'none'};
`; /popup component/

export const SectionWrapper = styled.div`
  ${ProWrapper}:first-of-type {
    opacity: 0.7;
  }
`; /section component/