SCSS: pseudo-class :first-of-type 影响所有类型

SCSS: pseudo-class :first-of-type affects all types

关于 :first-of-type pseudo-class,我想寻求您的帮助。请检查我正在使用的简化代码示例 - :first-of-type 影响所有类型或什么都不影响。

HTML:

<div id='nav'>
  <div class='row'> 

    <div class='cell'>
      <strong>Subject 1</strong>
      <ul>
        <li>item 1</li>
      </ul>
    </div>

    <div class='cell'>
      <strong>Subject 2</strong>
      <ul>
        <li>item 1</li>
      </ul>
    </div>  

  </div>
</div>

SCSS:

#nav{
  @extend %filter_full_size;

  strong{
    color: $color_blue;
    width: 100%;
    display: inline-block;
    position: relative;
    height: 3em;
    line-height: 3em;

    &:first-of-type{
      &:after{
        content: '';
        display: inline-block;
        position: absolute;
        width: 200%;
        height: 1px;
        background-color: $color_blue;
        bottom: 0;
        left: 0;
      }
    }
  }
}
      

我也尝试过使用 :first-of-type 作为带有 class 'cell' 的父元素,但它根本不起作用。

#nav{
  @extend %filter_full_size;
  
  .cell{
    strong{
      ......
    }

  &:first-of-type{ 
    strong{ 
      &:after{
        ......
      }
    }
  }
}

感谢您的帮助。 P.

您的第一次尝试选择了所有强元素,因为它们都是各自父元素的第一个子元素。

第一眼看不出您的第二次尝试有什么问题,您在第二次尝试中选择了作为第一个 .cell 元素的子元素的强元素。但是,我们还没有看到完整的代码,所以可能其中有什么问题?

I 'translated' SCSS to CSS 检查,这是我看到的结果:

如果这是你想要的,这里是片段:

#nav .cell strong{
    color: blue;
    width: 100%;
    display: inline-block;
    position: relative;
    height: 3em;
    line-height: 3em;
}

 #nav .cell:first-of-type strong::after{
        content: '';
        display: inline-block;
        position: absolute;
        width: 200%;
        height: 1px;
        background-color: blue;
        bottom: 0;
        left: 0;
      }
<div id='nav'>
  <div class='row'> 

    <div class='cell'>
      <strong>Subject 1</strong>
      <ul>
        <li>item 1</li>
      </ul>
    </div>

    <div class='cell'>
      <strong>Subject 2</strong>
      <ul>
        <li>item 1</li>
      </ul>
    </div>  

  </div>
</div>