【发布时间】:2018-03-20 16:41:30
【问题描述】:
我正在尝试在 react 中使用 styled-components 创建一个简单的可折叠 div。
我可以让 div 根据状态切换打开和关闭,但我似乎无法让转换工作。它只是跳开或关闭。
样式化组件:
const Details = styled.div`
transition: 0.3s ease-out;
&.open {
height: auto;
padding: 25px 0;
}
&.closed {
height: 0;
overflow: hidden;
}
`;
JSX
<Details className={this.state.detailsOpen ? 'open' : 'closed'}>
{stuff}
</Details>
【问题讨论】:
-
您无法将
height转换为auto(您还缺少height在transition规则声明中)。但是,您可以转换max-height,这是用于此目的的常用解决方法,请参阅:stackoverflow.com/questions/3508605/… -
styled-components 是否支持类似 sass 的语法
&.open {? -
感谢 Miguel,我使用该建议尝试了多种方法,但行为保持不变。是因为我有条件地更改了“open”类并将其全部从样式元素中删除吗?
标签: css reactjs styled-components