27-bootstrap框架1 容器 栅格系统 偏移 隐藏 按钮 表单
bootstrap框架
ps:更详细的内容访问:https://v3.bootcss.com/css/#overview
简单、直观、强悍的前端开发框架,让web开发更迅速简单。是目前很受欢迎的前端框架之一。基于HTML、CSS、JavaScript的,让书写代码更容易。移动优先,响应式布局开发。
bootstrap中文网址:http://www.bootcss.com
下载后需要两个文件和一个文件夹:
bootstrap.min.js(放入js文件夹)
bootstrap.min.css(放入css文件夹)
font文件夹(放到css文件夹外面)
另外bootstrap是基于jquery的,所以要先引入jquery
<head> <meta charset="UTF-8"> <!-- 因为bootstrap是写好了同时兼容pc和移动端的,移动端需要设置视口:meta:vp --> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> <!-- 另外bootstrap是基于jquery的,所以要先引入jquery --> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <link rel="stylesheet" href="css/bootstrap.min.css"> </head>
bootstrap有两种容器【其实就是已经写好的两个样式,所以容器的样式名是固定写法】:
1、container-fluid 流体容器【宽度100%】
2、container 响应式固定容器
container容器的几个默认区间设置:
1170
970
750
100%
当窗口变化时,容器宽度随之变化:
窗口大于等于1200:1170
窗口大于等于992:970
窗口大于等于768:750
窗口小于768:100%
<html lang="en"> <head> <meta charset="UTF-8"> <!-- 因为bootstrap是写好了同时兼容pc和移动端的,移动端需要设置视口:meta:vp --> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> <!-- 另外bootstrap是基于jquery的,所以要先引入jquery --> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <link rel="stylesheet" href="css/bootstrap.min.css"> <style> .container-fluid,.container{ height:50px; border:1px solid #000; background-color:gold; } </style> </head> <body> <div class="container-fluid">流体容器,宽度为100%,缩放窗口随之变化,做100%宽度是用这个容器</div> <br> <br> <br> <div class="container">响应式容器</div> </body> </html>
bootstrap固定写法:
<!-- 一般固定写法,外层一个container,或者container-fluid,再一层来一个row,row里面放代码 --> <div class="container"> <div class="row"> 这里放实现功能的代码 </div> </div>
为什么要放在row里面?为了保证它们的宽度是一样的
bootstrap栅格系统【bootstrap核心内容】
bootstrap将页面横向分为12等分【只管横向,纵向不管】,按照12等分定义了适应不同宽度等分的样式类,这些样式类组成了一套响应式、移动设备优先的流式栅格系统:
1、col-lg- 大于1200排成一行,小于1200分别占一行
2、col-md- 大于992排成一行,小于992分别占一行
3、col-sm- 大于768排成一行,小于768分别占一行
4、col-xs- 始终排列成一行
栅格系统演示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 因为bootstrap是写好了同时兼容pc和移动端的,移动端需要设置视口:meta:vp --> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> <!-- 另外bootstrap是基于jquery的,所以要先引入jquery --> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <link rel="stylesheet" href="css/bootstrap.min.css"> <style> /* 属性选择器:含有'col-'的样式都匹配 */ div[class*='col-']{ height:50px; background-color:gold; border:1px solid #000; } </style> </head> <body> <div class="container"> <h1>栅格系统</h1> </div> <div class="container"> <!-- 窗口小于1200时,四个div从一行变成各占一行 --> <div class="row"> <div class="col-lg-3">col-lg-3</div> <div class="col-lg-4">col-lg-4</div> <div class="col-lg-2">col-lg-2</div> <div class="col-lg--3">col-lg-3</div> </div> <br> <br> <!-- 窗口小于992时,3个div从一行变成各占一行 --> <div class="row"> <div class="col-md-4">col-md-4</div> <div class="col-md-4">col-md-4</div> <div class="col-md-4">col-md-4</div> </div> <br> <br> <!-- 窗口小于768时,4个div从一行变成各占一行 --> <div class="row"> <div class="col-sm-3">col-sm-3</div> <div class="col-sm-3">col-sm-3</div> <div class="col-sm-3">col-sm-3</div> <div class="col-sm-3">col-sm-3</div> </div> <br> <br> <!-- col-xs- 始终排列成一行 --> <div class="row"> <div class="col-xs-5">col-xs-5</div> <div class="col-xs-3">col-xs-3</div> <div class="col-xs-2">col-xs-2</div> <div class="col-xs-2">col-xs-2</div> </div> </div> </body> </html>
栅格系统应用示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 因为bootstrap是写好了同时兼容pc和移动端的,移动端需要设置视口:meta:vp --> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> <!-- 另外bootstrap是基于jquery的,所以要先引入jquery --> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <link rel="stylesheet" href="css/bootstrap.min.css"> <style> /* 属性选择器:含有'col-'的样式都匹配 */ div[class*='col-']{ /* background-color: gold;*/ /* height:50px;*/ /*border:1px solid #000;*/ } .box{ height:200px; /*.box最大宽度*/ max-width:240px; background-color:cyan; border:1px solid #000; margin:20px auto; } </style> </head> <body> <div class="container"> <h1>栅格系统响应式</h1> </div> <div class="container"> <!--col-lg-3(>1200)时排一行,后面col-md-3时还是一行,再后面col-sm-6就是排两行了,因为4个6就是24,刚好时两个12,一行只有12等分,24就是两行了 --> <div class="row"> <div class="col-lg-3 col-md-3 col-sm-6"><div class="box"></div></div> <div class="col-lg-3 col-md-3 col-sm-6"><div class="box"></div></div> <div class="col-lg-3 col-md-3 col-sm-6"><div class="box"></div></div> <div class="col-lg-3 col-md-3 col-sm-6"><div class="box"></div></div> </div> </div> </body> </html>
bootstrap 类[栅格]偏移
1、col-lg-offset- 最大尺寸时偏移-
2、col-md-offset- 中等尺寸时偏移-
3、col-sm-offset- 更小尺寸时偏移-
4、col-xs-offset- 最小尺寸时偏移-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 因为bootstrap是写好了同时兼容pc和移动端的,移动端需要设置视口:meta:vp --> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> <!-- 另外bootstrap是基于jquery的,所以要先引入jquery --> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <link rel="stylesheet" href="css/bootstrap.min.css"> <style> /* 属性选择器:含有'col-'的样式都匹配 */ div[class*='col-']{ background-color: gold; height:50px; border:1px solid #000; } </style> </head> <body> <div class="container"> <h1>栅格偏移</h1> </div> <div class="container"> <div class="row"> <!-- 两个列加起来时10,还有两等分,所以行右边空着2 让左边偏移1,刚好居中对齐 <div class="col-lg-5"></div> <div class="col-lg-5"></div> --> <div class="col-lg-5 col-lg-offset-1 col-md-5 col-md-offset-1"></div> <div class="col-lg-5 col-md-5"></div> </div> <br> <br> <br> <div class="row"> <!-- 2、左边的列再偏移1,整体居中对齐 --> <div class="col-lg-4 col-lg-offset-1 col-md-4 col-md-offset-1"></div> <!-- 1、一共时8,右边的列先偏移2 --> <div class="col-lg-4 col-lg-offset-2 col-md-4 col-md-offset-2"></div> </div> </div> </body> </html>
bootstrap 【栅格】隐藏\显示
1、hidden-xs 更小尺寸时隐藏
2、hidden-sm 小等尺寸时隐藏
3、hidden-md 中等尺寸时隐藏
4、hidden-lg 最大尺寸时隐藏
| class | 设备 |
.visible-xs
|
额外的小设备(小于 768px)可见
|
.visible-sm
|
小型设备(768 px 起)可见
|
.visible-md
|
中型设备(768 px 到 991 px)可见
|
.visible-lg
|
大型设备(992 px 及以上)可见
|
.hidden-xs
|
额外的小设备(小于 768px)隐藏
|
.hidden-sm
|
小型设备(768 px 起)隐藏
|
.hidden-md
|
中型设备(768 px 到 991 px)隐藏
|
.hidden-lg
|
大型设备(992 px 及以上)隐藏
|
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 因为bootstrap是写好了同时兼容pc和移动端的,移动端需要设置视口:meta:vp --> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> <!-- 另外bootstrap是基于jquery的,所以要先引入jquery --> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <link rel="stylesheet" href="css/bootstrap.min.css"> <style> /* 属性选择器:含有'col-'的样式都匹配 */ div[class*='col-']{ background-color: gold; height:50px; border:1px solid #000; } </style> </head> <body> <div class="container"> <h1>栅格隐藏</h1> </div> <div class="container"> <div class="row"> <!-- 1、一共四个栅格,col-lg-3,刚好12,所以lg时是一行, 窗口缩小到md时,col-md-4,4*4=16,最后一个栅格就到了第二行了--> <!-- 3、col-sm-6:窗口sm时,两个列一行 --> <div class="col-lg-3 col-md-4 col-sm-6">1</div> <div class="col-lg-3 col-md-4 col-sm-6">2</div> <div class="col-lg-3 col-md-4 col-sm-6">3</div> <!-- 2、这个栅格在窗口缩到md时会隐藏,然后窗口缩到比sm还小的xs时此栅格也会隐藏 --> <div class="col-lg-3 col-md-4 hidden-md col-sm-6 hidden-xs">4</div> </div> </div> </body> </html>
bootstrap按钮【组件】
1、btn 声明按钮,声明后,后面加上具体样式,比如class="btn btn-default"
2、btn-default 默认按钮样式
3、btn-primay
4、btn-success
5、btn-info
6、btn-warning
7、btn-danger
8、btn-link
9、btn-lg 这几个绿色的是尺寸
10、btn-md
11、btn-xs
12、btn-block 宽度是父级宽100%的按钮[一般用在移动端,一整行的按钮]
13、active 颜色跟hover状态一样比较深
14、disable 按钮变暗,不能点,比如一个按钮在达到某条件之后才能点击,就可以先设置成disabled
15、btn-group 定义按钮组
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <!-- 视口 --> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> <!-- 另外bootstrap是基于jquery的,所以要先引入jquery --> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> <link rel="stylesheet" href="css/bootstrap.min.css"> </head> <body> <div class="container"> <div class="row"> <h2>按钮</h2> </div> </div> <div class="container"> <div class="row"> <!-- btn是先声明一个按钮,不要省略,后面可以附加具体的样式 --> <input type="button" value="button" class="btn btn-lg btn-success"> <br> <br> <a href="#" class="btn btn-primary">primary</a> <a href="#" class="btn btn-success">success</a> <a href="#" class="btn btn-info">info</a> <a href="#" class="btn btn-danger">danger</a> <a href="#" class="btn btn-warning">warning</a> <a href="#" class="btn btn-link">link</a> <a href="#" class="btn btn-danger active">active</a> <a href="#" class="btn btn-danger disabled">disabled</a> </div> <br> <br> <div class="row"> <a href="#" class="btn btn-primary btn-lg">大按钮</a> <a href="#" class="btn btn-danger">一般按钮</a> <a href="#" class="btn btn-success btn-md">中等按钮</a> <a href="#" class="btn btn-info btn-xs">小按钮</a> </div> <br> <br> <div class="row"> <a href="#" class="btn btn-primary btn-block">宽度是100%按钮</a> </div> <br> <br> <!-- 按钮组,三个按钮并在一起 --> <div class="row"> <div class="btn-group"> <a href="#" class="btn btn-primary">步骤一</a> <a href="#" class="btn btn-default">步骤二</a> <a href="#" class="btn btn-default">步骤三</a> </div> </div> <br> <br> <!-- 三个按钮占满一行,注意:这三个按钮是a标签做的,加上btn-group-justified没有问题,但是如果按钮是input,加上这个样式就会出现bug --> <div class="row"> <div class="btn-group btn-group-justified"> <a href="#" class="btn btn-primary">步骤一</a> <a href="#" class="btn btn-default">步骤二</a> <a href="#" class="btn btn-default">步骤三</a> </div> </div> <br> <br> <!-- 1、三个按钮占满一行,注意:这三个按钮如果是a标签做的,加上btn-group-justified没有问题,但是如果按钮是input,加上这个样式就会出现bug --> <div class="row"> <div class="btn-group btn-group-justified"> <input type="button" value="步骤一" class="btn btn-primary"> <input type="button" value="步骤二" class="btn btn-primary"> <input type="button" value="步骤三" class="btn btn-primary"> </div> </div> <br> <br> <!-- 修复上面说的bug,将每一个input用使用了btn-group样式的div包起来 --> <div class="row"> <div class="btn-group btn-group-justified"> <div class="btn-group"> <input type="button" value="步骤一" class="btn btn-primary"> </div> <div class="btn-group"> <input type="button" value="步骤二" class="btn btn-primary"> </div> <div class="btn-group"> <input type="button" value="步骤三" class="btn btn-default"> </div> </div> </div> </div> </body> </html>
bootstrap表单
1、form 声明一个表单域
2、form-inline 内联表单域
3、form-horizontal 水平排列表单域
4、form-group 表单组、包括表单文字和表单控件
5、form-control 文本输入框、下拉列表控件样式
6、checkbox checkbox-inline 多选框样式
7、radio radio-inline 单选框样式
8、input-group 表单控件组
9、input-group-addon 表单控件组物件样式
10、input-group-btn 表单控件组物件为按钮的样式
11、form-group-lg 大尺寸表单
12、form-group-sm 小尺寸表单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="css/bootstrap.min.css"> <script src="js/jquery.js"></script> <script src="js/bootstrap.min.js"></script> </head> <body> <div class="container"> <div class="row"> <h2>表单</h2> </div> </div> <div class="container"> <div class="row"> <form> <!-- 基本实例 单独的表单控件会被自动赋予一些全局样式。所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列 --> <div class="form-group"> <label for="exampleInputEmail1">Email address</label> <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email"> </div> <div class="form-group"> <label for="exampleInputPassword1">Password</label> <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password"> </div> <div class="form-group"> <label for="exampleInputFile">File input</label> <input type="file" id="exampleInputFile"> <p class="help-block">Example block-level help text here.</p> </div> <div class="checkbox"> <label> <input type="checkbox"> Check me out </label> </div> <button type="submit" class="btn btn-default">Submit</button> </form> <br> <br> <br> <!-- 内联表单 为 <form> 元素添加 .form-inline 类可使其内容左对齐并且表现为 inline-block 级别的控件。只适用于视口(viewport)至少在 768px 宽度时(视口宽度再小的话就会使表单折叠)。 可能需要手动设置宽度 在 Bootstrap 中,输入框和单选/多选框控件默认被设置为 width: 100%; 宽度。在内联表单,我们将这些元素的宽度设置为 width: auto;,因此,多个控件可以排列在同一行。根据你的布局需求,可能需要一些额外的定制化组件。 一定要添加 label 标签 如果你没有为每个输入控件设置 label 标签,屏幕阅读器将无法正确识别。对于这些内联表单,你可以通过为 label 设置 .sr-only 类将其隐藏。还有一些辅助技术提供label标签的替代方案,比如 aria-label、aria-labelledby 或 title 属性。如果这些都不存在,屏幕阅读器可能会采取使用 placeholder 属性,如果存在的话,使用占位符来替代其他的标记,但要注意,这种方法是不妥当的。 --> <!-- form-inline 内联表单: 只要在<form>中添加一个样式:form-inline,就变成了内联表单,不在乎每个控件占一行了 --> <form class="form-inline"> <div class="form-group"> <label for="exampleInputName2">Name</label> <input type="text" class="form-control" id="exampleInputName2" placeholder="Jane Doe"> </div> <div class="form-group"> <label for="exampleInputEmail2">Email</label> <input type="email" class="form-control" id="exampleInputEmail2" placeholder="jane.doe@example.com"> </div> <button type="submit" class="btn btn-default">Send invitation</button> </form> <br> <br> <br> <!-- form-horizontal 水平排列表单域 通过为表单添加 .form-horizontal 类,并联合使用 Bootstrap 预置的栅格类,可以将 label 标签和控件组水平并排布局。这样做将改变 .form-group 的行为,使其表现为栅格系统中的行(row),因此就无需再额外添加.row 了。 --> <form class="form-horizontal"> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Email</label> <div class="col-sm-10"> <input type="email" class="form-control" id="inputEmail3" placeholder="Email"> </div> </div> <div class="form-group"> <label for="inputPassword3" class="col-sm-2 control-label">Password</label> <div class="col-sm-10"> <input type="password" class="form-control" id="inputPassword3" placeholder="Password"> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <div class="checkbox"> <label> <input type="checkbox"> Remember me </label> </div> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default">Sign in</button> </div> </div> </form> <br> <br> <br> <!-- 表单控件组 --> <form> <div class="input-group"> <span class="input-group-addon">@</span> <input type="text" class="form-control"> </div> <!-- 表单控件组示例:搜索 但是这个搜索是一个span标签,不能点击--> <br> <br> <div class="input-group"> <input type="text" class="form-control"> <span class="input-group-addon">搜索</span> </div> <!-- 上面的span搜索不能点击,现在修正这个问题 --> <br> <br> <div class="input-group"> <input type="text" class="form-control"> <span class="input-group-btn"> <!-- 1、可以用input --> <!-- <input type="button" value="搜索" class="btn btn-default"> --> <!-- 2、也可以用button --> <button class="btn btn-primary">搜索</button> </span> </div> <br> <br> <!-- 同样是上面的搜索,现在不用“搜索”两个字,代替的是一个字体图片,在bootstrap网站的组件中有很多字体图片,图片的名字就是样式名,我们把‘搜索’删掉,换成一对<span>标签[当然你非要用div标签也可以],并给<span>添加一个样式名为图片名字的样式 另外,因为这个图片实际是文字,所以可以单独给它设置样式,比如font-size等 --> <div class="input-group"> <input type="text" class="form-control"> <span class="input-group-btn"> <button class="btn btn-primary"><span class="glyphicon glyphicon-search "></span></button> </span> </div> </form> </div> </div> <br> <br> <br> <br> <br> <br> </body> </html>

浙公网安备 33010602011771号