当前位置: 首页 > news >正文

bootstrap

// <meta name="viewport" content="width=device-width, initial-scale=1.0">  响应式必须
// <meta http-equiv="X-UA-Compatible" content="IE=edge"> 让网页尽可能仿真显示

// <!-- html5shiv.js和respond.js IE8支持HTML5元素和媒体查询 -->
// 用来使IE9以下兼容html5
<!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->


// 头文件的引入顺序,先bootstrap.css + jquery.js + proper.js + style.css + script.js
// <link rel="stylesheet" type="text/css" href="https://unpkg.com/bootstrap@4.0.0-beta.2/dist/css/bootstrap.css">
//     <script type="text/javascript" src="https://unpkg.com/jquery@3.2.1/dist/jquery.js"></script>
//     <script type="text/javascript" src='https://unpkg.com/popper.js@1.12.6/dist/umd/popper.js'></script>
//     <script type="text/javascript" src="https://unpkg.com/bootstrap@4.0.0-beta.2/dist/js/bootstrap.js"></script>

// vh 百分比单位,100vh相当于铺满整个屏幕
// -webkit-font-smoothing: antialiased;  抗锯齿
// div.container 容器  里面可以放:
        // div.row 行      行对齐的方
        //             div.row.align-items-start(end|center)
        //             div.row.justify-content 对齐方式 特殊(between)会在两边
        // div.col 列
        //             列对齐方式 div.rol.align-self-start
        //             若要占用多行,可以用div.col-n  默认一行有12个
        // div.w-100 分行

// div.col-sm-12 当小于576宽度时,一列占12个,另外的自动移动到下一行
// col-lg-3 当大于992宽度时,一列占3个

// 使用时必须加viewport meta
<567 xs 
>576 sm
>768 md
>992 lg
>1200 etra large


// 显示反馈信息
// <div class="alert alert-primary alert-dismissible fade show" role="alert">
//     <h4>Alert</h4>
//     hello ~ <a href="#" class="alert-link">see more</a>
//     <button class="close " data-dismiss='alert'>
//         &times;
//     </button>
// </div>
// <button class="btn btn-danger close-alert">
//     Close
// </button>

// 关闭标签事件
$('.close-alert').click(() => {
    $('.alert').alert('close');
});

$('.alert').on('close.bs.alert', () => {
    console.log('close alert');
});
$('.alert').on('closed.bs.alert', () => {
    console.log('closed alert');
});

// badge标签组件
// <span class="badge badge-secondary badge-pill">new</span>

// breadcrumb导航路径组件
// <nav>
//     <ol class="breadcrumb">
//         <li class="breadcrumb-item"><a href="#">首页</a></li>
//         <li class="breadcrumb-item"><a href="#">课程</a></li>
//         <li class="breadcrumb-item active">Bootstrap</li>
//     </ol>
// </nav>

// button 按钮组件
// <button href="#" class="btn  btn-outline-danger btn-lg disabled">
//     Button
// </button>

// 按钮群组
// <div class="btn-group-vertical btn-group-sm"> 
//     // 垂直显示
// <div class="btn-group btn-group-sm">  
//     // 水平
//     <button class="btn btn-secondary">1</button>
//     <button class="btn btn-secondary">2</button>
//     <button class="btn btn-secondary">3</button>
// </div>

