Bootstrap是一个开源、免费的前端框架,可以快速构建任何类型的响应式、移动设备优先的网站、应用或者模板。Bootstrap不仅是一套CSS和JavaScript库,它还有许多有用的组件和工具以及丰富的文档和示例。
一、网格系统
Bootstrap的网格系统是其最重要的特性之一,它提供了一种12列网格布局,可以在不同设备上进行响应处理。可以使用CSS类来指定每个元素应占据的列数,同时还应该使用.row
类来表示每一行,.col-[设备缩写]-[列数]
来表示每一列。
<div class="container">
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4"></div>
<div class="col-md-4"></div>
</div>
</div>
在上面的示例中,容器类.container
包含了一行.row
,这一行又包含了3个大小相等的列.col-md-4
,也就是说每个列占据了4列网格的宽度。
二、CSS组件
Bootstrap提供了各种CSS组件,包括按钮、表单、导航栏、面包屑、分页等等。这些组件是响应式的,并可以方便地内嵌和定制。
1.按钮
使用关键字class
来应用按钮样式,包括默认样式、成功、信息、警告、危险和原色。表单提交按钮默认为类型submit
,而其余默认为类型button
。
<button type="button" class="btn btn-primary">Primary</button>
2.表单
Bootstrap针对传统表单元素进行了大量的设计,可以使用帮助类.form-control
来增强表单元素的样式和布局。另外,还可以使用.form-group
类来包裹表单元素并提供营销文案或者校验反馈信息。
<form>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
</form>
3.导航栏
Bootstrap提供了导航栏组件,可以使用类.nav
来定义目录集合,.navbar
类作为最外层容器。此外,Bootstrap还提供了.navbar-toggle
和.collapse
来实现响应式导航栏,以便于在移动设备上使用。
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
</ul>
</div>
</nav>
三、JavaScript插件
Bootstrap还提供了丰富的JavaScript插件,可以实现诸如模态框、滚动监听、下拉菜单、轮播等交互效果。
1.模态框
可以使用模态框来展示有关信息,需要指定触发按钮和模态框本身,然后在模态框中添加内容。
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Modal body text goes here.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
2.下拉菜单
Bootstrap的下拉菜单非常容易使用,并支持多层嵌套。下拉菜单可以通过添加data-toggle="dropdown"
的链接和一个包含菜单的div.dropdown-menu
来实现。
<div class="dropdown">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
3.轮播
使用轮播插件可以实现无缝切换幻灯片的效果。需要定义一个轮播容器,并指定每个幻灯片的容器、导航点等相关元素。
<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-100" src="..." alt="First slide">
</div>
<div class="carousel-item">
<img class="d-block w-100" src="..." alt="Second slide">
</div>
<div class="carousel-item">
<img class="d-block w-100" src="..." alt="Third slide">
</div>
</div>
<a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>