Bulma 支持下列原生 HTML 表单元素: <form>
<button>
<input>
<textarea>
和 <label>
.
下列 CSS 类也是支持的:
label
input
textarea
select
checkbox
radio
button
help
表单控件(Form controls)
所有通用表单控件,都是基于一致性设计
Bulma 支持下列原生 HTML 表单元素: <form>
<button>
<input>
<textarea>
和 <label>
.
下列 CSS 类也是支持的:
label
input
textarea
select
checkbox
radio
button
help
要保持平衡均衡的设计,Bulma 提供了非常有用的 control
容器,使用它您可以包裹表单控件。
组合一些控件在一个表单里的时候,使用 field
类做为一个容器,来保持间距一致。
示例
This username is available
This email is invalid
HTML
<div class="field">
<label class="label">Name</label>
<div class="control">
<input class="input" type="text" placeholder="Text input">
</div>
</div>
<div class="field">
<label class="label">Username</label>
<div class="control has-icons-left has-icons-right">
<input class="input is-success" type="text" placeholder="Text input" value="bulma">
<span class="icon is-small is-left">
<i class="fas fa-user"></i>
</span>
<span class="icon is-small is-right">
<i class="fas fa-check"></i>
</span>
</div>
<p class="help is-success">This username is available</p>
</div>
<div class="field">
<label class="label">Email</label>
<div class="control has-icons-left has-icons-right">
<input class="input is-danger" type="email" placeholder="Email input" value="hello@">
<span class="icon is-small is-left">
<i class="fas fa-envelope"></i>
</span>
<span class="icon is-small is-right">
<i class="fas fa-exclamation-triangle"></i>
</span>
</div>
<p class="help is-danger">This email is invalid</p>
</div>
<div class="field">
<label class="label">Subject</label>
<div class="control">
<div class="select">
<select>
<option>Select dropdown</option>
<option>With options</option>
</select>
</div>
</div>
</div>
<div class="field">
<label class="label">Message</label>
<div class="control">
<textarea class="textarea" placeholder="Textarea"></textarea>
</div>
</div>
<div class="field">
<div class="control">
<label class="checkbox">
<input type="checkbox">
I agree to the <a href="#">terms and conditions</a>
</label>
</div>
</div>
<div class="field">
<div class="control">
<label class="radio">
<input type="radio" name="question">
Yes
</label>
<label class="radio">
<input type="radio" name="question">
No
</label>
</div>
</div>
<div class="field is-grouped">
<div class="control">
<button class="button is-link">Submit</button>
</div>
<div class="control">
<button class="button is-link is-light">Cancel</button>
</div>
</div>
使用 Bulma 的最好结果,就是推荐尽可能多的使用 control
元素。
field
容器是一个简单的容器:
label
control
help
文本示例
This is a help text
HTML
<div class="field">
<label class="label">Label</label>
<div class="control">
<input class="input" type="text" placeholder="Text input">
</div>
<p class="help">This is a help text</p>
</div>
这个容器使表单字段间距一致。
示例
HTML
<div class="field">
<label class="label">Name</label>
<div class="control">
<input class="input" type="text" placeholder="e.g Alex Smith">
</div>
</div>
<div class="field">
<label class="label">Email</label>
<div class="control">
<input class="input" type="email" placeholder="e.g. alexsmith@gmail.com">
</div>
</div>
Bulma 的 control
是一个多功能 block 容器,也就是说增强了单个表单控件。因为它跟它包裹的元素有相同的高度,它可以只包含下列 Bulma 元素:
input
select
button
icon
这个容器具备如下能力:
示例
HTML
<div class="control">
<input class="input" type="text" placeholder="Text input">
</div>
示例
HTML
<div class="control">
<div class="select">
<select>
<option>Select dropdown</option>
<option>With options</option>
</select>
</div>
</div>
示例
HTML
<div class="control">
<button class="button is-primary">Submit</button>
</div>
您可以添加两个修饰符之一到控件:
has-icons-left
has-icons-right
您还需要添加一个修饰符到图标:
has-icons-left
就是 icon is-left
has-icons-right
就是 icon is-right
input 的型号会定义图标容器的型号。
示例
HTML
<div class="field">
<p class="control has-icons-left has-icons-right">
<input class="input" type="email" placeholder="Email">
<span class="icon is-small is-left">
<i class="fas fa-envelope"></i>
</span>
<span class="icon is-small is-right">
<i class="fas fa-check"></i>
</span>
</p>
</div>
<div class="field">
<p class="control has-icons-left">
<input class="input" type="password" placeholder="Password">
<span class="icon is-small is-left">
<i class="fas fa-lock"></i>
</span>
</p>
</div>
<div class="field">
<p class="control">
<button class="button is-success">
Login
</button>
</p>
</div>
您也可以附加图标到下拉选择框上。
示例
HTML
<div class="field">
<p class="control has-icons-left">
<span class="select">
<select>
<option selected>Country</option>
<option>Select dropdown</option>
<option>With options</option>
</select>
</span>
<span class="icon is-small is-left">
<i class="fas fa-globe"></i>
</span>
</p>
</div>
如果控件包含图标,Bulma 不管输入框是大还是小或者图标是大还是小,都会确保图标保持居中。
示例
HTML
<div class="field">
<label class="label is-small">Small input</label>
<div class="control has-icons-left has-icons-right">
<input class="input is-small" type="email" placeholder="Normal">
<span class="icon is-small is-left">
<i class="fas fa-envelope"></i>
</span>
<span class="icon is-small is-right">
<i class="fas fa-check"></i>
</span>
</div>
</div>
示例
HTML
<div class="field">
<label class="label">Normal input</label>
<div class="control has-icons-left has-icons-right">
<input class="input" type="email" placeholder="Extra small">
<span class="icon is-small is-left">
<i class="fas fa-envelope fa-xs"></i>
</span>
<span class="icon is-small is-right">
<i class="fas fa-check fa-xs"></i>
</span>
</div>
</div>
<div class="field">
<div class="control has-icons-left has-icons-right">
<input class="input" type="email" placeholder="Normal">
<span class="icon is-left">
<i class="fas fa-envelope"></i>
</span>
<span class="icon is-right">
<i class="fas fa-check"></i>
</span>
</div>
</div>
示例
HTML
<div class="field">
<label class="label is-medium">Medium input</label>
<div class="control has-icons-left has-icons-right">
<input class="input is-medium" type="email" placeholder="Extra small">
<span class="icon is-small is-left">
<i class="fas fa-envelope fa-xs"></i>
</span>
<span class="icon is-small is-right">
<i class="fas fa-check fa-xs"></i>
</span>
</div>
</div>
<div class="field">
<div class="control has-icons-left has-icons-right">
<input class="input is-medium" type="email" placeholder="Small">
<span class="icon is-left">
<i class="fas fa-envelope fa-sm"></i>
</span>
<span class="icon is-right">
<i class="fas fa-check fa-sm"></i>
</span>
</div>
</div>
<div class="field">
<div class="control has-icons-left has-icons-right">
<input class="input is-medium" type="email" placeholder="Normal">
<span class="icon is-medium is-left">
<i class="fas fa-envelope"></i>
</span>
<span class="icon is-medium is-right">
<i class="fas fa-check"></i>
</span>
</div>
</div>
示例
HTML
<div class="field">
<label class="label is-large">Large input</label>
<div class="control has-icons-left has-icons-right">
<input class="input is-large" type="email" placeholder="Extra small">
<span class="icon is-small is-left">
<i class="fas fa-envelope fa-xs"></i>
</span>
<span class="icon is-small is-right">
<i class="fas fa-check fa-xs"></i>
</span>
</div>
</div>
<div class="field">
<div class="control has-icons-left has-icons-right">
<input class="input is-large" type="email" placeholder="Small">
<span class="icon is-left">
<i class="fas fa-envelope fa-sm"></i>
</span>
<span class="icon is-right">
<i class="fas fa-check fa-sm"></i>
</span>
</div>
</div>
<div class="field">
<div class="control has-icons-left has-icons-right">
<input class="input is-large" type="email" placeholder="Normal">
<span class="icon is-large is-left">
<i class="fas fa-envelope"></i>
</span>
<span class="icon is-large is-right">
<i class="fas fa-check"></i>
</span>
</div>
</div>
<div class="field">
<div class="control has-icons-left has-icons-right">
<input class="input is-large" type="email" placeholder="Large">
<span class="icon is-medium is-left">
<i class="fas fa-envelope fa-lg"></i>
</span>
<span class="icon is-medium is-right">
<i class="fas fa-check fa-lg"></i>
</span>
</div>
</div>
如果您想要附加控件到一起,在 field
容器上使用 has-addons
修饰符:
示例
HTML
<div class="field has-addons">
<div class="control">
<input class="input" type="text" placeholder="Find a repository">
</div>
<div class="control">
<a class="button is-info">
Search
</a>
</div>
</div>
您只能附加输入框(input)、按钮(button)和下拉菜单(dropdown)。
附加一个静态按钮有是也很有用。
示例
HTML
<div class="field has-addons">
<p class="control">
<input class="input" type="text" placeholder="Your email">
</p>
<p class="control">
<a class="button is-static">
@gmail.com
</a>
</p>
</div>
您可以在想让其占满剩余空间的元素(本例中是 input)上使用 is-expanded
修饰符完成构想:
HTML
<div class="field has-addons">
<p class="control">
<span class="select">
<select>
<option>$</option>
<option>£</option>
<option>€</option>
</select>
</span>
</p>
<p class="control">
<input class="input" type="text" placeholder="Amount of money">
</p>
<p class="control">
<a class="button">
Transfer
</a>
</p>
</div>
<div class="field has-addons">
<p class="control">
<span class="select">
<select>
<option>$</option>
<option>£</option>
<option>€</option>
</select>
</span>
</p>
<p class="control is-expanded">
<input class="input" type="text" placeholder="Amount of money">
</p>
<p class="control">
<a class="button">
Transfer
</a>
</p>
</div>
如果您想让下拉选择框占满宽度,需要 control is-expanded
和 select is-fullwidth
配合使用。
示例
HTML
<div class="field has-addons">
<div class="control is-expanded">
<div class="select is-fullwidth">
<select name="country">
<option value="Argentina">Argentina</option>
<option value="Bolivia">Bolivia</option>
<option value="Brazil">Brazil</option>
<option value="Chile">Chile</option>
<option value="Colombia">Colombia</option>
<option value="Ecuador">Ecuador</option>
<option value="Guyana">Guyana</option>
<option value="Paraguay">Paraguay</option>
<option value="Peru">Peru</option>
<option value="Suriname">Suriname</option>
<option value="Uruguay">Uruguay</option>
<option value="Venezuela">Venezuela</option>
</select>
</div>
</div>
<div class="control">
<button type="submit" class="button is-primary">Choose</button>
</div>
</div>
使用 has-addons-centered
或者 has-addons-right
修饰符可以修改对齐方式。
示例
HTML
<div class="field has-addons has-addons-centered">
<p class="control">
<span class="select">
<select>
<option>$</option>
<option>£</option>
<option>€</option>
</select>
</span>
</p>
<p class="control">
<input class="input" type="text" placeholder="Amount of money">
</p>
<p class="control">
<a class="button is-primary">
Transfer
</a>
</p>
</div>
示例
HTML
<div class="field has-addons has-addons-right">
<p class="control">
<span class="select">
<select>
<option>$</option>
<option>£</option>
<option>€</option>
</select>
</span>
</p>
<p class="control">
<input class="input" type="text" placeholder="Amount of money">
</p>
<p class="control">
<a class="button is-primary">
Transfer
</a>
</p>
</div>
如果您想分组控件,在 field
容器上使用 is-grouped
修饰符。
HTML
<div class="field is-grouped">
<p class="control">
<a class="button is-primary">
Submit
</a>
</p>
<p class="control">
<a class="button is-light">
Cancel
</a>
</p>
</div>
is-grouped-centered
或者 is-grouped-right
修饰符来调整对齐方式。
HTML
<div class="field is-grouped is-grouped-centered">
<p class="control">
<a class="button is-primary">
Submit
</a>
</p>
<p class="control">
<a class="button is-light">
Cancel
</a>
</p>
</div>
HTML
<div class="field is-grouped is-grouped-right">
<p class="control">
<a class="button is-primary">
Submit
</a>
</p>
<p class="control">
<a class="button is-light">
Cancel
</a>
</p>
</div>
在控件元素上添加 is-expanded
修饰符会使其占满剩余空间。
示例
HTML
<div class="field is-grouped">
<p class="control is-expanded">
<input class="input" type="text" placeholder="Find a repository">
</p>
<p class="control">
<a class="button is-info">
Search
</a>
</p>
</div>
添加 is-grouped-multiline
修饰符将允许控件使用多行。这对于很长的控件列表很有用。
HTML
<div class="field is-grouped is-grouped-multiline">
<p class="control">
<a class="button">
One
</a>
</p>
<p class="control">
<a class="button">
Two
</a>
</p>
<p class="control">
<a class="button">
Three
</a>
</p>
<p class="control">
<a class="button">
Four
</a>
</p>
<p class="control">
<a class="button">
Five
</a>
</p>
<p class="control">
<a class="button">
Six
</a>
</p>
<p class="control">
<a class="button">
Seven
</a>
</p>
<p class="control">
<a class="button">
Eight
</a>
</p>
<p class="control">
<a class="button">
Nine
</a>
</p>
<p class="control">
<a class="button">
Ten
</a>
</p>
<p class="control">
<a class="button">
Eleven
</a>
</p>
<p class="control">
<a class="button">
Twelve
</a>
</p>
<p class="control">
<a class="button">
Thirteen
</a>
</p>
</div>
如果您想要一个水平的表单控件,在 field
容器上使用 is-horizontal
修饰符,可包含:
field-label
侧边标签
field-body
是 input/select/textarea 的容器
您可以对子元素使用 is-grouped
或 has-addons
。
示例
This field is required
HTML
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">From</label>
</div>
<div class="field-body">
<div class="field">
<p class="control is-expanded has-icons-left">
<input class="input" type="text" placeholder="Name">
<span class="icon is-small is-left">
<i class="fas fa-user"></i>
</span>
</p>
</div>
<div class="field">
<p class="control is-expanded has-icons-left has-icons-right">
<input class="input is-success" type="email" placeholder="Email" value="alex@smith.com">
<span class="icon is-small is-left">
<i class="fas fa-envelope"></i>
</span>
<span class="icon is-small is-right">
<i class="fas fa-check"></i>
</span>
</p>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label"></div>
<div class="field-body">
<div class="field is-expanded">
<div class="field has-addons">
<p class="control">
<a class="button is-static">
+44
</a>
</p>
<p class="control is-expanded">
<input class="input" type="tel" placeholder="Your phone number">
</p>
</div>
<p class="help">Do not enter the first zero</p>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">Department</label>
</div>
<div class="field-body">
<div class="field is-narrow">
<div class="control">
<div class="select is-fullwidth">
<select>
<option>Business development</option>
<option>Marketing</option>
<option>Sales</option>
</select>
</div>
</div>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label">
<label class="label">Already a member?</label>
</div>
<div class="field-body">
<div class="field is-narrow">
<div class="control">
<label class="radio">
<input type="radio" name="member">
Yes
</label>
<label class="radio">
<input type="radio" name="member">
No
</label>
</div>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">Subject</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<input class="input is-danger" type="text" placeholder="e.g. Partnership opportunity">
</div>
<p class="help is-danger">
This field is required
</p>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">Question</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<textarea class="textarea" placeholder="Explain how we can help you"></textarea>
</div>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label">
<!-- Left empty for spacing -->
</div>
<div class="field-body">
<div class="field">
<div class="control">
<button class="button is-primary">
Send message
</button>
</div>
</div>
</div>
</div>
为了保证能垂直对齐标签和各种类型及型号的控件,field-label
有4 种型号修饰符:
is-small
is-normal
可用于任何 input
或 button
is-medium
is-large
示例
HTML
<div class="field is-horizontal">
<div class="field-label">
<label class="label">No padding</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<label class="checkbox">
<input type="checkbox">
Checkbox
</label>
</div>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-small">
<label class="label">Small padding</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<input class="input is-small" type="text" placeholder="Small sized input">
</div>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">Normal label</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<input class="input" type="text" placeholder="Normal sized input">
</div>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-medium">
<label class="label">Medium label</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<input class="input is-medium" type="text" placeholder="Medium sized input">
</div>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-large">
<label class="label">Large label</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<input class="input is-large" type="text" placeholder="Large sized input">
</div>
</div>
</div>
</div>
您可以通过包裹一套控件在一个 fieldset 里再添加一个 disabled
HTML 属性来禁用部分或者全部表单。
示例
HTML
<fieldset disabled>
<div class="field">
<label class="label">Name</label>
<div class="control">
<input class="input" type="text" placeholder="e.g Alex Smith">
</div>
</div>
<div class="field">
<label class="label">Email</label>
<div class="control">
<input class="input" type="email" placeholder="e.g. alexsmith@gmail.com">
</div>
</div>
</fieldset>
$control-radius
$radius
4px
$control-radius-small
$radius-small
2px
$control-padding-vertical
calc(0.5em - #{$control-border-width})
$control-padding-horizontal
calc(0.75em - #{$control-border-width})
$label-color
$grey-darker
hsl(0, 0%, 21%)
$label-weight
$weight-bold
700
$help-size
$size-small
0.75rem
此页面为开放源码页面。
发现排版问题?或者表达模糊?
在 GitHub 改进该页内容