// card组件  实现瀑布流
// <div class="component">
//         <div class="card-columns">
//             <div class="card">
//             <!-- <img src="./3.jpg" class="card-img"> -->
//             <!-- <div class="card-header">
//                 <h4>card</h4>
//             </div> -->
//             <div class="card-body">
//                 <h4 class="card-title">title</h4>
//                 <p class="card-text">decription...</p>
//                 <p class="card-text">decription...</p>
//                 <p class="card-text">decription...</p>
//                 <a href="#" class="card-link">action</a>
//                 <a href="#" class="card-link">action</a>
//             </div>
//             <!-- <div class="card-footer">footer</div> -->
//         </div>
//         <div class="card">
//             <!-- <img src="./3.jpg" class="card-img"> -->
//             <!-- <div class="card-header">
//                 <h4>card</h4>
//             </div> -->
//             <div class="card-body">
//                 <h4 class="card-title">title</h4>
//                 <p class="card-text">decription...</p>
//                 <a href="#" class="card-link">action</a>
//                 <a href="#" class="card-link">action</a>
//             </div>
//             <!-- <div class="card-footer">footer</div> -->
//         </div>
//         <div class="card">
//             <!-- <img src="./3.jpg" class="card-img"> -->
//             <!-- <div class="card-header">
//                 <h4>card</h4>
//             </div> -->
//             <div class="card-body">
//                 <h4 class="card-title">title</h4>
//                 <p class="card-text">decription...</p>
//                 <a href="#" class="card-link">action</a>
//                 <a href="#" class="card-link">action</a>
//             </div>
//             <!-- <div class="card-footer">footer</div> -->
//         </div>
//         <div class="card">
//             <!-- <img src="./3.jpg" class="card-img"> -->
//             <!-- <div class="card-header">
//                 <h4>card</h4>
//             </div> -->
//             <div class="card-body">
//                 <h4 class="card-title">title</h4>
//                 <p class="card-text">decription...</p>
//                 <a href="#" class="card-link">action</a>
//                 <a href="#" class="card-link">action</a>
//             </div>
//             <!-- <div class="card-footer">footer</div> -->
//         </div>
//         <div class="card">
//             <!-- <img src="./3.jpg" class="card-img"> -->
//             <!-- <div class="card-header">
//                 <h4>card</h4>
//             </div> -->
//             <div class="card-body">
//                 <h4 class="card-title">title</h4>
//                 <p class="card-text">decription...</p>
//                 <a href="#" class="card-link">action</a>
//                 <a href="#" class="card-link">action</a>
//             </div>
//             <!-- <div class="card-footer">footer</div> -->
//         </div>
//         <div class="card">
//             <!-- <img src="./3.jpg" class="card-img"> -->
//             <!-- <div class="card-header">
//                 <h4>card</h4>
//             </div> -->
//             <div class="card-body">
//                 <h4 class="card-title">title</h4>
//                 <p class="card-text">decription...</p>
//                 <a href="#" class="card-link">action</a>
//                 <a href="#" class="card-link">action</a>
//             </div>
//             <!-- <div class="card-footer">footer</div> -->
//         </div>
//         </div>
//     </div>

// carousel 组件  实现轮播图
// <div class="carousel slide" data-ride='carousel'>
//     <div class="carousel-inner">
//         <div class="carousel-item active">
//             <img class="d-block w-100" src="./1.jpg">
//         </div>
//         <div class="carousel-item">
//             <img class="d-block w-100" src="./2.jpg">
//         </div>
//         <div class="carousel-item">
//             <img class="d-block w-100" src="./3.jpg">
//         </div>
//     </div>
// </div>

// 轮播图
// <div class="carousel slide" id="carousel-demo">
//     <ol class="carousel-indicators">
//         <li data-target="#carousel-demo" data-slide-to="0" class="active"></li>
//         <li data-target="#carousel-demo" data-slide-to="1"></li>
//         <li data-target="#carousel-demo" data-slide-to="2"></li>
//     </ol>
//     <div class="carousel-inner">
//         <div class="carousel-item active">
//             <img class="d-block w-100" src="./1.jpg">
//         </div>
//         <div class="carousel-item">
//             <img class="d-block w-100" src="./2.jpg">
//         </div>
//         <div class="carousel-item">
//             <img class="d-block w-100" src="./3.jpg">
//         </div>
//     </div>
//     <a href="#carousel-demo" class="carousel-control-prev" data-slide="prev">
//         <span class="carousel-control-prev-icon"></span>
//     </a>
//     <a href="#carousel-demo" class="carousel-control-next" data-slide="next">
//         <span class="carousel-control-next-icon"></span>
//     </a>
// </div>

// 完整轮播图
// <div class="carousel slide demo" id="carousel-demo" data-ride='carousel'>
//     <ol class="carousel-indicators">
//         <li data-target="#carousel-demo" data-slide-to="0" class="active"></li>
//         <li data-target="#carousel-demo" data-slide-to="1"></li>
//         <li data-target="#carousel-demo" data-slide-to="2"></li>
//     </ol>
//     <div class="carousel-inner">
//         <div class="carousel-item active">
//             <img class="d-block w-100" src="./1.jpg">
//         </div>
//         <div class="carousel-item">
//             <img class="d-block w-100" src="./2.jpg">
//         </div>
//         <div class="carousel-item">
//             <img class="d-block w-100" src="./3.jpg">
//         </div>
//     </div>
//     <a href="#carousel-demo" class="carousel-control-prev" data-slide="prev">
//         <span class="carousel-control-prev-icon"></span>
//     </a>
//     <a href="#carousel-demo" class="carousel-control-next" data-slide="next">
//         <span class="carousel-control-next-icon"></span>
//     </a>
// </div>

