飞雪团队

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3451|回复: 0

CSS 框架 Bulma 教程

[复制链接]

4137

主题

4225

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14711
发表于 2022-2-12 06:05:23 | 显示全部楼层 |阅读模式
网页样式需要大量时间开发,最省事的方法就是使用 CSS 框架。
                                                                                                                Bootstrap 是最著名的 CSS 框架,但是今天我想推荐另一个更轻量化、更易用的框架----Bulma。有了它,即使完全不懂 CSS,也可以轻而易举做出美观的网页。
8cc4fa323784066fb78506ad57759b66.png

我要感谢 100offer 对我提供赞助。100offer 是国内第一流的人力资源网站,本文结尾有他们的简介,最近想换工作的朋友可以看一下。
一、简介

Bulma 框架最大的特点,就是简单好用。所有样式都基于class,只需为 HTML 元素指定class,样式立刻生效。
Login
上面代码中,a 元素只需加上几个class,就会出现一个主色调(is-primary)的大(is-large)按钮。

Bulma 是一个手机优先的框架,提供五个宽度断点,具有良好的自适应特性,可以随心所欲为不同设备设置不同样式。
  

  • mobile:小于等于768px
  • tablet:大于等于769px
  • desktop:大于等于1024px
  • widescreen:大于等于1216px
  • fullhd:大于等于1408px
7c397ea52b0847296de6e57cf3a71471.png

它提供二十多种常用组件,比如表单 、表格、图标、面包屑、菜单、导航、Modal 窗口等等。简单的网站,可以不用写任何 CSS 代码。
二、基本用法

Bulma 的安装只需一步,把样式表插入网页即可。
使用更简单,就是为 HTML 元素加上class。
Button
上面的代码为 a 元素加上button类,这个链接就会被渲染成按钮。
b649a18fbf12becb0562c403c7be569f.png

Bulma 提供大量的修饰类,用来改变基类的样式。它们都是以is-或has-开头。比如,要改变 Button 的大小,就可以使用下面的修饰类。
SmallNormalMediumLarge
8067d5930a5ca207e773a0908c3eb781.png

Bulma 默认提供6种颜色。
  

  • is-primary
  • is-link
  • is-info
  • is-success
  • is-warning
  • is-danger
756b7c1a62a1964a6bc11e3cf031b952.png

按钮状态的修饰类如下。
  

  • is-hovered
  • is-focused
  • is-active
  • is-loading
完整的修饰类清单请看官方文档。
三、网格体系

Bulma 的网格体系基于 Flex 布局,写起来非常容易。最简单的用法就是使用columns指定容器,使用column指定项目。
b38957a5373196d4e295884534930ec3.png

  First column
  Second column
  Third column
  Fourth

屏幕宽度大于 768px 时,所有项目平铺,平分容器的宽度;宽度小于等于 768px 时,所有项目变成垂直堆叠。
2cdae3b4edde532a68b234714b169b4a.png

以下的修饰类用来指定项目的宽度。
  

  • 四分之三:is-three-quarters
  • 四分之一: is-one-quarter
  • 三分之二:is-two-thirds
  • 三分之一:is-one-third
  • 二分之一:is-half
  • 五分之四:is-four-fifths
  • 五分之三:is-three-fifths
  • 五分之二:is-two-fifths
  • 五分之一:is-one-fifth
e0aa092350147d2568a2d398b360bf41.png

此外,还有一些修饰类也非常有用。
  

  • is-narrow:网格的宽度由内容的宽度决定
  • is-centered:网格内容居中对齐
  • is-gapless:网格之间没有间距
Bulma 也支持12网格体系。
  

  • is-2
  • is-3
  • is-4
  • is-5
  • is-6
  • is-7
  • is-8
  • is-9
  • is-10
  • is-11
1f340301e6547e8949216981b2cd51bd.png

如果要指定某个网格偏移,可以用is-offset-修饰类。
  

  • is-offset-one-quarter
  • is-offset-one-fifth
  • is-offset-8
  • is-offset-1
四、响应式布局

前面说过,Bulma 有五个宽度断点,分别是 mobile(手机)、tablet(平板)、desktop(桌面)、widescreen(宽屏)、fullHD(高清)。
columns布局默认是在手机上垂直堆叠,其他宽度都是平铺。如果希望手机也保持平铺,可以加上is-mobile修饰类。
  1
  2
  3
  4

