Существует несколько подходов к этому, с недостатками и без них.
Оберните каждого дочернего элемента в div
Этот первый - обернуть каждый из ваших дочерних компонентов в div
изатем добавьте к нему класс, который затем вы можете использовать в своей таблице стилей:
return(
<div>
<div className={style.child}><ChildB /></div>
<div className={style.child}><Child /></div>
<div className={style.child}><Child /></div>
</div>
);
Передайте className как реквизит
Вы можете передать имя класса как реквизит, а затем добавить этот реквизит в любойтег, который вы хотите в вашем дочернем компоненте.С другой стороны, вы должны сделать это для каждого компонента, который вы хотели бы иметь класс.
return(
<div>
<ChildB className={style.child}/>
<Child className={style.child}/>
<Child className={style.child}/>
</div>
);
//ChildComponent.js
Import Styles from 'ChildComponent.scss';
...
export default ({ className }) =>
<div className={`${Styles.child className}`}></div>
Используйте дочерний комбинатор CSS
В вашей родительской таблице стилей,Вы можете использовать прямой дочерний селектор >
, чтобы выбрать любых прямых дочерних элементов.Вы также можете объединить этот оператор со звездообразным оператором, но будьте осторожны с этим оператором, поскольку он может замедлить работу браузера, если он часто используется на странице
Если мы предположим, что весь ваш дочерний компонент является div
:
/* ParentComponent.scss */
.parent > div {
}
Или, если вы не знаете, из какого ребенка сделан
/* ParentComponent.scss */
.parent > *{
}