如何将其转换为样式化的组件以及如何嵌套类

时间:2018-09-14 17:05:34

标签: javascript css reactjs styled-components

我从使用样式化组件作为主要库的css-in-js开始,但有两个问题。

第一个问题,如何嵌套类?

footer{
  color: red;
}

footer p{
  padding: 16px 8px;
  font-size: 30px;
}
  <footer>
    <div className="container">
      <p>&copy; 1997-2015,All rights reserved.</p>
    </div>
  </footer>

我的第二个问题是,我有一个使用2个类的div,一个来自引导程序的 container 中,另一个是我自己的自定义类,并且我不知道如何将这2个类连接在一起在样式化组件中。

1 个答案:

答案 0 :(得分:3)

const MyStyledComponent = styled.footer`
  & > div {
    color: red;
  }

  & > div > p {
    padding: 16px 8px;
    font-size: 30px;
  }
`;

将&视为“此元素”。


有两种将类添加到样式化组件的方法。一种就是简单地添加className属性

<StyledComponent className="container my-class" />

或者如果您想在应用程序的每个位置使用这些类,则可以通过设置样式组件的属性来为其设置默认类。

const StyledComponent = styled.div.attrs({
 className: 'container my-class',
})`
  color: #f00;
`;