03_Bootstrap基础组件03

2023-09-20 16:32:56

7 表单

7.1 基本实例

设置了 .form-control 类的表单元素,默认设置宽度属性为 width: 100%;。将 label 元素和表单元素包裹在 .form-group 中可以按照排好的样式进行展示。

<form action="#" method="post">
    <div class="form-group">
        <label for="email1">邮箱地址</label>
        <input type="email" class="form-control" id="email1" placeholder="请输入邮箱地址" />
    </div>
    <div class="form-group">
        <label for="password1">密码</label>
        <input type="password" class="form-control" id="password1" placeholder="请输入密码" />
    </div>
    <div class="form-group">
        <label for="uploadfile">上传文件</label>
        <input type="file" id="uploadfile">
        <p class="help-block">选择文件进行上传.</p>
    </div>
    <div class="checkbox">
        <label>
            <input type="checkbox" name="agree" />同意协议
        </label>
    </div>
    <button type="submit" class="btn btn-default btn-block">Submit</button>
</form>

7.2 内联表单

<form> 元素添加 .form-inline 类可使其内容左对齐并且表现为 inline-block 显示方式。

<form class="form-inline" action="#" method="post">
    <div class="form-group">
        <label for="email1">邮箱地址</label>
        <input type="email" class="form-control" id="email1" placeholder="请输入邮箱地址" />
    </div>
    <div class="form-group">
        <label for="password1">密码</label>
        <input type="password" class="form-control" id="password1" placeholder="请输入密码" />
    </div>
    <div class="checkbox">
        <label>
            <input type="checkbox" name="agree" />同意协议
        </label>
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
</form>

7.3 水平排列的表单

为表单添加 .form-horizontal 类,并联合使用 Bootstrap 预置的栅格类,可以将 label 标签和控件组水平并排布局。这样做将改变 .form-group 的行为,使其表现为栅格系统中的行(row),因此就无需再额外添加 .row 了。

<form class="form-horizontal" action="#" method="post">
    <div class="form-group">
        <label for="email1" class="col-sm-2">邮箱地址</label>
        <div class="col-sm-10">
            <input type="email" class="form-control" id="email1" placeholder="请输入邮箱地址" />
        </div>
    </div>
    <div class="form-group">
        <label for="password1" class="col-sm-2">密码</label>
        <div class="col-sm-10">
            <input type="password" class="form-control" id="password1" placeholder="请输入密码" />
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-default">登录</button>
        </div>
    </div>
</form>

7.4 支持属性

支持的属性有 textpassworddatetimedatetime-localdatemonthtimeweeknumberemailurlsearchtelcolor

注:只有正确设置了 type 属性的输入控件才能被赋予正确的样式。

<input type="text" class="form-control" placeholder="文本输入框">

7.5 静态控件

如果需要在表单中将一行纯文本和 label 元素放置于同一行,为 <p> 元素添加 .form-control-static 类即可。

<form class="form-horizontal">
    <div class="form-group">
        <label class="col-sm-2 control-label">Email</label>
        <div class="col-sm-10">
            <p class="form-control-static">email@example.com</p>
        </div>
    </div>
    <div class="form-group">
        <label for="inputPassword" class="col-sm-2 control-label">Password</label>
        <div class="col-sm-10">
            <input type="password" class="form-control" id="inputPassword" placeholder="Password">
        </div>
    </div>
</form>

7.6 禁用状态

为输入框设置 disabled 属性可以禁止其与用户有任何交互(焦点、输入等)。被禁用的输入框颜色更浅,并且还添加了 not-allowed 鼠标状态。

<input class="form-control" id="disabledInput" type="text" placeholder="禁用输入框" disabled>

7.7 只读状态

为输入框设置 readonly 属性可以禁止用户修改输入框中的内容。处于只读状态的输入框颜色更浅(就像被禁用的输入框一样),但是仍然保留标准的鼠标状态。

<input class="form-control" type="text" placeholder="只读输入框" readonly>

7.8 提示文字

通过 .help-block 定义输入框的提示文字,使用 aria-describedby 属性所涉及的表单控件进行关联。

