基本用法

  1. import styled, { css } from 'styled-components'
  2. const { Item: BreadcrumbItem } = Breadcrumb
  3. // 定义样式
  4. const StyledPointer = css`
  5. cursor: pointer;
  6. `
  7. // 定义组件
  8. const StyledH1 = styled.div`
  9. font-size: 20px;
  10. font-weight: 600;
  11. `
  12. // 修改组件
  13. const StyledBreadcrumbItem = styled(BreadcrumbItem)`
  14. font-size: 18px; // 会覆盖 BreadcrumbItem font-size属性
  15. `
  16. // 动态样式写法一:根据组件是否存在对应属性
  17. // 如果 StyledBreadcrumbItem 组件存在 pointer 属性,则会添加 StyledPointer 样式
  18. const StyledBreadcrumbItem = styled(BreadcrumbItem)`
  19. font-weight: 400;
  20. ${props => props.pointer && StyledPointer};
  21. ${props => props.primary && css`
  22. background: white;
  23. `}
  24. `
  25. <StyledBreadcrumbItem pointer>123</StyledBreadcrumbItem>
  26. // 动态样式写法二:对象模式,根据组件对应属性的属性值
  27. // 根据 StyledBreadcrumbItem 组件传递的cursor属性值 动态设置 cursor样式
  28. const StyledBreadcrumbItem = styled(BreadcrumbItem)(props => ({
  29. fontWeight: 400,
  30. cursor: props.cursor,
  31. }))
  32. <StyledBreadcrumbItem cursor="pointer">123</StyledBreadcrumbItem>

设置图片

  1. // 静态图片
  2. const StyledArrow = Styled.div`
  3. position: relative;
  4. top: 10px;
  5. width: 27px;
  6. height: 22px;
  7. background-image: url(${IMG_ARROW});
  8. background-size: 100% 100%;
  9. `
  10. // 动态图片
  11. // 写法一
  12. const StyledImageBox = styled.div`
  13. width: 275px;
  14. height: 275px;
  15. border-bottom-left-radius: 4px;
  16. border-bottom-right-radius: 4px;
  17. position: relative;
  18. background-image: url(${props => props.assetsImg})
  19. `
  20. // 写法二
  21. const StyledImageBox = styled.div(props => ({
  22. width: '275px',
  23. height: '275px',
  24. borderBottomLeftRadius: '4px',
  25. borderBottomRightRadius: '4px',
  26. position: 'relative',
  27. backgroundImage: `url(${props.assetsImg})`,
  28. }))
  29. <StyledImageBox assetsImg={detailData.fundImg}></StyledImageBox>