Работает над странной проблемой.
Ниже приведены два блока кода. Один из них работает хорошо, а другой - нет.
Эта работа
const StyledButton = styled('button')`
// Some styles here
:first-child {
// Some other styles
}
:first-child:after {
content: 'F';
}
`
// After get applied succesfully to the first child
Это не
const StyledButton = styled('button')`
// Some styles here
:first-child {
// some other styles
:after {
content: 'F';
}
}
`
// After get applied to all nth child.
Пользуюсь react-emotion.
Это преднамеренное поведение или я что-то упускаю? Я хочу добиться, чтобы :after применялся только к первому потомку, используя подход, аналогичный второму.





Думаю, на вложенном :after ошибка в коде
Изменение, которое, если я прав, решило бы вашу проблему, заменив вложенный :after на &:after следующим образом:
const StyledButton = styled('button')`
// Some styles here
&:first-child {//<====== note the & here
// some other styles
&:after { //<====== note the & here
content: 'F';
}
}
}
& является заполнителем для родительского селектора, поэтому приведенный выше код будет компилироваться в:
button:first-child {
// some other styles
}
button:first-child:after {
content: 'F';
}
Обновлено: Песочница с рабочим примером
Надеюсь это поможет!
`
@SanjayJoshi Взгляните на эту песочницу: https://codesandbox.io/s/9j6j292n0o (не удалось получить встроенную ссылку для работы с SO), я разработал код в небольшой пример
Я тоже пробовал это. Только что понял, что если я помещаю псевдоселектор сразу после открытия: first-child {} и добавляю другие стили после применения: after, он работает. Например, работает: first-child {: after {} // другие стили}.