<label for="username">姓名</label>
<input type="text" id="username" class="form-control" aria-describedby="helpBlock">
<span id="helpBlock" class="help-block">您的信息会加密保存,请放心填写</span>

7.9 校验状态

添加 .has-warning.has-error.has-success 类到父元素即可,显示对应的状态样式。元素之内的 .control-label.form-control.help-block 都将进行样式的变化。

<div class="form-group has-warning">
    <label for="username" class="control-label">姓名</label>
    <input type="text" id="username" class="form-control" aria-describedby="helpBlock">
    <span id="helpBlock" class="help-block">您的信息会加密保存,请放心填写</span>
</div>
<div class="form-group has-success">
    <label for="username" class="control-label">姓名</label>
    <input type="text" id="username" class="form-control" aria-describedby="helpBlock">
    <span id="helpBlock" class="help-block">您的信息会加密保存,请放心填写</span>
</div>
<div class="form-group has-error">
    <label for="username" class="control-label">姓名</label>
    <input type="text" id="username" class="form-control" aria-describedby="helpBlock">
    <span id="helpBlock" class="help-block">您的信息会加密保存,请放心填写</span>
</div>

7.10 输入框小图标

设置相应的 .has-feedback 类并添加正确的图标。

<div class="form-group has-success has-feedback">
    <label for="email1" class="control-label">邮箱地址</label>
    <input type="email" class="form-control" id="email1" placeholder="请输入邮箱地址" />
    <span class="glyphicon glyphicon-warning-sign form-control-feedback" aria-hidden="true"></span>
</div>

<div class="form-group has-success has-feedback">
    <label for="email1" class="control-label">邮箱地址</label>
    <div class="input-group">
        <span class="input-group-addon">@</span>
        <input type="email" class="form-control" id="email1" placeholder="请输入邮箱地址" />
    </div>
    <span class="glyphicon glyphicon-warning-sign form-control-feedback" aria-hidden="true"></span>
</div>

7.11 尺寸调整

通过 .input-lg 类似的类可以为控件设置高度

<input class="form-control input-lg" type="text" placeholder=".input-lg">
<input class="form-control" type="text" placeholder="Default input">
<input class="form-control input-sm" type="text" placeholder=".input-sm">

通过添加 .form-group-lg.form-group-sm 类,为 .form-horizontal 包裹的 label 元素和表单控件快速设置尺寸。

<form class="form-horizontal">
    <div class="form-group form-group-lg">
        <label class="col-sm-2 control-label" for="formGroupInputLarge">Large label</label>
        <div class="col-sm-10">
            <input class="form-control" type="text" id="formGroupInputLarge" placeholder="Large input">
        </div>
    </div>
    <div class="form-group form-group-sm">
        <label class="col-sm-2 control-label" for="formGroupInputSmall">Small label</label>
        <div class="col-sm-10">
            <input class="form-control" type="text" id="formGroupInputSmall" placeholder="Small input">
        </div>
    </div>
</form>

7.12 调整列尺寸

用栅格系统中的列(column)包裹输入框或其任何父元素,都可很容易的为其设置宽度。

<div class="row">
    <div class="col-xs-2">
        <input type="text" class="form-control" placeholder=".col-xs-2">
    </div>
    <div class="col-xs-3">
        <input type="text" class="form-control" placeholder=".col-xs-3">
    </div>
    <div class="col-xs-4">
        <input type="text" class="form-control" placeholder=".col-xs-4">
    </div>
</div>

8 按钮

8.1 基础按钮

Bootstrap 中可作为按钮使用的标签或元素。

为 a、button 或 input 元素添加按钮类 .btn 即可使用 Bootstrap 提供的样式。

<a class="btn" href="#" role="button">Link</a>
<button class="btn" type="submit">Button</button>
<input class="btn" type="button" value="Input">
<input class="btn" type="submit" value="Submit">

注意:

  • 如果 <a> 元素被作为按钮使用,并用于在当前页面触发某些功能,而不是用于链接其他页面或链接当前页面中的其他部分,那么,务必为其设置 role=“button” 属性
  • 尽可能使用 button 元素来获得在各个浏览器上获得相同的显示效果