// 轮播图监听
// $('.carousel').on('slide.bs.carousel', (event) => {
//     console.log('slide :', ` 
//         方向 : ${event.direction}
//         从 : ${event.from}
//         到 : ${event.to}
//     `);
// });

// $('.carousel').on('slid.bs.carousel', (event) => {
//     console.log('slid', `
//         方向 : ${event.direction}
//         从 : ${event.from}
//         到 : ${event.to}
//     `);
// });

// collapse切换
//         <a href="#collapse-demo" data-toggle='collapse' class="btn btn-primary">action link</a>
//         <button href="#collapse-demo" data-toggle='collapse' class="btn btn-primary">action button</button>
        
//         <div class="collapse" id="collapse-demo">
//             <div class="card card-body">
//                 Hello ~
//             </div>
//         </div>

// 自动隐藏另外一个  去掉data-parent后可以让所有都打开
<div id="accordion">
        <div class="card">
            <div class="card-header">
                <a href="#collapse-1" data-toggle='collapse' data-parent='#accordion'>title</a>
            </div>
            <div class="collapse show" id="collapse-1">
                <div class="card-body">Hello ~ </div>
            </div>
        </div>
        <div class="card">
            <div class="card-header">
                <a href="#collapse-2" data-toggle='collapse' data-parent='#accordion'>title</a>
            </div>
            <div class="collapse" id="collapse-2">
                <div class="card-body">Hello ~ </div>
            </div>
        </div>
</div>

// 下拉菜单
<div class="dropdown">
    <button class="btn btn-outline-warning dropdown-toggle" data-toggle='dropdown'>Dropdown</button>
    <a href="#" class="btn btn-success dropdown-toggle" data-toggle='dropdown'>Dropdown</a>
    <div class="dropdown-menu">
        <div class="dropdown-header">Web Language</div>
        <a href="#" class="dropdown-item">HTML</a>
        <a href="#" class="dropdown-item">CSS</a>
        <a href="#" class="dropdown-item">JavaScript</a>
        <div class="dropdown-divider"></div>
        <a href="#" class="dropdown-item">More</a>
    </div>
</div>

// 分离式下拉菜单
<div class="btn-group"> 
    <a href="#" class="btn btn-success">Dropdown</a>
    <button class="btn btn-success dropdown-toggle dropdown-toggle-split" data-toggle='dropdown'><span class="sr-only">Toggle Dropdown</span></button>
    <div class="dropdown-menu">
        <div class="dropdown-header">Web Language</div>
        <a href="#" class="dropdown-item">HTML</a>
        <a href="#" class="dropdown-item">CSS</a>
        <a href="#" class="dropdown-item">JavaScript</a>
        <div class="dropdown-divider"></div>
        <a href="#" class="dropdown-item">More</a>
    </div>
</div>

// 上拉菜单
<div class="btn-group dropup" style="position: absolute;bottom: 30%;"> 
    <a href="#" class="btn btn-success">Dropdown</a>
    <button class="btn btn-success dropdown-toggle dropdown-toggle-split" data-toggle='dropdown' data-offset="10px"><span class="sr-only">Toggle Dropdown</span></button>
    <div class="dropdown-menu dropdown-menu-left">
        <div class="dropdown-header">Web Language</div>
        <a href="#" class="dropdown-item">HTML</a>
        <a href="#" class="dropdown-item">CSS</a>
        <a href="#" class="dropdown-item">JavaScript</a>
        <div class="dropdown-divider"></div>
        <a href="#" class="dropdown-item">More</a>
    </div>
</div>

// 菜单事件
<div class="btn-group dropup" id="dropdown-demo" style="position: absolute;bottom: 30%;"> 
    <a href="#" class="btn btn-success">Dropdown</a>
    <button class="btn btn-success dropdown-toggle dropdown-toggle-split" data-toggle='dropdown' data-offset="10px"><span class="sr-only">Toggle Dropdown</span></button>
    <div class="dropdown-menu dropdown-menu-left">
        <div class="dropdown-header">Web Language</div>
        <a href="#" class="dropdown-item">HTML</a>
        <a href="#" class="dropdown-item">CSS</a>
        <a href="#" class="dropdown-item">JavaScript</a>
        <div class="dropdown-divider"></div>
        <a href="#" class="dropdown-item">More</a>
    </div>
