Нет, вы не можете.
Что вы можете сделать, это создать конкретные компоненты для базового элемента div.Вот как я делаю свои компоненты:
const MyComponentStyle = styled('div')....;
const MySecondComponentStyle = styled('div')...;
const MyThirdStyle = styled('div')...;
const MyComponent = ({ wrapperClassName, childClassName, className }) =>
<MyComponentStyle className={wrapperClassName}>
<MySecondComponentStyle className={className} />
<MyThirdStyle className={childClassName} />
</MyComponentStyle>
)
}
}
Условное оформление элемента и его дочерних элементов на основе имен классов
Вы можете условно изменить оформление вещи ниже основного компонента на основе его классов.
Если взять ваш пример:
const Something = () => (
<MyComponent className={classes}>
<div className="childClassName">child</div>
<div className="otherChildClassName">child</div>
</MyComponent>
Вы можете стилизовать детей следующим образом:
const classes = css`
color: red;
span {
color: black;
}
& .childClassName {
color: green;
}
`
обратите внимание на символ &
.По сути, это означает «этот класс».Так & .childClassName
означает «потомки этого элемента с классом childClassName
.
. Вы также можете использовать &.someClassName
(обратите внимание на недостаток места), что будет означать:« этот элемент, когда он также имеет класспо имени someClassName
.