8.2 预定义样式

使用下面列出的类可以快速创建一个带有预定义样式的按钮。

<button type="button" class="btn btn-default">(默认样式)Default</button>
<button type="button" class="btn btn-primary">(首选项)Primary</button>
<button type="button" class="btn btn-success">(成功)Success</button>
<button type="button" class="btn btn-info">(一般信息)Info</button>
<button type="button" class="btn btn-warning">(警告)Warning</button>
<button type="button" class="btn btn-danger">(危险)Danger</button>
<button type="button" class="btn btn-link">(链接)Link</button>

8.3 按钮的尺寸

当你需要让按钮具有不同尺寸的时候,同样是使用 .btn-lg.btn-sm.btn-xs 就可以获得不同尺寸的按钮。

<p>
    <button type="button" class="btn btn-primary btn-lg">大按钮</button>
    <button type="button" class="btn btn-default btn-lg">大按钮</button>
</p>
<p>
    <button type="button" class="btn btn-primary">默认尺寸</button>
    <button type="button" class="btn btn-default">默认尺寸</button>
</p>
<p>
    <button type="button" class="btn btn-primary btn-sm">小按钮</button>
    <button type="button" class="btn btn-default btn-sm">小按钮</button>
</p>
<p>
    <button type="button" class="btn btn-primary btn-xs">超小尺寸</button>
    <button type="button" class="btn btn-default btn-xs">超小尺寸</button>
</p>

通过给按钮添加 .btn-block 类可以将其拉伸至父元素100%的宽度,而且按钮也变为了块级(block)元素。

<p>
    <button type="button" class="btn btn-primary btn-lg btn-block">块级元素</button>
    <button type="button" class="btn btn-default btn-lg btn-block">块级元素</button>
</p>

8.4 激活状态

添加 .active 类,表示当前按钮是按压状态

<p>
    <button type="button" class="btn btn-primary btn-lg">首选项按钮</button>
    <button type="button" class="btn btn-primary btn-lg active">首选项按钮</button>
    <a href="#" class="btn btn-primary btn-lg" role="button">首选项按钮</a>
    <a href="#" class="btn btn-primary btn-lg active" role="button">首选项按钮</a>
</p>

8.5 禁用状态

添加 disabled 属性,使其表现出禁用状态。

<p>
    <button type="button" class="btn btn-default btn-lg" disabled="disabled">默认按钮</button>
    <button type="button" class="btn btn-primary btn-lg" disabled="disabled">首选项按钮</button>
    <a href="#" class="btn btn-default btn-lg disabled" role="button">默认按钮</a>
    <a href="#" class="btn btn-primary btn-lg disabled" role="button">首选项按钮</a>
</p>

8.6 按钮组

通过按钮组容器 .btn-group 把一组按钮放在同一行里。

<div class="btn-group">
    <button type="button" class="btn btn-default">按钮1</button>
    <button type="button" class="btn btn-default">按钮2</button>
    <button type="button" class="btn btn-default">按钮3</button>
</div>

通过容器 .btn-toolbar 可以把按钮组继续进行嵌套。

<div class="btn-toolbar">
    <div class="btn-group">
        <button type="button" class="btn btn-default">1</button>
        <button type="button" class="btn btn-default">2</button>
        <button type="button" class="btn btn-default">3</button>
    </div>
    <div class="btn-group">
        <button type="button" class="btn btn-default">4</button>
        <button type="button" class="btn btn-default">5</button>
        <button type="button" class="btn btn-default">6</button>
    </div>
    <div class="btn-group">
        <button type="button" class="btn btn-default">7</button>
        <button type="button" class="btn btn-default">8</button>
        <button type="button" class="btn btn-default">9</button>
        <button type="button" class="btn btn-default">10</button>
    </div>
</div>

.btn-group 加上 .btn-group-* 类,可以为当前按钮组的按钮设置统一的尺寸,就省去为按钮组中的每个按钮都赋予尺寸类了,如果包含了多个按钮组时也适用。