</div>

$('#dropdown-demo').on('show.bs.dropdown', function() {
    console.log('show');
});

$('#dropdown-demo').on('shown.bs.dropdown', function() {
    console.log('shown');
});
$('#dropdown-demo').on('hide.bs.dropdown', function() {
    console.log('hide');
});
$('#dropdown-demo').on('hidden.bs.dropdown', function() {
    console.log('hidden');
});

// 打屏幕
<div class="jumbotron">
    <!-- display-1 到 4 逐渐变小  -->
    <h1 class="display-2">hello</h1>
    <!-- mb  margin-bottom -->
    <p class="leader mb-4">Welcome to california</p>
    <a href="#" class="btn btn-primary btn-lg">Subscribe</a>
</div>

// 列表群组
<div class="list-group">
     <a href="#" class="list-group-item list-group-item-action disabled">HTML</a>
    <a href="#" class="list-group-item list-group-item-action">CSS</a>
    <a href="#" class="list-group-item list-group-item-action d-flex justify-content-between align-items-center">
        JavaScript
        <span class="badge badge-primary badge-pill">12</span>
    </a>
 </div>

// 切换显示列表群组
 <div class="row">
    <div class="col-4">
        <div class="list-group">
             <a data-toggle='list' href="#html-content" class="list-group-item list-group-item-action active">HTML</a>
            <a data-toggle='list' href="#css-content" class="list-group-item list-group-item-action">CSS</a>
            <a data-toggle='list' href="#javascript-content" class="list-group-item list-group-item-action">JavaScript</a>
         </div>
    </div>
    <div class="col-8">
        <div class="tab-content">
             <div class="tab-pane fade show active" id="html-content">Hello HTML</div>
            <div class="tab-pane fade" id="css-content">Hello CSS</div>
            <div class="tab-pane fade" id="javascript-content">Hello javascript</div>
         </div>
    </div>
</div>


// js操作 list-group
<div id="tab-demo" class="row">
    <div class="col-4">
        <div class="list-group">
             <a href="#html-content" class="list-group-item list-group-item-action active">HTML</a>
            <a href="#css-content" class="list-group-item list-group-item-action">CSS</a>
            <a href="#javascript-content" class="list-group-item list-group-item-action">JavaScript</a>
         </div>
    </div>
    <div class="col-8">
        <div class="tab-content">
             <div class="tab-pane fade show active" id="html-content">Hello HTML</div>
            <div class="tab-pane fade" id="css-content">Hello CSS</div>
            <div class="tab-pane fade" id="javascript-content">Hello javascript</div>
         </div>
    </div>
</div>

$('#tab-demo .list-group a').click(function (event) {
    event.preventDefault();
    $(this).tab('show');
}).on('show.bs.tab', function (event) {
    console.log('开始显示:' + event.target.getAttribute('href'));
}).on('shown.bs.tab', function (event) {
    console.log('完全显示:' + event.target.getAttribute('href'));
}).on('hide.bs.tab', function (event) {
    console.log('开始隐藏:' + event.target.getAttribute('href'));
}).on('hidden.bs.tab', function (event) {
    console.log('完全隐藏:' + event.target.getAttribute('href'));
});

// 对话框  data-backdrop='false'   取消背景变色
<div id="modal-demo" class="modal fade show">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">modal</h5>
                <button class="close" data-dismiss='modal'>&times</button>
            </div>
            <div class="modal-body">
                <p>Hello ~ </p>
            </div>
            <div class="modal-footer">
                <button class="btn btn-second">取消</button>
                <button class="btn btn-primary">确认</button>
            </div>
        </div>
    </div>
</div>

<button class="btn btn-danger" data-toggle='modal' data-target='#modal-demo'>删除</button>

// 显示对话框
// $('#modal-demo').modal('show');

$('#modal-demo').on('show.bs.modal', function () {
    console.log('show');
}).on('shown.bs.modal', function () {
    console.log('shown');
}).on('hide.bs.modal', function () {
    console.log('hide');    
}).on('hidden.bs.modal', function () {
    console.log('hidden');    
})

// 导航栏
<ul class="nav nav-pills nav-fill">
    <li class="nav-item">
        <a href="#" class="active nav-link">HTML</a>
    </li>
    <li class="nav-item">
        <a href="#" class="nav-link">CSS</a>
    </li>
    <li class="nav-item">
        <a href="#" class="nav-link">JavaScript</a>
    </li>
