一、网格系统
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>