Bootstrap_2.组件


封装功能性的模块,按照boot要求的 层次结构以及 类名套用

1 常用组件

下拉菜单

下拉菜单的三级结构:

	<div clss="dropdown">
        <button class="btn btn-primary dropdown-toggle" data-toggle="dropdown"></button>
        <div class="dropdown-menu">
            <a href="#" class="dropdown-item">菜单1</a>
            <a href="#" class="dropdown-item">菜单2</a>
            <a href="#" class="dropdown-item">菜单3</a>
        </div>
    </div>

1.使用一个类名为dropdown的容器包裹整个下拉菜单的元素

  <div class="dropdown"></div>

2.内部菜单按钮
class="dropdown-toggle"作用:向下的小箭头
事件激活 自定义属性 data-toggle=“dropdown”

<button class="btn btn-warning
	dropdown-toggle" data-toggle="dropdown">下拉菜单</button>

3.菜单栏 div.dropdown-menu
下拉菜单使用了div/ul,类名为dropdown-menu

	       <div class="dropdown-menu"></div>
	        <ul class="dropdown-menu"></ul>

4.菜单项使用li或者其它标签,必须设置类名dropdown-item

    <a href="#" class="dropdown-item">1111</a>
    <li class="dropdown-item">1111</li>

5.菜单项中几个可选的类名
标题:<li class=“dropdown-header”>
在菜单项之间分割线:<div class=“dropdown-divider”>
禁用:<li class=“dropdown-item disabled”>
激活:<li class=“dropdown-item active”>

提示:data-toggle=“dropdown”,会被bootstrap.min.js选中,添加事件监听;boot为我们提供了按照下拉菜单的方式去切换数据(显示或隐藏)

按钮组

外包裹添加<div class=“btn-group”>分组
按钮工具栏 btn-toolbar
设置按钮大小.btn-group-lg|sm
垂直排列<div class=“btn-group-vertical”>

<div class="btn-group-vertical">
    <button class="btn btn-success btn-group-sm">赞</button>
    <button class="btn btn-danger btn-group-lg">踩</button>
    <button class="btn btn-warning btn-group-xl">评</button>
</div>

信息提示框

1.外包裹class=“alert”
修改颜色alert-danger/warning…
内部x要使用类.class需要在父级添加alert-dismissible
2.内部有文本提示
3.内部有关闭提示框的X
data-dismiss=“alert” class=“close”

<div class="alert alert-danger w-50 alert-dismissible">
    <span class="close" data-dismiss="alert">&times;</span>
    请检查用户信息
</div>

data-dismiss="alert"事件触发,触发了驳回关闭alert的事件;
注意:span想使用close类,外包裹必须有alert-dismissible

导航

Bootstrap提供三种导航
1)水平导航:
ul.class=“nav”;元素变成
li中class=“nav-item”
a.class=“nav-link”
元素ul的类:
nav-justified设置导航项等宽显示(为了让nav-item有样式)
justify-content-*:between/around/center/end;设置导航的对齐方式,flex的主轴对齐,所以使用前需要把.nav-justified删除;
flex-row/column/reverse都可以生效;

2)选项卡导航:
选项卡导航分为两部分——导航部分和显示内容
导航部分:
ul必须有类名:nav nav-tabs
li必须有类名:nav-item
a必须有类名:nav-link
a有自定义属性data-toggle=“tab”,事件触发后以tab的方式切换数据;
a的href属性指向想要显示内容的id

显示内容:
外层div必须有类名tab-content,本身没有样式
内层具体内容类名tab-pane---->display:none
具体内容的元素必须具有id,给a标签href引用
active类,用于默认显示某个元素内容以及对应导航栏

3)胶囊导航
ul的类nav nav-pills
li的类nav nav-item
a的类 nav-link
a的自定义属性 data-toggle=“pill”
a的href指向内容的id
内容部分同选项卡导航

导航栏