<div class="btn-group btn-group-lg">
    <button type="button" class="btn btn-default">1</button>
    <button type="button" class="btn btn-default">2</button>
    <button type="button" class="btn btn-default">3</button>
</div>
<div class="btn-group">
    <button type="button" class="btn btn-default">4</button>
    <button type="button" class="btn btn-default">5</button>
    <button type="button" class="btn btn-default">6</button>
</div>
<div class="btn-group btn-group-sm">
    <button type="button" class="btn btn-default">7</button>
    <button type="button" class="btn btn-default">8</button>
    <button type="button" class="btn btn-default">9</button>
</div>
<div class="btn-group btn-group-xs">
    <button type="button" class="btn btn-default">10</button>
    <button type="button" class="btn btn-default">11</button>
    <button type="button" class="btn btn-default">12</button>
    <button type="button" class="btn btn-default">13</button>
</div>

使用 .btn-group-vertical 让一组按钮垂直堆叠排列显示。

<div class="btn-group-vertical">
    <button type="button" class="btn btn-default">1</button>
    <button type="button" class="btn btn-default">2</button>
    <button type="button" class="btn btn-default">3</button>
</div>

可以将 .btn 元素包裹到 .btn-group.btn-group-justified 中实现两端对齐的按钮组。

注意:用 <button> 实现的按钮,需要包裹在 .btn-group 容器中

<div class="btn-group btn-group-justified">
    <a href="#" class="btn btn-default">1</a>
    <a href="#" class="btn btn-default">2</a>
    <a href="#" class="btn btn-default">3</a>
</div>

<div class="btn-group btn-group-justified">
    <div class="btn-group">
        <button type="button" class="btn btn-default">1</button>
    </div>
    <div class="btn-group">
        <button type="button" class="btn btn-default">2</button>
    </div>
    <div class="btn-group">
        <button type="button" class="btn btn-default">3</button>
    </div>
</div>

9 响应式图片

在 Bootstrap 中,通过给图片添加 .img-responsive 类可以让图片支持响应式布局。其实质是为图片设置了以下样式,从而让图片在父元素中更好的缩放。

max-width:100%;
height:auto;
display:block;

注意:使用 .center-block 类让图片水平居中

<img class="img-responsive center-block" src="http://www.ayunhe.com/content/uploads/2019/11/157447462086310494.jpg" alt="">

通过为 img 标签添加以下的类名,可以让图片呈现不同的形状。

.img-rounded /*圆角*/
.img-circle  /* 圆 */
.img-thumbnail /*双线*/

10 响应式工具

通过单独或联合使用以下列出的类,可以针对不同屏幕尺寸隐藏或显示页面内容。(星号可取值为 block、inline、inline-block)

类组超小屏幕手机 (<768px)小屏幕平板 (≥768px)中等屏幕桌面 (≥992px)大屏幕桌面 (≥1200px)
.visible-xs-*可见隐藏隐藏隐藏
.visible-sm-*隐藏可见隐藏隐藏
.visible-md-*隐藏隐藏可见隐藏
.visible-lg-*隐藏隐藏隐藏可见
.hidden-xs隐藏可见可见可见
.hidden-sm可见隐藏可见可见
.hidden-md可见可见隐藏可见
.hidden-lg可见可见可见隐藏

修改元素的 display 属性(星号可取值为 xs、sm、md、lg)

类组CSS display
.visible-*-blockdisplay: block;
.visible-*-inlinedisplay: inline;
.visible-*-inline-blockdisplay: inline-block;

响应式可见案例

<div class="container">
    <div class="row">
        <div class="col-xs-6">
            <span class="hidden-xs">超小屏幕</span>
            <span class="visible-xs-block">✔ 在超小屏幕上可见</span>
        </div>
        <div class="col-xs-6">
            <span class="hidden-sm">小屏幕</span>
            <span class="visible-sm-block">✔ 在小屏幕上可见</span>
        </div>
        <div class="clearfix visible-xs-block"></div>
        <div class="col-xs-6">
            <span class="hidden-md">中等屏幕</span>
            <span class="visible-md-block">✔ 在中等屏幕上可见</span>
        </div>
        <div class="col-xs-6">
            <span class="hidden-lg">大屏幕</span>
            <span class="visible-lg-block">✔ 在大屏幕上可见</span>
        </div>
    </div>
