当前位置:   article > 正文

style-components使用手册

style-components使用手册

初识style-components

Styled-components 是一个用于在 React 中编写 CSS 的库,它允许你通过 JavaScript 将样式与组件结合起来,本质上还是组件化开发,将你定义的样式组件包裹在你需要修改样式的标签或文本上,样式组件将转换为一个实际的dom去包裹住你的标签或文本,从而起到修改样式的作用

1. 安装

首先,在你的项目中安装 Styled-components

  1. npm install styled-components
  2. # 或
  3. yarn add styled-components

2. 使用方式

2.1. 组件内使用不推荐
  1. import styled from 'styled-components';
  2. const Button = styled.button`
  3. background: palevioletred;
  4. border-radius: 3px;
  5. border: none;
  6. color: white;
  7. padding: 0.5em 1em;
  8. cursor: pointer;
  9. `;
  10. const App = () => (
  11. <Button>Click Me</Button>
  12. );
  13. export default App;
2.2. 组件外部使用推荐

定义一个.ts文件用于书写样式,并导出

  1. import styled from 'styled-components'
  2. export const LoginDiv = styled.div`
  3. margin: 100px auto;
  4. width: 500px;
  5. height: 400px;
  6. border: 1px solid;
  7. border-radius: 8px;
  8. `

组件中导入外部样式使用

  1. import React from 'react';
  2. import { LoginDiv } from './index';
  3. const Login = () => {
  4. return (
  5. <LoginDiv>
  6. <div>div</div>
  7. </LoginDiv>
  8. )
  9. }
  10. export default Login

基本用法

为了方便阅读,下面的案例全部采用了使用方式2.1 中的写法,但这种写法不建议在开发中使用,实际开发中建议使用 2.2 中推荐的写法

1. 简单使用

  1. import styled from 'styled-components';
  2. // 定义基本样式
  3. // 注意:这里的styled.button,就是让页面渲染之后,将它变成一个button html标签
  4. // 类比推理,你还可以指定其他的。例如styled.div、styled.span、styled.h1
  5. const Button = styled.button`
  6. background: palevioletred;
  7. border-radius: 3px;
  8. border: none;
  9. color: white;
  10. padding: 0.5em 1em;
  11. cursor: pointer;
  12. `;
  13. // 给样式增加hover效果
  14. const Button = styled.button`
  15. background: palevioletred;
  16. border-radius: 3px;
  17. border: none;
  18. color: white;
  19. padding: 0.5em 1em;
  20. cursor: pointer;
  21. &:hover {
  22. background: darkviolet;
  23. }
  24. `;

2. 使用嵌套样式

CSS 样式可以嵌套,就像在 SASS 中一样:

  1. import styled from 'styled-components';
  2. const Container = styled.div`
  3. padding: 2em;
  4. background: papayawhip;
  5. .title {
  6. color: palevioletred;
  7. font-size: 2em;
  8. }
  9. .content {
  10. color: darkslategray;
  11. }
  12. `;
  13. const App = () => (
  14. <Container>
  15. <div className="title">Title</div>
  16. <div cl
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/872785
推荐阅读
相关标签
  

闽ICP备14008679号