外包裹div使用.navbar来创建导航栏(弹性+相对定位)
需要navbar-expand-xl/lg/md/sm来创建响应式导航栏,将ul类默认的主轴变为row
navbar-expand-* 比指定屏幕更大展开横向显示
比指定屏幕小垂直堆叠显示
导航栏内部的导航可以使用ul
ul需要类 navbar-nav,默认弹性,主轴column
li的类 nav-item
a的类 nav-link
注意:可以给导航栏设置bg-*导航栏背景色

折叠

  1. 使用a标签折叠内容
    a标签data-toggle=“collapse"事件激活时,使用折叠的方式去切换数据, 折叠的目标href=”#内容id";
    内容的标签,必须写class=“collapse”,id被a标签的href引用 ;
  2. 使用button标签(行内块)折叠内容
    在button中添加data-toggle=“collapse"和折叠目标data-target=”#id",#id对应折叠内容的id
    在折叠内容中定义collapse类
    由于button没有href属性,使用自定义属性
    data-target="#内容id",
    其它写法与a标签一样

折叠导航栏

  1. 外层包裹div class=“navbar navbar-expand-sm bg-dark navbar-dark”
    导航栏基础类navbar
    响应式导航栏 navbar-expand-sm
    背景颜色为深色bg-dark
    navbar-dark本身没有样式,作为后代选择器的父选择器,控制后代们的样式(navbar-brand nav-link navbar-toggler-icon navbar-toggler)

  2. 不会被折叠的a标签
    a class=“navbar-brand”

  3. 折叠按钮button.navbar-toggler
    .navbar-expand-* .navbar-toggler{设置什么时候显示/隐藏}
    btn需要写自定义属性data-toggle=“collapse” data-target="#内容-id"

  4. 内容div.collapse .navbar-collapse
    .navbar-collapse设置折叠导航打开的位置;
    导航的内容:
    ul.navbar-nav>li.nav-item>a.nav-link

       <div class="navbar navbar-expand-md bg-dark
        navbar-dark">
            <!-- 不被折叠的导航选项-->
            <a href="#" class="navbar-brand">Boot中文网</a>
            <!-- 小屏幕下最右侧的按钮:上面有三条横线-->
            <button class="navbar-toggler" data-toggle="collapse" data-target="#content">
                <span class="navbar-toggler-icon"></span>
            </button>
            <!-- 导航栏中的菜单,小屏幕隐藏(垂直显示),大屏幕横向显示-->
            <div class="collapse navbar-collapse" id="content">
                <ul class="navbar-nav">
                    <li class="nav-item">
                        <a href="#" class="nav-link">JQuery</a>
                    </li>
                    <li class="nav-item">
                        <a href="#" class="nav-link">JavaScript</a>
                    </li>
                    <li class="nav-item">
                        <a href="#" class="nav-link">HTML/CSS</a>
                    </li>
                    <li class="nav-item">
                        <a href="#" class="nav-link">BootStrap</a>
                    </li>
                </ul>
            </div>
        </div>
    

卡片

用于文字和图片的展示
外包裹div class=“card”
内部3部分

  1. div class=“card-header”
  2. div class=“card-body”
  3. div class=“card-footer”

在卡片中可以添加超链接,a class=“card-link”

手风琴(卡片和折叠)

  1. 最外层div#parent,id是为了做data-parent="#parent",目的是只允许一个折叠同时打开(需要在折叠元素上添加data-parent="#parent"外层大包裹的ID)

  2. duv.card>div.card-header>a.card-link
    a标签中写折叠事件和折叠对象
    data-toggle=“collapse” hredf="#p1"

  3. 折叠内容
    div.collapse#p1>div.card-body>p

  4. 注意,.card-body和.collapse不能在同一个div,冲突导致卡顿

    <div id="parent">
        <div class="card">
            <div class="card-header">
                <a  class="card-link" href="#p1" data-toggle="collapse">卡片一</a>
            </div>
            <div class="collapse show" id="p1" data-parent="#parent">
                <div class="card-body">
                    内容一:我爱学习
                </div>
            </div>
        </div>
    