如果希望手机和平板是垂直堆叠,其他宽度平铺,可以使用is-desktop修饰类。
  1
  2
  3
  4

如果希望在不同设备,网格占据不同的宽度,可以像下面这样写。

上面代码中,这个网格在手机上占据二分之一宽度,平板三分之一宽度,桌面四分之一宽度,宽屏和高清则是平铺。
Bulma 允许为不同设备指定不同的布局。

上面代码中,手机是 flex 布局,平板是 inline 布局,其他宽度是 block 布局。
下面是隐藏某个项目的修饰类。
  

  • is-hidden-mobile:只在手机隐藏
  • is-hidden-tablet-only:只在平板隐藏
  • is-hidden-desktop-only  :只在桌面隐藏
  • is-hidden-touch:手机和平板隐藏,其他宽度显示
完整的清单请看官方文档。
五、文字

Bulma 提供7个修饰指定文字大小。
  

  • is-size-1: 3rem
  • is-size-2: 2.5rem
  • is-size-3: 2rem
  • is-size-4: 1.5rem
  • is-size-5: 1.25rem
  • is-size-6: 1rem
  • is-size-7: 0.75rem
可以为不同设备指定不同的文字大小。
  

  • is-size-1-mobile:手机是 size-1
  • is-size-1-tablet:平板是 size-1
  • is-size-1-touch:手机和平板是 size-1
  • is-size-1-desktop:桌面、宽屏和高清是 size-1
  • is-size-1-widescreen:宽屏和高清是 size-1
  • is-size-1-fullhd:高清是 size-1
此外,还有字体颜色、对齐、轻重的修饰类。
六、定制

最后这个部分是高级内容,讲解如何定制 Bulma,也就是修改默认样式。Bulma 采用 Sass 语法(注意,不是 Scss 语法),所以定制的样式也必须使用 SASS。
首先,克隆或下载源码。
$ git clone https://github.com/jgthms/bulma.git
然后,安装依赖。
$ cd bulma$ npm install
接着,在源码的根目录里面,新建一个app.sass文件,定制的代码都写在这个文件。在它里面,先引入 Bulma 基础变量。如果需要的话,可以改掉。
@import "./sass/utilities/initial-variables"$blue: #72d0eb$pink: #ffb3b3$family-serif: "Merriweather", "Georgia", serif
上面代码中,预设的blue、pink和family-serif变量被改掉。
有一些 Bulma 变量是从基础变量衍生的,需要的话也可以改掉。
$primary: $pink
上面代码中,主色调改成了pink变量。
接着,在这个文件里面加载 Bulma 的入口脚本。
@import "./bulma"
这一行的下面,你就可以写自己的样式了,比如为所有标题加一个下划线。
.title {  text-decoration: underline;}
最后,打开package.json,找到下面这一行。
"build-sass": "node-sass --output-style expanded --source-map true bulma.sass css/bulma.css",
把里面的bulma.sass改成app.sass。
"build-sass": "node-sass --output-style expanded --source-map true app.sass css/bulma.css",
以后每次修改完样式,运行一下npm run build,就会生成自己的样式表css/bulma.css了。
(全文完)
================================

优秀的人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力,从海量机会中找到最适合的那个。
100offer 让您可以向数百家互联网企业,匿名展示简历和职业期望,省下查找职位和投递简历的时间。通过这种方式,对您感兴趣的企业,主动邀请您参加面试。
704589f3b55e288dd389008cc4ede3be.png

100offer 的用户之中,既有厌倦了大公司螺丝钉般的重复工作,转而进入创业公司的前 BAT 员工;也有在小公司工作多年,一心想进入大公司的互联网人;还有向往国外的工作与生活,成功肉身翻墙新加坡的工程师。
准备好用不一样的方式迎接更好的职业机会了吗?现在就提交申请吧!
1e30c78db2beba688b877cad706fe4a7.jpg

另外,10月24日是程序员节。作为一名敲代码为生的程序员,你是不是被旁人贴过太多不属于你的标签----死板、呆萌、宅、不解人意?
3814ede14f2d4ee4e7f6cc1ec7258124.jpg

100offer 给你一个撕掉标签的机会:关注 100offer 微信号,发送一段话/一张图/一段视频/一条语音...展示你除了敲代码以外的神技能,还有最高价值1024元的"程序员兴趣基金"等你拿!
(完)
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|飞雪团队

GMT+8, 2024-4-29 04:04 , Processed in 0.069919 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表