<Component>时代的 CSS

以速度、强类型和灵活性来打造你的风格。

被以下人士使用

用来创建像这些美丽的网站

发现更多
Stars on GitHubCurrent versionMonthly downloadsGzipped sizeDiscord

入门

安装

要下载 styled-components,运行

npm install styled-components

这已经是全部了,你现在可以在你的应用程序中使用它!(没错,不需要构建步骤 👌)

注意

如果你可以,建议(但不是必须)也使用 styled-components Babel 插件。它提供了许多好处,例如更清晰的类名、服务器端渲染兼容性、更小的包体积等等。

你的第一个 styled 组件

假设你想要创建一个简单且可复用的 <Button /> 组件,可以在你的整个应用程序中使用。应该有一个普通版本和一个大且 primary 版本,用于重要按钮。它在渲染时的外观应该如下所示:(这是一个实时示例,点击它们!)

首先,让我们导入 styled-components 并创建一个 styled.button

import styled from 'styled-components'


const Button = styled.button``

这里的 Button 变量现在是一个 React 组件,你可以像使用任何其他 React 组件一样使用它!这种不寻常的反引号语法是 JavaScript 的一项新功能,称为 带标签的模板字面量

你知道你可以用圆括号调用函数吗? (myFunc()) 好吧,现在你也可以用反引号调用函数了!(了解有关带标签的模板字面量的更多信息

如果你现在渲染我们可爱的组件(就像任何其他组件一样:<Button />),你会得到以下结果

它渲染了一个按钮!但这不是一个很漂亮的按钮 😕 我们可以做得更好,让我们给它添加一些样式,并挖掘出它内在的美丽!

const Button = styled.button`
  background: transparent;
  border-radius: 3px;
  border: 2px solid #BF4F74;
  color: #BF4F74;
  margin: 0 1em;
  padding: 0.25em 1em;
`

正如你所见,styled-components 让你可以在 JavaScript 中编写实际的 CSS。这意味着你可以使用你所使用和喜爱的 CSS 的所有功能,包括(但远不止于此)媒体查询、所有伪选择器、嵌套等等。

最后一步是,我们需要定义主按钮的外观。为此,我们还需要从 styled-components 中导入 { css } 并将一个函数插值到我们的模板字面量中,该函数会传递组件的 props

import styled, { css } from 'styled-components'


const Button = styled.button<{ $primary?: boolean; }>`
  background: transparent;
  border-radius: 3px;
  border: 2px solid #BF4F74;
  color: '#BF4F74';
  margin: 0 1em;
  padding: 0.25em 1em;


  ${props =>
    props.$primary &&
    css`
      background: '#BF4F74';
      color: white;
    `};
`

这里我们说的是,当 $primary 属性被设置时,我们想要为我们的组件添加一些额外的 css,在这种情况下是更改背景和颜色。

就这些,我们完成了!来看看我们完成的组件

不错 😍 这也是一个实时更新的编辑器,所以试着玩一玩,感受一下使用 styled-components 的感觉!当你准备好后,深入文档以了解 styled-components 可以为你做的所有酷事

继续下一頁

文档

#BlackLivesMatter ✊🏿 支持平等正义倡议