</ul>

<nav class="navbar nav-expand-md navbar-light bg-light">
    <a href="#" class="navbar-brand">宁浩</a>
    <ul class="navbar-nav">
        <li class="nav-items">
            <a href="#" class="nav-link">学习</a>
        </li>
        <li class="nav-items">
            <a href="#" class="nav-link">学习</a>
        </li>
        <li class="nav-items">
            <a href="#" class="nav-link">学习</a>
        </li>
    </ul>
</nav>

// 切换显示导航栏内容 nav中加fixed-top可以一直在顶部显示
<nav class="navbar navbar-expand-md navbar-light bg-light">
    <a href="#" class="navbar-brand">宁浩</a>
    <button class="navbar-toggler" data-toggle="collapse" data-target="#navbar-content">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div id="navbar-content" class="collapse navbar-collapse">
        <ul class="navbar-nav">
            <li class="nav-item">
                <a href="#" class="nav-link">学习</a>
            </li>
            <li class="nav-item">
                <a href="#" class="nav-link">学习</a>
            </li>
            <li class="nav-item">
                <a href="#" class="nav-link">学习</a>
            </li>
        </ul>    
    </div>
    
</nav>

// 分页器
<!-- pagination-sm调整大小 -->
<ul class="pagination pagination-sm">
    <li class="page-item disabled">
        <a href="#" class="page-link">后退</a>
    </li>
    <li class="page-item active">
        <a href="#" class="page-link">1</a>
    </li>    
    <li class="page-item">
        <a href="#" class="page-link">2</a>
    </li>
    <li class="page-item">
        <a href="#" class="page-link">3</a>
    </li>
    <li class="page-item">
        <a href="#" class="page-link">前进</a>
    </li>
</ul>    

// 提示信息
<!-- data-trigger点其他地方也可以隐藏 -->
<!-- data-placement出现的位置 -->
<button class="btn btn-primary" data-toggle='popover' title="一重山" data-content='lksajdflkjasdf' data-placement='bottom' data-trigger='focus'>
    Pop
</button>

$('[data-toggle=popover]').popover();

// 进度条
<div class="progress">
    <!-- striped斜线  animated动 bg-danger变红-->
    <div class="bg-danger progress-bar progress-bar-striped progress-bar-animated" style="width:32%">32%</div>
</div>

// 滚动条
// data-spy='scroll' data-target='#nav-demo' body中加这一句 可以根据页面的位置切换导航栏显示
<div class="demo component" style="height: 300vh;">
    <div class="row">
        <div class="col-3">
            <ul id="nav-demo" class="nav nav-pills flex-column position-fixed p-3 text-left bg-light">
                <li class="nav-item">
                    <a href="#html" class="nav-link">HTML</a>
                </li>
                <li class="nav-item">
                    <a href="#css" class="nav-link">CSS</a>
                </li>
                <li class="nav-item">
                    <a href="#javascript" class="nav-link">JavaScript</a>
                </li>
            </ul>
        </div>
        <div class="col-9">
            <h3 id="html">HTML</h3>
            <p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p>
            <h3 id="css">css</h3>
            <p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p>
            <h3 id="javascript">javascript</h3>
            <p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p><p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p>
            <p>lsajdfljasdlfkj</p>
        </div>
    </div>
</div>

// tooltip  显示提示信息
<button class="btn btn-primary" data-toggle='tooltip' title="hello ~ " data-placement='bottom'>
    Tooltip
</button>

$('[data-toggle=tooltip]').tooltip();

// 表单
<label for="email">右键地址</label>
<input class="form-control" type="text" placeholder="Email" id="email" />
<small class="for-text text-muted">请输入正确的邮件地址</small>

// 文本框变化
<div class="input-group">
    <span class="input-group-addon">@</span>
    <!-- readonly只读 --> <!-- form-control-plaintext纯文字 -->
    <input class="form-control" type="text" placeholder="请输入..."/>
    <span class="input-group-btn">
        <button class="btn btn-primary">Go</button>
    </span>
</div>

// 复选框和单选按钮
<!-- form-check-inline在一行中显示 -->
<div class="form-check form-check-inline">
    <label class="form-check-label">
        <input type="checkbox" class="form-check-input">
        A
    </label>
