如何在React中使用Bulma CSS

571 阅读6分钟

开源CSS框架Bulma为移动优先设计,并使用Flexbox方法构建,它提供了现成的前端组件,无需JavaScript即可构建响应式网页界面,使其成为与React一起使用的理想选择。

Bulma以拥有最简单的网格系统而闻名,它非常流畅,可以根据所使用设备的屏幕大小自动调整列的大小。

与大多数CSS框架不同,Bulma不是一个全有或全无的框架;它使你能够导入和使用特定的组件,如面包屑或表单,而无需导入整个框架。它还提供了大量已经定制好的用于设计网站的组件元素栏目布局表单,让用户可以快速上手并运行。

而且,由于Bulma不包括任何JavaScript,当与React一起使用时,你可以完全控制你的组件的功能,让你自由地以你认为合适的方式编写JavaScript代码,而不是受限于Bulma对编写JavaScript的看法。对于那些想使用自己的JavaScript实现的开发者来说,Bulma遵循严格的只用CSS的方法,这使他们能够实现这一目标。

Bulma在Chrome、Edge、Firefox、Opera、Safari和Internet Explorer(10+)上都有浏览器支持,为你提供CSS类,帮助你设计网站风格。

在本教程中,你将学习如何将Bulma CSS与React一起使用。

在React中使用Bulma CSS

虽然Bulma的创造者说使用Bulma不需要有任何CSS知识,但对CSS有基本的了解会加强你在任何CSS框架中的工作,包括Bulma。

本教程假定你具有CSS的基本知识,以及下列条件。

  • 在你的本地开发机器上安装了Node8.10或更高版本
  • 在你的本地开发机器上安装了npx5.2或更高版本
  • 有HTML和JavaScript的基本知识
  • 对如何在React中创建组件有基本了解

现在,让我们看看如何在React中使用不同的Bulma CSS元素和组件。

在React中安装Bulma

首先,让我们通过使用Create React App并运行以下命令来启动一个React应用程序。

npx create-react-app bulma-tutorial

一旦React应用成功安装在你的本地机器上,使用cd bulma-tutorial 命令切换到它的目录,并使用npm install bulma 命令将Bulma包安装到你的React项目。

安装完Bulma后,运行npm start ,通过localhost:3000 ,在你的浏览器窗口访问该应用程序。

A Newly Created React Application Homepage

现在,导航到src 文件夹,点击App.js ,然后粘贴下面的代码片段。

import 'bulma/css/bulma.min.css';

const App = () => {
      return (
        <div classname="main"> 
          <div className="buttons">
            <button class="button is-primary">Primary</button>
            <button class="button is-link">Link</button>
            <button class="button is-info">Info</button>
            <button class="button is-success">Success</button>
            <button class="button is-warning">Warning</button>
            <button class="button is-danger">Danger</button>
            <button class="button is-black">Black</button>
            <button class="button is-white">White</button>
            <button class="button is-dark">Dark</button>
            <button class="button is-light">Light</button>
          </div>
        </div>
      )
  }
  
export default App;

通过将Bulma CSS导入我们的项目,我们现在可以访问Bulma的组件、元素、变量等,并在我们的项目中使用Bulma。

在React中使用Bulma进行造型

下面是创建的组件App ,并添加了父级div 。通过导出该组件,我们可以在应用程序的其他部分针对它。

const App = () => {
      return (
        <div classname="main">
          ...
        </div>
      )
  }

export default App;

在这里,我们添加了一个包含10个buttonsdiv ,并使用Bulma CSS对其进行造型。

<div className="buttons">
  <button class="button is-primary">Primary</button>
  <button class="button is-link">Link</button>
  <button class="button is-info">Info</button>
  <button class="button is-success">Success</button>
  <button class="button is-warning">Warning</button>
  <button class="button is-danger">Danger</button>
  <button class="button is-black">Black</button>
  <button class="button is-white">White</button>
  <button class="button is-dark">Dark</button>
  <button class="button is-light">Light</button>
</div>

大多数Bulma元素有替代样式,需要使用is-has- 来访问它们**。**例如,在上面的代码片段中,你会注意到每个按钮都包含两个值:元素的名称,button ,向Bulma表明这个元素是一个按钮;以及修改器,is-dark ,访问样式类属性。

因此,如果你想把你的应用程序的一个元素染成绿松石色,例如,你会使用is-primary 修改器的语法。

以下是可以在Bulma中使用的默认色调,以及它们各自的修改器。

  • is-primary 是绿松石色
  • is-link 是蓝色
  • is-info 是青色
  • is-success 是绿色
  • is-warning 是黄色
  • is-danger 是红色
  • is-white 是白色
  • is-black 是黑色
  • is-dark 是深色
  • is-white 是白色的

