一、栅格系统
1、容器:包含两种容器,
2、数据行(.row)必须包含在容器中,在行(.row)中可以添加列(.column),但列数之和不能超过平分的总列数12,具体内容应当放置在列容器(.column)之内,而且只有列(.column)才可以作为行容器(.row)的直接子元素
col-lg-、col-md-、col-sm-、col-xs-
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-3 item1">
col
<p><img width="100%" src="src/img/b.jpg" alt=""></p>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-3 item2">
col
<p><img width="100%" src="src/img/b.jpg" alt=""></p>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-3 item3">
col
<p><img width="100%" src="src/img/b.jpg" alt=""></p>
</div>
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-3 item4">
col
<p><img width="100%" src="src/img/b.jpg" alt=""></p>
</div>
</div>
每个类名,都代表在该屏幕大小下才起作用
<div class="col-lg-6">
col
<p><img width="100%" src="src/img/b.jpg" alt=""></p>
</div>
<div class="col-lg-6">
col
<p><img width="100%" src="src/img/b.jpg" alt=""></p>
</div>
//只有在大屏幕下,才会排成一行,其他屏幕下,就当做col-lg-6这个类名没有生效,因为是div,独占一行,所以肯定就排2行了
满足条件的时候,每个div永远都是水平排列的,如果不满足条件了,就代表类名没有生效,因为是div,独占一行,所以肯定就依次往下排了
理解:每个div,上面的数值是几,就代表其占据了多少的空间,比如
.item1的div,
col-lg-3:在大屏幕,占据3块,即屏幕的四分之一
col-md-6:在中等屏幕,占据6块,即屏幕的二分之一
col-sm-12,col-xs-12:在小或超小屏幕,占据12块,即占据一整个屏幕,在这种屏幕下,其他的都得往下面排
3、
列偏移:只能往右偏
col-*-offset-n:div向左偏移n个网格单位,(1<= n <=12)
列排序:push往右偏,pull往左偏
<div class="col-lg-2 col-lg-push-10">col-lg-2</div>
<div class="col-lg-10 col-lg-pull-2">col-lg-10</div>
加上push、pull,效果相当于二者换了个位置
4、row可以嵌套,子级就以父级宽度为总宽度,然后再以12个网格平均分配
5、遇到网格高度不一样,排列不均匀,可以在需要的地方清除浮动:
<div class="clearfix"></div>
注意点:一个页面中,可以有多个容器,比如头部导航是100%宽度,就使用container-fluid;中间内容区域为固定宽度,就使用container;但是容器之间最好不要有嵌套 关系,比如container里面嵌套container
二、响应式工具
在不同的设备上,页面要展示的内容也不一样,电脑上展示的就多,手机上展示的就少,适当取舍;
比如右侧的导航菜单,大屏幕显示,小屏幕隐藏
概念:针对于不同设备展示或隐藏页面的内容
可见类:visible-a-b
a:lg md sm xs
b:block inline inline-block
举例:
<div class="col-lg-6 visible-lg-block"> col-lg-6 </div>
表示:在大屏幕上,div才显示,且以block的块级元素形式显示,否则都不显示
隐藏类:hidden-a
a:lg md sm xs
举例:
<div class="col-lg-6 hidden-xs hidden-sm"> col-lg-6 </div>
表示:在手机屏幕或上小屏幕上,div隐藏,其他情况都显示
三、Glyphicons字体图标
好处:减少请求、容易控制样式
用法:font-face、字体路径
四、预定义样式风格,
包括按钮btn-、弹框alert-、面板panel-、背景相关bg-、文字颜色text-
<button type="button" class="btn btn-primary">button</button>
<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<strong>Title!</strong> Alert body ...
</div>
<div class="panel panel-danger">
<div class="panel-heading">
<h4 class="panel-title">Panel title</h4>
</div>
<div class="panel-body">
Panel content
</div>
</div>
<p class="bg-primary">一行段落</p>
<span class="text-primary">文字颜色</span>
以上的样式分格,可以应用到所有的标签上,比如a标签
<a href="javascript:;" class="btn btn-primary">链接</a>
<a href="javascript:;" class="text-primary">链接</a>
<a href="javascript:;" class="bg-primary">链接</a>
四、大小
-[ lg、sm、xs ]:包括按钮、输入框等都可以应用此类来控制大小,这种大小和屏幕尺寸有关系;大的屏幕用大的按钮,小的屏幕用小的按钮
btn-lg、btn-sm、btn-xs
<input type="button" class="btn btn-primary btn-lg " value="按钮">
input-lg、input-sm、input-xs
<input type="text" class="form-control input-lg " placeholder="用户名">
五、按钮
基类:btn
样式:btn-default(默认) btn-link(链接)
大小:btn-[ lg、sm、xs ]
状态:active、disabled
种类:a input button,这三种可以用于按钮制作【推荐使用button来写按钮】
//input按钮文字写在value里,button和a写在标签里
<input type="button" class="btn btn-primary btn-lg " value="按钮">
<a href="#" class="btn btn-primary btn-lg ">按钮</a>
<button class="btn btn-primary">按钮</button>
块级:btn-block,按钮默认是行内元素,加上这个就变成块级元素,适合在移动端使用
按钮组:
<a href="#" class="btn btn-primary">按钮 <span class="caret"></span> </a>
<button class="btn btn-primary">按钮 <span class="caret"></span> </button>
input不行
箭头向上:
<div class="btn-group dropup"> // 添加类名dropup
<button type="button" class="btn btn-primary">按钮1 <span class="caret"></span></button>
</div>
六、下拉菜单
属性:
data-toggle="dropdown"(js交互操作)不单单是下拉菜单,别的组件也是如此,比如选项卡:data-toggle="tab"
aria-(针对特殊人群)
role(针对特殊人群)
open
dropdown-menu-right:加在dropdown-menu上,可以使得下拉菜单靠右
dropdown-header
divider
实现下拉菜单:三个class+data-toggle="dropdown"
三个class:父级dropdown,触发按钮dropdown-toggle,下拉菜单内容dropdown-menu
触发按钮上加上data-toggle="dropdown"
默认下拉框
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button"" data-toggle="dropdown">
Dropdown<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Separated link</a></li>
</ul>
</div>
<div class="dropup">
<button class="btn btn-default dropdown-toggle" type="button"
data-target=".dropdown"
data-toggle="dropdown">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li class="text-center"><a href="#">Action</a></li>
<li class="text-center"><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li><a href="#">Separated link</a></li>
</ul>
</div>
$("#drop2").on("shown.bs.dropdown",function(){
alert(1)
});
不仅仅是button可以做下拉菜单,a标签也可以,只要加上了data-toggle="dropdown"
下拉菜单的展开隐藏,可以通过标签上写:data-toggle="dropdown"控制,也可以通过写js控制
比如:
$(".dropdown-toggle").dropdown(); //也可以控制下拉菜单的显示,但是不能隐藏,这是区别,注意!!
其他的,比如选项卡,用js控制的话都是类型的原理:方法名和自定义属性名一样
标签:data-toggle="tab"
js:$(".nav-tabs").tabs();
【注意点】用js控制多个下拉菜单,彼此之前不互相影响,然后再借用js,就可以做到显示隐藏,且多个下拉框之间互不影响;
但是用标签来写,彼此之间会有影响,且点击一个下拉框,会默认把其他的下拉框都隐藏,只显示当前点击的那个
data-target=".dropdown" :指定哪些元素参与控制
$(".dropdown").on("show.bs.dropdown",function(){
alert(1)
});
$(".dropdown").on("shown.bs.dropdown",function(){
alert(1)
});
$(".dropdown").on("hide.bs.dropdown",function(){
alert(1)
});
$(".dropdown").on("hiden.bs.dropdown",function(){
alert(1)
});
七、选项卡
头部:
带下拉菜单的切换
八、导航条
基类:navbar
navbar-default
nav navbar-nav
navbar-inverse
navbar-static-top:去掉两边圆角
navbar-fixed-top:固定在头部
navbar-fixed-bottom:固定在底部
遮挡内容的问题:给body加上margin-top即可
navbar-header
navbar-brand:网站logo,可以是文字或者图片
navbar-left:导航菜单靠左
navbar-right:导航菜单靠右
navbar-btn:按钮在导航条里面上下居中
navbar-link:链接在导航条里面上下居中
navbar-text:文字在导航条里面上下居中
navbar-form
带下拉菜单的导航条
响应式导航条:
navbar-toggle
collapse
navbar-collapse
滚动监听
data-spy
data-target
data-offset:监测走到距离顶部多少距离还是发生改变
举例:监听body,页面走到哪里,导航条随之改变对应的导航
body{ position:relative; }
.section{padding-top:50px;}
<body data-spy="scroll" data-target="#myNavbar" data-offset="50"></body>
导航条的导航里面的a标签的href值对应,页面内容区域的id
九、各个组件
1、bs3-thumbnail:content
缩略图:
2、bs3-alert-success
警告框:可以用于在填写表单时的提示信息,填写是否符合要求
3、bs3-media
媒体对象
左右对齐结构,左边图片右边文字或者左边文字右边图片,可以用于构建新闻,不仅仅是图片,可以是视频等等,文字也可以带有标题,类似于新闻标题
4、bs3-list-group
列表组
和表格不一样,只有表格的一列,用于显示一列数据
5、徽章
6、bs3-panel-success
面版
可以带有头部、内容区、底部
十、零碎知识点
1、
左浮动:pull-left;
右浮动:pull-right;
固定定位:affix;
居中:
2、在容器里面,
<div class="container">
<div class="bar pull-right">bar</div>
</div>
</div>
bar所在的div不能和右边重合,会有padding值,解决办法:
放进row里面或者拿出container,即:
<div class="container">
<div class="row">
<div class="bar pull-right">bar</div> //放进row里面
</div>
</div>
<div class="bar pull-right">bar</div> //拿出container外面
完整的选项卡代码
<div role="tabpanel">
<!-- Tab 头 -->
<ul class="nav nav-tabs">
<li class="active">
<a href="#home" data-toggle="tab">home</a>
</li>
<li>
<a href="#tab" data-toggle="tab">tab</a>
</li>
</ul>
<!-- Tab 内容 -->
<div class="tab-content">
<div class="tab-pane active fade in" id="home">home的内容</div>
<div class="tab-pane in" id="tab">tab的内容</div>
</div>
</div>
$("#myTabs a").mouseover(function(){
$(this).tab("show");
});
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。