</div>
更多推荐

用开源代码构建机器人需要考虑的问题

导读或许你正在考虑(或正在进行)将机器人使用开源软件推向市场。这个机器人是基于linux构建的。也许你正在使用机器人操作系统(ROS)或任务导向操作套件(MOOS),或者是另外一个可以帮助你简化开发过程的开源中间件。当开发接近实用化,对回报的期望开始给你带来一些压力。你可能会被问到“我们的产品什么时候可以开始销售?”,

7.2.7 【MySQL】用于分组

有时候我们为了方便统计表中的一些信息,会把表中的记录按照某些列进行分组。比如下边这个分组查询:SELECTname,birthday,phone_number,COUNT(*)FROMperson_infoGROUPBYname,birthday这个查询语句相当于做了3次分组操作:1.先把记录按照name值进行分组,所

基于Java+SpringBoot+Vue前后端分离网络海鲜市场系统设计和实现

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题

强化学习从基础到进阶-案例与实践[4.2]:深度Q网络DQN-Cart pole游戏展示

【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现专栏详细介绍:【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现对于深度强化学习这块规划为:基础单智能算法教学(g

Qt Quick Layouts Overview

Qt快速布局概述#【中秋征文】程序人生,中秋共享#Qt快速布局是用于在用户界面中排列项目的项目。由于Qt快速布局还可以调整其项目的大小,因此它们非常适合可调整大小的用户界面。开始可以使用文件中的以下导入语句将QML类型导入到应用程序中。.qmlimportQtQuick.Layouts1.11主要特点一些主要功能是:可

LeetCode 362 期周赛

8029.与车相交的点题目:给你一个下标从0开始的二维整数数组nums表示汽车停放在数轴上的坐标。对于任意下标i,nums[i]=[starti,endi],其中starti是第i辆车的起点,endi是第i辆车的终点。返回数轴上被车任意部分覆盖的整数点的数目。思路:模拟代码classSolution{public:in

大模型如何可信?字节跳动研究的最新《可信赖的大型语言模型》综述,提出评估 LLMs 可信度时需要考虑的七大维度

文章目录一、前言二、主要内容三、总结🍉CSDN叶庭云:https://yetingyun.blog.csdn.net/一、前言论文地址:TrustworthyLLMs:aSurveyandGuidelineforEvaluatingLargeLanguageModels’Alignment在将大型语言模型(LLMs)

中外人工智能专家共话大语言模型与 AI 创新

文章目录一、前言二、主要内容三、总结🍉CSDN叶庭云:https://yetingyun.blog.csdn.net/一、前言智源社区活动,中外人工智能专家共话大语言模型与AI创新。对谈书目:《大模型时代》,龙志勇、黄雯著,中译出版社2023年5月出版。《为什么伟大不能被计划》,[美]肯尼斯·斯坦利、[美]乔尔·雷曼

【CS324】LLM(大模型的能力、数据、架构、分布式训练、微调等)

note本文是斯坦福大学CS324课程的学习笔记,同时参考了一些LLM相关资料文章目录note一、引言二、大模型的能力1.从语言模型到任务模型2.任务评估三、大模型的有害性四、大模型的数据五、law问题六、模型架构篇1.tokenization2.模型架构(1)onlyencoder(2)onlydecoder(3)e

猫头虎博主第5️⃣期赠书活动:《Java官方编程手册(第12版·Java 17)套装上下册》

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

【Java 基础篇】自如应对文本数据:Java缓冲字符流详解

Java提供了许多用于读写文本文件的类,其中缓冲字符流(BufferedCharacterStream)是一种非常常用且高效的方式。本篇博客将详细介绍Java缓冲字符流的使用,包括什么是缓冲字符流、为什么需要它们、如何创建和使用缓冲字符流、以及一些常见的使用场景和注意事项。什么是缓冲字符流?在了解缓冲字符流之前,我们需

热文推荐