Bulma
或许你之前听说过Bulma;如果没有,也没关系。Bulma是一个轻量级、可配置的CSS框架。
或许你之前听说过Bulma;如果没有,也没关系。如前所述,Bulma是一个轻量级、可配置的CSS框架,完全基于Flexbox。Flexbox是一个相对较新的CSS规范,在本书编写时,它得到了浏览器的良好支持。
Bulma底层使用Flexbox来运行,并帮助你解决了使用Flexbox时需要考虑的难点。使用Bulma无须了解Flexbox,但应掌握基本的CSS知识。
本文将从较高的层次介绍Bulma,带你熟悉Bulma及其术语和概念,本文节选自图书《Bulma必知必会》。
1.1 Bulma有何独特之处
与其他CSS框架相比,Bulma有如下不同之处。
现代化:整个Bulma是基于CSS Flexbox设计的。
响应式:Bulma的设计同时支持移动端和桌面设备。
易学:大多数用户只需几分钟便能入门。
语法简单:Bulma使用更少的HTML,所以代码易于阅读和编写。
可定制:Bulma提供了300多个SASS变量,基于这些样式变量,你可以定制自己的主题框架。
无JavaScript:Bulma完全基于CSS设计编写,因此可以很优雅地与任何JavaScript框架(Angular、Vue.js、React、Ember或者纯JavaScript应用)集成。
1.2 简易的栅格系统
Bulma最著名的当属其简单明了的栅格架构:
就是这样,只需两个CSS类(columns 作为容器类,column作为其子类),即可实现响应式栅格系统,无须指定其他任何维度,两列会自动分占宽度的50%。
如果想要第3列,只需再添加一个 column 即可:
每一列会自动占据33% 的宽度,无须编写额外的代码。如果想要更多列,按上述操作添加
column
即可实现,Bulma会帮你自动适配大小。
1.3 可读性
Bulma简单易学,因为它的代码简洁易读。下面是一个Bulma按钮的代码,仅需添加一个button类即可实现。
为了扩展该按钮的功能,Bulma提供了修饰符类,用于给基础的按钮提供其他样式。要对该按钮应用主色调青绿色,并增大尺寸,只需添加 is-primary 类和 is-large 类:
提示:最好使用“primary”“secondary”这样的主次命名约定。这将有助于给样式赋予一些意义,并为以后的定制留有余地。
1.4 可定制
Bulma有300多个变量,几乎可以覆盖Bulma中的所有属性,因此可以高度定义个性化设置。
使用SASS,可以设置初始变量,比如覆盖 blue 的颜色值、设置默认字体甚至各种响应式断点。
每一个Bulma组件都有自己的变量集合:
box组件具有阴影;
columns有默认空白;
menu有默认的背景色和前景色;
button和input的每一种状态(悬浮、活跃、选中)都有对应颜色;
……
每个文档页面都有可覆盖的变量列表。
1.5 模块化
由于Bulma被划分成了多个模块文件,所以按需导入相应代码即可。
例如,有的开发人员只想使用Bulma的栅格系统,那么创建一个如下所示的SASS文件即可。
上述 SASS 文件只引入了 Bulma 的 columns 和 column CSS类。
1.6 列
Flexbox是一维的栅格系统,这意味着在Bulma中有行或者列的概念。使用Bulma开发网站要考虑列,并将列封装在行或容器中。Bulma的基本功能如下。
从 columns 行开始。
在 columns 行中,可以添加一列或者多列,Bulma会基于添加的列计算每列所占空间。
在这个例子中,添加的 column 占据了整个浏览器的宽度,因为在 columns 中仅此一列。
如前所述,每一列的宽度并不固定,但还是要再次强调:添加的列越多,每一列就会越窄,比如有3列,每一列的宽度就是33%;如果是4列,每一列的宽度就是25%。
1.7 修饰符
修饰符是额外的CSS类,可以把它们添加到HTML中,以此改变HTML元素的显示效果。以按钮(
该按钮只是一个简单的通用按钮,下面把它变成Bulma内置的青绿色按钮样式。为了把它的颜色改为主色调,可以给它添加is-primary修饰符。
现在按钮变成青绿色了!再给它添加一个“幽灵”按钮的修饰符,让它呈现镂空效果。
也可以添加一个 is-loading 修饰符来给按钮增加一个加载中的动画效果,表示某种进行中的状态,比如表单提交流程。
同样值得注意的是,在添加自定义类之前,尽量利用Bulma现有的类是最佳实践。如果覆盖了某些元素的样式,请继续使用现有的类。
1.8 组件
Bulma提供了许多可用的组件。组件是用于实现特定功能模块的代码片段。如果基于这些组件来实现功能,必须按照组件的对外接口格式编写代码。
有关组件的更多信息和示例,请参见Bulma的组件文档。
如下是一个卡片组件的示例:
Bulma还提供了其他组件,比如菜单、下拉菜单、消息提示、模态框等。
1.9 辅助类
辅助类(也称工具类)是用于辅助布局的修饰符。它们与传统修饰符的区别是,修饰符是用于改变组件或者元素的视觉效果的,而辅助类是用于处理元素定位的。
下面是一些常用的辅助类。
is-marginless:移除当前元素的所有外边距。
is-unselectable:使当前文本处于不可选择状态。
is-pulled-left :使得当前的元素靠左布局。
除上述辅助类外,还有用于响应式和排版的辅助类,可帮助用户更好地实现响应式和文字排版。
一本书掌握 Bulma
让你用更少CSS的代码实现更多功能
《Bulma必知必会》
杰里米 · 托马斯等 著
华华 , 张俊达 译
Bulma 是一个流行的开源 CSS 框架,轻量而易用。借助它,即使完全不会编写CSS,也能轻松创建出美观的网页。本书通过生动实例细致讲解如何使用Bulma 框架从头创建 Web 应用。
主要内容包括:Bulma 的基本概念与特性,如何用 Bulma 创建页面布局,Bulma 组件如何工作,如何设计具体的 UI 元素,如何将 Bulma 嵌入JavaScript,如何将 Bulma 与流行的前端框架 React、Angular 和 Vue 集成,等等。