zoukankan      html  css  js  c++  java
  • 高级的CSS组件

    导入的链接

        <link rel="stylesheet" href="bootstrap-4.2.1-dist/css/bootstrap.css">
        <link rel="stylesheet" href="font-awesome-4.7.0/css/font-awesome.css">
        <script src="jquery-3.3.1.slim.js"></script>
        <script src="https://cdn.staticfile.org/popper.js/1.14.6/umd/popper.js"></script>
        <script src="bootstrap-4.2.1-dist/js/bootstrap.min.js"></script>
    

    表单

    1 定义表单控件

    表单控件(例如<input><select><textarea>)统一采用.form-control类样式进行处理优化,包括常规外观、focus选中状态、尺寸大小等。并且表单一般都放在表单组(form-group)中,表单组也是bootstrap 4为表单控件设置的类,默认设置1rem的底外边距。

    <form>
        <div class="form-group">
            <label for="formGroup1">姓名</label>
            <input type="text" class="form-control" id="formGroup1" placeholder="Name">
        </div>
        <div class="form-group">
            <label for="formGroup2">密码</label>
            <!--这个是在输入框的上方,那表单的旁边文字怎么显示-->
         <input type="password" class="form-control" id="formGroup2" placeholder="Password">
         <!--form-control-->
        </div>
    </form>
    
    1. 表单控件的大小
    <form>
        <input class="form-control form-control-lg" type="text" placeholder="大尺寸(form-control-lg)"><br/>
        <input class="form-control" type="text" placeholder="默认大小"><br/>
        <input class="form-control form-control-sm" type="text" placeholder="小尺寸(form-control-sm)">
    </form>
    
    1. 设置表单控件只读
    <form>
        <input class="form-control" type="text" placeholder="只读表单" readonly>
    </form>
    
    1. 设置只读纯文本
    <form>
        <div class="form-group row">
            <label for="email" class="col-sm-2 col-form-label">邮箱</label>
            <div class="col-sm-10">
                <!--form-control-plaintext删除默认的表单字段样式-->
                <input type="text" readonly class="form-control-plaintext" id="email" value="email@example.com">
            </div>
        </div>
        <div class="form-group row">
            <label for="password" class="col-sm-2 col-form-label">密码</label>
            <div class="col-sm-10">
                <input type="password" class="form-control" id="password" placeholder="Password">
            </div>
        </div>
    </form>
    
    
    1. 范围输入
    <form>
        <input type="range" class="form-control-range">
        <!--form-control-range设置水平滚动范围-->
    </form>
    

    2 设计单选框/复选框布局和样式

    使用.form-check类可以格式化复选框和单选框按钮,用以改进它们的默认布局和动作呈现,复选框用于在列表中选择一个或多个选项,单选框用于列表中选择一个选项。复选框和单选框也是可以使用disabled类设置禁用状态。
    1.默认堆叠方式

    <form>
        <p>只能选择一种的水果:</p>
        <div class="form-check">
            <input class="form-check-input" type="radio" name="fruits" id="fruit1" >
            <label class="form-check-label" for="fruit1">
                香瓜
            </label>
        </div>
        <div class="form-check">
            <input class="form-check-input" type="radio" name="fruits" id="fruit2">
            <label class="form-check-label" for="fruit2">
                哈密瓜
            </label>
        </div>
        <div class="form-check">
            <!--radio单选-->
            <input class="form-check-input" type="radio" name="fruits" id="fruit3" disabled>
            <label class="form-check-label" for="fruit3">
                西瓜(禁选)
            </label>
        </div>
    </form>
    <form>
        <p class="mt-4">可以多选的水果:</p>
        <div class="form-check">
            <!--checkbox复选框-->
            <input class="form-check-input" type="checkbox" id="fruit4">
            <label class="form-check-label" for="fruit4">
                苹果
            </label>
        </div>
        <div class="form-check">
            <input class="form-check-input" type="checkbox" value="" id="fruit5">
            <label class="form-check-label" for="fruit5">
                香蕉
            </label>
        </div>
        <div class="form-check">
            <input class="form-check-input" type="checkbox" id="fruit6" disabled>
            <label class="form-check-label" for="fruit6">
                菠萝(禁选)
            </label>
        </div>
    </form>
    

    2.水平排列方式

    <form>
        <p class="mt-4">可以多选的水果:</p>
        <!--form-check-inline类水平排列-->
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="checkbox" id="fruit4">
            <label class="form-check-label" for="fruit4">
                苹果
            </label>
        </div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="checkbox" value="" id="fruit5">
            <label class="form-check-label" for="fruit5">
                香蕉
            </label>
        </div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="checkbox" id="fruit6" disabled>
            <label class="form-check-label" for="fruit6">
                菠萝(禁选)
            </label>
        </div>
    </form>
    
    

    3.无文本格式

    <form>
        <div class="form-check">
            <!--position-static无文本形式-->
            <input class="form-check-input position-static" type="checkbox" value="option1">
        </div>
        <div class="form-check">
            <input class="form-check-input position-static" type="radio" value="option1">
        </div>
    </form>
    
    

    3 表单布局风格

    自从Bootstrap使用display: block和 100%在input控件上后,表单默认都是基于垂直堆叠排列的,可以使用bootstrap中其他样式类来改变表单的布局。
    1.表单网格

    <form>
        <!--在Bootstrap中表格默认都是垂直堆叠排列的;要水平排列可以使用其他样式类或使用网格系统-->
        <div class="row">
            <div class="col">
                <input type="text" class="form-control" placeholder="Name">
            </div>
            <div class="col">
                <input type="password" class="form-control" placeholder="Password">
            </div>
        </div>
    </form>
    

    设置更小边距

    <form>
        <div class="form-row">
            <!--form-row更小边距-->
            <div class="col">
                <input type="text" class="form-control" placeholder="Name">
            </div>
            <div class="col">
                <input type="password" class="form-control" placeholder="Password">
            </div>
        </div>
    </form>
    

    复杂的表单网络布局

    <form>
        <div class="form-row">
            <div class="form-group col-md-6">
                <label for="name">姓名</label>
                <input type="text" class="form-control" id="name" placeholder="Name">
            </div>
            <div class="form-group col-md-6">
                <label for="password">密码</label>
                <input type="password" class="form-control" id="password" placeholder="Password">
            </div>
        </div>
        <div class="form-group">
            <label for="email">邮箱</label>
            <input type="email" class="form-control" id="email" placeholder="example@qq.com">
        </div>
        <div class="form-group">
            <label for="address">户籍</label>
            <input type="text" class="form-control" id="address" placeholder="户籍所在地">
        </div>
        <div class="form-row">
            <div class="form-group col-md-4">
                <label for="inputCity">现居城市</label>
                <input type="text" class="form-control" id="inputCity"  placeholder="现在所居住的城市">
            </div>
            <div class="form-group col-md-4">
                <label for="inputState">乡、镇</label>
                <select id="inputState" class="form-control">
                    <option selected>选择</option>
                    <option>选择</option>
                </select>
            </div>
            <div class="form-group col-md-4">
                <label for="inputZip">邮编</label>
                <input type="text" class="form-control" id="inputZip" placeholder="例如:833300">
            </div>
        </div>
        <div class="form-group">
            <div class="form-check">
                <input class="form-check-input" type="checkbox" id="gridCheck">
                <label class="form-check-label" for="gridCheck">
                    记住我
                </label>
            </div>
        </div>
        <button type="submit" class="btn btn-primary">注册</button>
    </form>
    

    2.设置列的宽度

    <form>
        <div class="form-row">
            <!--col-4之后col平均分-->
            <div class="col-4">
                <input type="text" class="form-control" placeholder="姓名">
            </div>
            <div class="col">
                <input type="text" class="form-control" placeholder="语文成绩">
            </div>
            <div class="col">
                <input type="text" class="form-control" placeholder="数学成绩">
            </div>
            <div class="col">
                <input type="text" class="form-control" placeholder="英语成绩">
            </div>
        </div>
    </form>
    

    4 帮助文本

    可以使用form-text类创建表单中的帮助文本。可以使用任何内联HTML元素和通用样式(如.text-muted)来设计帮助提示文本。

    <form>
        <div class="form-group row">
            <label for="password">密码</label>
            <input type="password" id="password" class="form-control">
            <small class="form-text text-muted">
                <!--form-text text-muted类创建帮助文本-->
                密码必须有8-18个字符,包含字母和数字,并且不能包含空格、特殊字符或表情符号。
            </small>
        </div>
    </form>
    

    5 禁用表单

    通过在input中添加disabled属性,就能防止用户操作表单,此时表单呈现灰色背景颜色。

    <form>
        <fieldset disabled><!--fieldset disabled父元素全部禁止了-->
            <!--fieldset 元素可将表单内的相关元素分组。
    
    <fieldset> 标签将表单内容的一部分打包,生成一组相关表单的字段。
        -->
            <div class="form-group">
                <label for="testInput">禁用表单</label>
                <input type="text" id="testInput" class="form-control" placeholder="Disabled input">
            </div>
            <div class="form-group">
                <label for="testSelect">禁用选择菜单</label>
                <select id="testSelect" class="form-control">
                    <option>Disabled select</option>
                </select>
            </div>
            <div class="form-group">
                <div class="form-check">
                    <input class="form-check-input" type="checkbox" id="testCheck">
                    <label class="form-check-label" for="testCheck">
                        禁用复选框
                    </label>
                </div>
            </div>
            <button type="submit" class="btn btn-primary">提交</button>
        </fieldset>
    </form>
    

    列表组

    1 定义列表组

    最基本的列表组就是在<ul>元素上添加list-group类,在<li>元素上添加list-group-item类和list-group-item-action类。list-group-item类设计列表项的字体颜色、宽度和对齐方式,list-group-item-action类设计列表项在悬浮时的浅灰色背景

    <ul class="list-group"><!--list-group定义列表组-->
        <li class="list-group-item list-group-item-action">全心全力 见心见行</li>
        <li class="list-group-item list-group-item-action">同心同德 起帆远航</li>
        <li class="list-group-item list-group-item-action">同心同行 共创未来</li>
        <li class="list-group-item list-group-item-action">激情闪耀 共创辉煌</li>
        <li class="list-group-item list-group-item-action">超越梦想 再创辉煌</li>
    </ul>
    

    2 设计列表组的风格样式

    1.激活和禁用状态

    <ul class="list-group"><!--list-group-item类设计列表项的字体颜色、宽度和对齐方式-->
        <li class="list-group-item active">全心全力 见心见行(激活状态)</li>
        <li class="list-group-item">同心同德 起帆远航</li>
        <li class="list-group-item disabled">同心同行 共创未来(禁用状态)</li>
        <li class="list-group-item">激情闪耀 共创辉煌</li>
        <li class="list-group-item">超越梦想 再创辉煌</li>
    </ul>
    

    2.去除边框和圆角

    <ul class="list-group list-group-flush"><!--ist-group-flush可以溢出部分边框和圆角;产生边缘贴齐的列表组-->
        <li class="list-group-item list-group-item-action">全心全力 见心见行</li>
        <li class="list-group-item list-group-item-action">同心同德 起帆远航</li>
        <!--list-group-item-action设置列表在悬浮时的浅灰色背景-->
        <li class="list-group-item list-group-item-action">同心同行 共创未来</li>
        <li class="list-group-item list-group-item-action">激情闪耀 共创辉煌</li>
        <li class="list-group-item list-group-item-action">超越梦想 再创辉煌</li>
    </ul>
    

    3.设计列表项的颜色

    <ul class="list-group">
        <li class="list-group-item list-group-item-primary">全心全力 见心见行</li>
        <li class="list-group-item list-group-item-secondary">同心同德 起帆远航</li>
        <li class="list-group-item list-group-item-success">同心同行 共创未来</li>
        <li class="list-group-item list-group-item-danger">激情闪耀 共创辉煌</li>
        <li class="list-group-item list-group-item-warning">超越梦想 再创辉煌</li>
        <li class="list-group-item list-group-item-info">飞跃巅峰 纵横四海</li>
        <li class="list-group-item list-group-item-light">融合梦想 努力超越</li>
        <li class="list-group-item list-group-item-dark">超越第一 实现梦想</li>
    </ul>
    

    4.添加徽章

    <ul class="list-group">
        <li class="list-group-item d-flex justify-content-between align-items-center">
            激情闪耀 共创辉煌
            <span class="badge badge-primary badge-pill">30</span>
        </li>
        <li class="list-group-item d-flex justify-content-between align-items-center">
            超越梦想 再创辉煌
            <span class="badge badge-primary badge-pill">50</span>
        </li>
        <li class="list-group-item d-flex justify-content-between align-items-center">
            超越第一 实现梦想
            <span class="badge badge-primary badge-pill">20</span>
        </li>
    </ul>
    

    3 定制内容

    在Flexbox通用样式定义的支持下,列表组中几乎可以添加任意的HTML内容,包括标签、内容和链接等。下面就来定制一个招聘信息的列表。

    <div class="list-group">
        <a href="#" class="list-group-item list-group-item-action active">
            <div class="d-flex w-100 justify-content-between">
                <!--d-flex代表:d-*-flex类在屏幕尺寸上设置flexbox容器-->
                <h5 class="mb-1">公司名称</h5>
                <small>发布时间</small>
            </div>
            <p class="mb-1">描述</p>
            <p>薪资</p>
        </a>
        <a href="#" class="list-group-item list-group-item-action">
            <div class="d-flex w-100 justify-content-between">
                <h5 class="mb-1">顺畅建筑有限公司</h5>
                <small class="text-muted">一天前</small>
            </div>
            <p class="mb-1">公司在全国各地都有项目,现招一位项目经理,工作地点在新疆...</p>
            <p>10k—15k</p>
        </a>
        <a href="#" class="list-group-item list-group-item-action">
            <div class="d-flex w-100 justify-content-between">
                <h5 class="mb-1">梦想网络有限公司</h5>
                <small class="text-muted">一天前</small>
            </div>
            <p class="mb-1">本公司位于北京,现招一位web前段工程师,要求有2年以上工作经验...</p>
            <p>8k-12k</p>
        </a>
    </div>
    

    面包屑

    1 定义面包屑

    面包屑(Breadcrumbs)是一种基于网站层次信息的显示方式。Bootstrap中的面包屑是一个带有breadcrumb类的列表。Bootstrap中的面包屑是一个带有breadcrumb类的列表,分隔符会通过CSS中的::before和content来添加。

    <nav aria-label="breadcrumb">
        <!--breadcrumb面包屑-->
        <ol class="breadcrumb">
            <li class="breadcrumb-item active">首页</li>
        </ol>
    </nav>
    <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
            <li class="breadcrumb-item"><a href="#">首页</a></li>
            <li class="breadcrumb-item active">图书馆</li>
        </ol>
    </nav>
    <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
            <li class="breadcrumb-item"><a href="#">首页</a></li>
            <li class="breadcrumb-item"><a href="#">图书馆</a></li>
            <li class="breadcrumb-item active">工程类</li>
        </ol>
    </nav>
    

    2 设计分隔符

    分隔符通过::before和CSS中content自动添加,如果想设置不同的分隔符,可以在CSS文件中添加以下代码覆盖掉bootstrap中的样式:

    .breadcrumb-item + .breadcrumb-item::before {
      display: inline-block;
      padding-right: 0.5rem;
      color: #6c757d;
      content: ">";
    }
    

    通过修改其中的content:" ";来设计不同的分隔符,这里更改为“>”符号。

    <style>
            .breadcrumb-item + .breadcrumb-item::before {
                display: inline-block;
                padding-right: 0.5rem;
                color: #6c757d;
                content: "=";
            }
        </style>
    

    分页

    1 定义分页

    在Bootstrap 4可以很简单的实现分页效果,在<ul>元素上添加pagination类,然后在<li>元素上添加page-item类,在超链接中添加page-link类,即可实现一个简单的分页。
    基本结构如下:

    <ul class="pagination">
        <li class="page-item"><a class="page-link" href="#">Previous</a></li>
        <li class="page-item"><a class="page-link" href="#">1</a></li>
        <li class="page-item"><a class="page-link" href="#">2</a></li>
        <li class="page-item"><a class="page-link" href="#">3</a></li>
        <li class="page-item"><a class="page-link" href="#">Next</a></li>
    </ul>
    

    在bootstrap4中,一般情况下都是使用

      来设计分页,也可以使用其他元素。

      <ul class="pagination"><!--pagination-->
          <li class="page-item"><a class="page-link" href="#">首页</a></li>
          <li class="page-item"><a class="page-link" href="#">上一页</a></li>
          <li class="page-item"><a class="page-link" href="#">1</a></li>
          <li class="page-item"><a class="page-link" href="#">2</a></li>
          <li class="page-item"><a class="page-link" href="#">3</a></li>
          <li class="page-item"><a class="page-link" href="#">4</a></li>
          <li class="page-item"><a class="page-link" href="#">5</a></li>
          <li class="page-item"><a class="page-link" href="#">下一页</a></li>
          <li class="page-item"><a class="page-link" href="#">尾页</a></li>
      </ul>
      

      2 使用图标

      在分页中,可以使用图标来代替“上一页”或“下一页”。上一页使用“«”图标来设计,下一页使用“»”图标来设计。当然,还可以使用字体图标库中的图标来设计,例如Font Awesome图标库。

      <ul class="pagination">
          <li class="page-item"><a class="page-link" href="#">首页</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span>&laquo;</span></a>
              <!--span中包含内容-->
          </li>
          <li class="page-item"><a class="page-link" href="#">1</a></li>
          <li class="page-item"><a class="page-link" href="#">2</a></li>
          <li class="page-item"><a class="page-link" href="#">3</a></li>
          <li class="page-item"><a class="page-link" href="#">4</a></li>
          <li class="page-item"><a class="page-link" href="#">5</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span >&raquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">尾页</a></li>
      </ul>
      

      3 设计分页风格

      1.设置大小
      bootstrap中提供了下面两个类来设置分页的大小:
      (1)pagination-lg:大号分页样式。
      (2)pagination-sm:小号分页样式。

      <!--大号分页样式pagination-lg-->
      <ul class="pagination pagination-lg">
          <li class="page-item"><a class="page-link" href="#">首页</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span>&laquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">1</a></li>
          <li class="page-item"><a class="page-link" href="#">2</a></li>
          <li class="page-item"><a class="page-link" href="#">3</a></li>
          <li class="page-item"><a class="page-link" href="#">4</a></li>
          <li class="page-item"><a class="page-link" href="#">5</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span >&raquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">尾页</a></li>
      </ul>
      <!--默认分页效果-->
      <ul class="pagination">
          <li class="page-item"><a class="page-link" href="#">首页</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span>&laquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">1</a></li>
          <li class="page-item"><a class="page-link" href="#">2</a></li>
          <li class="page-item"><a class="page-link" href="#">3</a></li>
          <li class="page-item"><a class="page-link" href="#">4</a></li>
          <li class="page-item"><a class="page-link" href="#">5</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span >&raquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">尾页</a></li>
      </ul>
      <!--小号分页效果pagination-sm-->
      <ul class="pagination pagination-sm">
          <li class="page-item"><a class="page-link" href="#">首页</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span>&laquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">1</a></li>
          <li class="page-item"><a class="page-link" href="#">2</a></li>
          <li class="page-item"><a class="page-link" href="#">3</a></li>
          <li class="page-item"><a class="page-link" href="#">4</a></li>
          <li class="page-item"><a class="page-link" href="#">5</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span >&raquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">尾页</a></li>
      </ul>
      

      2.激活和禁用分页项
      可以使用active类来高亮显示当前所在的分页项,使用disabled类设置禁用的分页项。

      <ul class="pagination">
          <li class="page-item"><a class="page-link" href="#">首页</a></li>
          <!--page-link添加链接类-->
          <li class="page-item">
              <a class="page-link" href="#"><span>&laquo;</span></a>
          </li>
          <li class="page-item active"><a class="page-link" href="#">1</a></li>
          <!--active类来高亮显示当前所在的分页项,使用disabled类设置禁用的分页项-->
          <li class="page-item"><a class="page-link" href="#">2</a></li>
          <li class="page-item"><a class="page-link" href="#">3</a></li>
          <li class="page-item disabled"><a class="page-link" href="#">4</a></li>
          <li class="page-item"><a class="page-link" href="#">5</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span >&raquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">尾页</a></li>
      </ul>
      

      3.设置对齐方式
      默认状态下,分页是左对齐,可以使用Flexbox弹性布局通用样式,来设置分页组件的居中对齐和右对齐。justify-content-center类设置居中对齐,justify-content-end类设置右对齐。

      <!--使用flexbox弹性布局通用样式-->
      <ul class="pagination mb-5 justify-content-center">
          <li class="page-item"><a class="page-link" href="#">首页</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span>&laquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">1</a></li>
          <li class="page-item active"><a class="page-link" href="#">2</a></li>
          <li class="page-item"><a class="page-link" href="#">3</a></li>
          <li class="page-item"><a class="page-link" href="#">4</a></li>
          <li class="page-item"><a class="page-link" href="#">5</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span >&raquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">尾页</a></li>
      </ul>
      <h3 class="mb-4">右对齐</h3>
      <ul class="pagination justify-content-end">
          <li class="page-item"><a class="page-link" href="#">首页</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span>&laquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">1</a></li>
          <li class="page-item active"><a class="page-link" href="#">2</a></li>
          <li class="page-item"><a class="page-link" href="#">3</a></li>
          <li class="page-item"><a class="page-link" href="#">4</a></li>
          <li class="page-item"><a class="page-link" href="#">5</a></li>
          <li class="page-item">
              <a class="page-link" href="#"><span >&raquo;</span></a>
          </li>
          <li class="page-item"><a class="page-link" href="#">尾页</a></li>
      </ul>
      
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    mouseover和mouseenter的区别 mouseenter不会冒泡,mouseleave不会冒泡;
    2021年1月24日 命令按钮控件Button 和 单选按钮控件RadioButton 和复选框按钮
    2021年1月23日 文本框控件
    2021年1月21日 画了个注册的界面
    2021年1月29日 体温上报app03
    2021年1月18日 activity的三种状态
    2021年1月16日 秒表app
    2021年1月15日 界面跳转
    1.CSS知识点——css的引入方式
    面试题 315
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15113033.html
Copyright © 2011-2022 走看看