按钮完成后,保存代码并返回到浏览器窗口,查看更新后的页面是什么样子。如果一切操作正确,它应该看起来像下面的屏幕。

请看CodePen上Didicodes(@edyasikpo) 的Pen
Colors - Bulma CSS教程

改变元素和组件的大小

在了解了如何在React中为元素和组件应用颜色之后,我们可以继续通过使用Bulma的修改器类(is-small,is-medium, andis-large )来操作按钮,以调整任何元素或组件的大小。

正如每个修改器的名字所暗示的那样,元素将通过添加is-small ,变得更小,通过添加is-medium ,变得中等,通过添加is-large ,变得更大,成为该元素的属性。

让我们把这些属性添加到我们的App.js 文件的代码中,看看它是如何发挥的。

import 'bulma/css/bulma.min.css';

const App = () => {
      return (
        <div classname="main"> 
          <div className="buttons">
            <button class="button is-success is-small">Small</button>
            <button class="button is-warning is-medium">Medium</button>
            <button class="button is-danger is-large">Large</button>
          </div>
      </div>
      )
  }
  
export default App;

通过在代码库中添加is-smallis-mediumis-large ,你的React应用程序现在应该看起来像下面这样。

请看CodePen上Didicodes(@edyasikpo)的Pen
S
izes - Bulma CSS教程

控制元素和组件的状态

控制应用程序中的元素或组件的状态的能力是非常重要的。要在React应用中做到这一点,可以使用下面三个Bulma CSS属性中的任何一个。

  • is-outlined
  • is-loading
  • disabled

在下面的代码片段中,通过添加is-outlined ,第一个按钮的状态被勾勒出来,通过添加is-loading ,第二个按钮显示一个加载轮,通过添加is-disabled ,第三个按钮变成禁用。

import 'bulma/css/bulma.min.css';

const App = () => {
      return (
        <div classname="main"> 
          <div className="buttons">
            <button class="button is-success is-outlined">Outlined</button>
            <button class="button is-warning is-loading">Loading</button>
            <button class="button is-danger" disabled>Disabled</button>
          </div>
      </div>
      )
  }
  
export default App;

你可以看到下面这段代码的输出。

利用Bulma的自定义代码片段

如前所述,Bulma提供了一个已经定制好的组件集合,你可以用它来快速定制你的React应用程序,而不是从头开始设计它们的样式。

例如,如果我们想旋转一个导航栏,Bulma提供了模板代码,我们可以从他们的网站上复制一个片段,粘贴到App.js 文件中,并在imghr 元素中添加一个关闭标签。

import 'bulma/css/bulma.min.css';
const App = () => {
      return (
        <div>
            <nav class="navbar" role="navigation" aria-label="main navigation">
              <div class="navbar-brand">
                <a class="navbar-item" href="https://bulma.io">
                  <img src="https://bulma.io/images/bulma-logo.png" width="112" height="28"/>
                </a>
            
                <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
                  <span aria-hidden="true"></span>
                  <span aria-hidden="true"></span>
                  <span aria-hidden="true"></span>
                </a>
              </div>
            
              <div id="navbarBasicExample" class="navbar-menu">
                <div class="navbar-start">
                  <a class="navbar-item">
                    Home
                  </a>
            
                  <a class="navbar-item">
                    Documentation
                  </a>
            
                  <div class="navbar-item has-dropdown is-hoverable">
                    <a class="navbar-link">
                      More
                    </a>
            
                    <div class="navbar-dropdown">
                      <a class="navbar-item">
                        About
                      </a>
                      <a class="navbar-item">
                        Jobs
                      </a>
                      <a class="navbar-item">
                        Contact
                      </a>
                      <hr class="navbar-divider"/>
                      <a class="navbar-item">
                        Report an issue
                      </a>
                    </div>
                  </div>
                </div>
            
                <div class="navbar-end">
                  <div class="navbar-item">
                    <div class="buttons">
                      <a class="button is-primary">
                        <strong>Sign up</strong>
                      </a>
                      <a class="button is-light">
                        Log in
                      </a>
                    </div>
                  </div>
                </div>
              </div>
            </nav>
          </div>
        
      )
  }
  
export default App;

现在我们通过简单的复制和粘贴,在我的网站上有了一个导航栏,并且可以使用本教程中使用的概念进一步定制它。

请看CodePen上Didicodes(@edyasikpo) 的Pen
NavBar - Bulma CSS教程

总结

尽管本教程涵盖了使用Bulma与React的一些基础知识,但它们提供了一个基础,可以在造型时进行扩展。你可以通过访问他们的官方文档来了解更多关于Bulma的工作原理,获取代码片段,并进行实验也可以自由探索我在CodePen上创建的这些Bulma教程。

如果你有任何问题,可以在下面的评论区留言。

The postHow to use Bulma CSS with Reactappeared first onLogRocket Blog.