使用React介绍BulmaCSS

来自菜鸟教程
跳转至:导航、​搜索

介绍

Bulma 是一个包含助手、元素和组件的 CSS 框架。 您可以在项目中使用 Bulma 类和 HTML 结构进行可靠和可扩展的设计。

在本文中,您将使用 react-bulma-components,这是 React 中 Bulma CSS 框架更流行的实现之一。

先决条件

要完成本教程,您需要:

  • Node.js 的本地开发环境。 关注【X7X】如何安装Node.js并创建本地开发环境【X76X】。
  • 对 React 有一定的了解。 你可以看看我们的 How To Code in React.js 系列。

本教程已使用 Node v16.2.0、npm v7.14.0、react v17.0.2 和 react-bulma-components v4.0.4 进行了验证。

设置项目

首先使用 create-react-app 生成 React App,然后安装依赖项:

npx create-react-app react-bulma-components-example

切换到新的项目目录:

cd react-bulma-components-example

现在,您可以运行 React 应用程序:

npm start

修复项目的任何错误或问题。 并在网络浏览器中访问 localhost:3000

一旦你有一个工作的 React 应用程序,你可以开始添加 react-bulma-components

npm install react-bulma-components@4.0.4

此时,您有了一个带有 react-bulma-components 的新 React 项目。

探索元素和组件

react-bulma-components 库支持 Bulma 元素、组件、表单和布局。

考虑一个使用 Button 组件的示例。 首先,您需要导入 Bulma 样式表。 然后,您将需要导入该组件。

src/App.js

import 'bulma/css/bulma.min.css';
import { Button } from 'react-bulma-components';

function App() {
  return (
    <div className="App">
      <Button>Example</Button>
    </div>
  );
}

export default App;

这将生成带有 Bulma 样式的 Button

注意: 在以前的 react-bulma-components 版本中,可以指定 fulllib 特定版本的组件。 当 Bulma 更改为对等依赖项并且现在必须导入样式表时,这在 4.0 版中进行了更改。


与大多数 CSS 框架一样,Bulma 为您的常用组件提供样式和一系列自定义,可以通过向您的元素添加不同的类来完成。

react-bulma-components 通过为每个主要元素提供组件进一步简化了事情,并且消除了为了将属性传递给组件而杂耍类名的需要。

想要制作一个使用 danger 颜色的圆角和轮廓的大按钮?

<Button
  color="danger"
  size="large"
  rounded
  outlined
>
  Example
</Button>

所有 react-bulma-components 都可以接受 renderAs 属性,该属性允许您定义应该使用哪种元素来呈现组件。

默认情况下,Button 组件被渲染为 button 元素。 使用 renderAs 属性将其呈现为链接。

除了 renderAs 属性,我们还应该包含一个 href 来告诉它在人们点击链接时将其发送到哪里:

<Button
  renderAs="a"
  href="https://www.example.com"
  color="danger"
  size="large"
  rounded
  outlined
>
  Example
</Button>

事实上,我们所有的 Bulma 组件都可以接受你可能抛出的任何属性。 这意味着您总是可以使用 style 属性进行一些高级样式设置,或者使用 className 添加一些额外的 CSS 类。

使用 className 时,您提供的任何类都将添加到库生成的 Bulma 类名列表中。

颜色

与大多数现代 CSS 框架类似,Bulma 带有一个使用一些语义命名约定的颜色主题。

这些主题颜色包括 primarylinkinfosuccesswarningdanger

此外,还有更多文字颜色可供选择:blackdarklightwhite

支持颜色的组件接受 color 属性:

<Button color="success">Example</Button>

这将为渲染的元素分配正确的颜色类。 因为此颜色属性将类分配回呈现的元素,所以您不能只分配任意颜色值。

尺寸

几个组件接受 size 属性,但它们可能接受不同类型的值。

这是因为某些组件(如 Heading)使用数值:

<Heading size={1}>Large Heading</Heading>
<Heading size={2}>Not So Large Heading</Heading>

而其他人(如 Button)使用文本名称来表示尺寸:

<Button size="large">Large Button</Button>
<Button size="small">Small Button</Button>

对于接受文本大小的组件,您可以使用 smallnormalmediumlargenormal 大小是未指定 size 时默认使用的大小。

使用网格系统

Bulma 还支持网格系统,以帮助以一致的方式布置内容。 默认情况下,Bulma 使用 12 列布局,该布局使用百分比或列数。

首先,您需要导入组件:

import { Columns } from 'react-bulma-components';

对于基于 12 列布局的大小,您将 size 设置为 112 之间的数值:

<Columns>
  <Columns.Column size={1}>One</Columns.Column>
  <Columns.Column>Eleven</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={2}>Two</Columns.Column>
  <Columns.Column>Ten</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={3}>Three</Columns.Column>
  <Columns.Column>Nine</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={4}>Four</Columns.Column>
  <Columns.Column>Eight</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={5}>Five</Columns.Column>
  <Columns.Column>Seven</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={6}>Six</Columns.Column>
  <Columns.Column>Six</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={7}>Seven</Columns.Column>
  <Columns.Column>Five</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={8}>Eight</Columns.Column>
  <Columns.Column>Four</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={9}>Nine</Columns.Column>
  <Columns.Column>Three</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={10}>Ten</Columns.Column>
  <Columns.Column>Two</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size={11}>Eleven</Columns.Column>
  <Columns.Column>One</Columns.Column>
</Columns>

对于基于百分比的大小,您可以将 size 设置为 one-fifthone-quarterone-thirdhalf、[ X108X] 或 three-quarters

<Columns>
  <Columns.Column size="one-fifth">20%</Columns.Column>
  <Columns.Column>80%</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size="one-quarter">25%</Columns.Column>
  <Columns.Column>75%</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size="one-third">33.333333333%</Columns.Column>
  <Columns.Column>66.666666667%</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size="half">50%</Columns.Column>
  <Columns.Column>Also 50%</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size="two-thirds">66.666666667%</Columns.Column>
  <Columns.Column>33.333333333%</Columns.Column>
</Columns>

<Columns>
  <Columns.Column size="three-quarters">75%</Columns.Column>
  <Columns.Column>25%</Columns.Column>
</Columns>

这两种网格系统的方法总共将分别达到 12 列或 100% r。

结论

在本文中,您使用 react-bulma-components 探索了 Bulma 的一些功能。

依靠一个得到良好支持和维护良好的 CSS 框架,您可以设计和设计您的项目。 它们可以有效地节省时间。

更多信息请参阅 Bulma 文档