</div>
<div class="form-check form-check-inline">
    <label class="form-check-label">
        <input type="checkbox" class="form-check-input">
        B
    </label>
</div>
<div class="form-check form-check-inline">
    <label class="form-check-label">
        <input type="checkbox" class="form-check-input">
        C
    </label>
</div>


<div class="form-check form-check-inline">
    <label class="form-check-label">
        <input type="radio" name="demo" value="A" class="form-check-input">
        A
    </label>
</div>
<div class="form-check form-check-inline">
    <label class="form-check-label">
        <input type="radio" name="demo" value="B" class="form-check-input">
        B
    </label>
</div>
<div class="form-check form-check-inline">
    <label class="form-check-label">
        <input type="radio" name="demo" value="C" class="form-check-input">
        C
    </label>
</div>

// 单选框和复选框(自定义样式)
<label class="custom-control custom-checkbox">
    <!-- custom-control-input让复选框完全透明 -->
    <input type="checkbox" class="custom-control-input">
    <span class="custom-control-indicator"></span>
    <span class="custom-control-description">A</span>
</label>

<label class="custom-control custom-radio">
    <input type="radio" class="custom-control-input">
    <span class="custom-control-indicator"></span>
    <span class="custom-control-description">A</span>
</label>

// 选择列表

<!-- multiple可以多选的 -->
<select multiple id="demo-select" class="form-control">
    <option value="a">A</option>
    <option value="b">B</option>
    <option value="c">C</option>
</select>

// 选择文件

<label class="custom-file">
    <input type="file" class="custom-file-input">
    <span class="custom-file-control"></span>
</label>

// :lang表示当前页面的语言  需要在根html标签中设置
.custom-file-control:lang(zh-Hans)::before {
    content: '选择';
}

.custom-file-control:lang(zh-Hans)::after {
    content: '选择';
}
// 表单布局



// 表单验证
<form id="form-demo" novalidate>
    <div class="form-group">
        <input required type="text" class="form-control" placeholder="输入...">
        <input required type="text" class="form-control" placeholder="输入...">
        <div class="invalid-feedback">请在文本框里输入点东西</div>
        <button type="submit" class="btn btn-primary">
            提交
        </button>
    </div>
</form>

$('#form-demo').submit(function (e) {
    const form = $(this);
    if(form[0].checkValidity() === false) {
        e.preventDefault();
        e.stopPropagation();
    }
    form.addClass('was-validated');

})
View Code

 

转载于:https://www.cnblogs.com/tujw/p/10506984.html

相关文章:

  • C语言单链表实验
  • 2018-11-10 专栏全年主题合辑-代码中文命名相关实践
  • 2009年全国软考网络规划设计师考试大纲
  • 字符串操作、文件操作,英文词频统计预处理
  • 摘抄《天龙八部》诗词回目
  • php项目命名规范
  • Jupyter Notebook不能在系统命令行里全局启动
  • php的基本内容
  • xpath获取一个标签下的多个同级标签
  • [笔记].I2C札记
  • 力扣——找数左下角的值
  • JavaScript之数组的常用操作函数
  • 缓存、队列(Memcached、redis、RabbitMQ)
  • Route组件GetVirtualPath方法性能优化结果
  • 吴恩达老师的神经网路和深度学习_02
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android交互
  • Android框架之Volley
  • create-react-app做的留言板
  • github指令
  • MySQL数据库运维之数据恢复
  • Python_OOP
  • rc-form之最单纯情况
  • Vue 2.3、2.4 知识点小结
  • 从输入URL到页面加载发生了什么
  • 如何编写一个可升级的智能合约
  • 微服务入门【系列视频课程】
  • 我是如何设计 Upload 上传组件的
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 《码出高效》学习笔记与书中错误记录
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ​虚拟化系列介绍(十)
  • #微信小程序(布局、渲染层基础知识)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (42)STM32——LCD显示屏实验笔记
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转载)(官方)UE4--图像编程----着色器开发
  • (转载)OpenStack Hacker养成指南
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .md即markdown文件的基本常用编写语法
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET Core 中的路径问题
  • .NET的微型Web框架 Nancy
  • .net经典笔试题
  • [Angularjs]ng-select和ng-options
  • [APIO2015]巴厘岛的雕塑
  • [C++]命名空间等——喵喵要吃C嘎嘎
  • [CF494C]Helping People
  • [GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
  • [java]删除数组中的某一个元素