媒体对象

使用div class="media"把内容包裹起来,形成对象的显示方式,定义弹性布局;
项目有img,div.media-body,内部元素可以使用弹性布局一切类align-self-center/end/…对齐排列

    <ul class="list-unstyled">
        <li>
            <div class="media border p-3">
                <img src="../bootstrap1/img/1.jpg"
                     class="rounded mr-4 align-self-center"/>
                <div class="media-body bg-light">
                    <h4>多媒体</h4>
                    <p>学的不仅是技术,更是梦想!!!</p>
                </div>
            </div>
        </li>
</ul>

轮播

  1. 外包裹
    div class=“carousel” data-ride=“carousel”
    创建轮播,使用carousel类,让图片动起来data-ride=“carousel”

  2. 内部第一层,轮播图片

    <div class="carousel-inner">
      <div class="carousel-item active">img</div>
      <div class="carousel-item">img</div>
      <div class="carousel-item">img</div>
    </div>
    

    使用类名div.carousel-inner包裹所有图片,
    使用div.carousel-item包裹img,
    carousel-item ---->display:none;把所有图片隐藏
    .carousel-item.active 会把隐藏的div显示
    在carousel-item内部,可以添加div.carousel-caption添加文字和标题

  3. 内层第二部分,导航标识符
    使用ul class=“carousel-indicators”
    .carousel-indicators>li 样式已经写好,并且随着图片轮播,改变表示,还不能通过点击改变图片
    li class=“active” 背景变为白色,被激活的li
    在li中 data-slide-to=“0” 图片的下标,从0开始
    data-target="#最外层包裹.carousel的ID"
    重写boot提供的样式,让指示器变为圆点,背景颜色

  4. 内部第三部分:左右箭头
    a class=" carousel-control-prev"
    左箭头<span class="carousel-control-prev-icon">
    a class=" carousel-control-next"
    右箭头<span class="carousel-control-next-icon">
    需要事件,data-slide=“prev/next” data-target="#最外层包裹.carousel的ID"

总结:bootstrap为我们提供了比较多的样式类,如果提供的样式不符合我们的需求,我们可以灵活的取修改样式

模态框

modal模态框是覆盖在父窗体上的子窗体,可以在不离开父窗体的情况下,与用户交互,提交交互信息
1.外包裹div.modal
2.内部div.modal>div.modal.dialog>div.modal-content>modal-header/body/footer

2 其它组件

徽章badge

即添加颜色样式和圆角

<ul class="list-group list-unstyled">
    <li class="list-group-item">赞
        <a href="#" class="badge badge-pill btn-danger">365</a></li>
</ul>

巨幕

巨大边框.jumbotron

分页

外包裹pagination创建分页
使用pagination-lg/sm设置分页条大小
内部li.page-item>a.page-link
使用active和disabled修饰li

<ul class="pagination pagination-sm">
    <li class="page-item disabled mr-2"><a href="#" class="page-link">上一页</a></li>
    <li class="page-item active"><a href="#" class="page-link">1</a></li>
    <li class="page-item ml-2"><a href="#" class="page-link">下一页</a></li>
</ul>

面包屑导航

常用于有层次关系的导航
ul.breadcrumb>li.breadcrumb-item>a
改变item连接符号:
.breadcrumb-item + .breadcrumb-item::before {content: “/”;}

进度条

外层包裹div.progress(进度条槽)
普通进度条div.progress-bar
条纹进度条div.progress-bar-striped
动画进度条progress-bar-animated添加在条纹进度条的div才能看到效果
w-* 设置进度,bg-* 设置进度条颜色
同一进度条下调整不同区间颜色只需要在同一div.progress写不同宽度的进度条

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值