中。
向标签添加 class .control-label。
<div class="container">
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="username" class="col-sm-2 control-label">用户名label>
<div class="col-sm-10">
<input type="text" class="form-control" id="username" placeholder="请输入用户名">
div>
div>
<div class="form-group">
<label for="pwd" class="col-sm-2 control-label">密码label>
<div class="col-sm-10">
<input type="text" class="form-control" id="pwd" placeholder="请输入用户名">
div>
div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox">记住密码
label>
div>
div>
div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn">登录button>
div>
div>
form>
div>
表单控件状态
输入框焦点:当输入框 input 接收到 :focus 时,输入框的轮廓会被移除,同时应用 box-shadow。
禁用的输入框 input:如果您想要禁用一个输入框 input,只需要简单地添加 disabled 属性,这不仅会禁用输入框,还会改变输入框的样式以及当鼠标的指针悬停在元素上时鼠标指针的样式。
禁用的字段集 fieldset:对<添加 disabled 属性来禁用内的所有控件。
验证状态:Bootstrap 包含了错误、警告和成功消息的验证样式。只需要对父元素简单地添加适当的 class(.has-warning、 .has-error 或 .has-success)即可使用验证状态
<div class="container">
<form class="form-horizontal" role="form">
<div class="form-group">
<label class="col-sm-2 control-label">normallabel>
<div class="col-sm-10">
<input class="form-control" type="text" placeholder="该输入框可以获得焦点...">
div>
div>
<div class="form-group">
<label for="inputPassword" class="col-sm-2 control-label">禁用label>
<div class="col-sm-10">
<input class="form-control" id="inputPassword" type="text" placeholder="该输入框禁止输入..." disabled>
div>
div>
<fieldset disabled>
<div class="form-group">
<label for="disabledTextInput" class="col-sm-2 control-label">禁用输入(Fieldset disabled)label>
<div class="col-sm-10">
<input type="text" id="disabledTextInput" class="form-control" placeholder="禁止输入">
div>
div>
<div class="form-group">
<label for="disabledSelect" class="col-sm-2 control-label">禁用选择菜单(Fieldset disabled)label>
<div class="col-sm-10">
<select id="disabledSelect" class="form-control">
<option>禁止选择option>
select>
div>
div>
fieldset>
<div class="form-group has-success">
<label class="col-sm-2 control-label" for="inputSuccess">输入成功label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputSuccess">
div>
div>
<div class="form-group has-warning">
<label class="col-sm-2 control-label" for="inputWarning">输入警告label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputWarning">
div>
div>
<div class="form-group has-error">
<label class="col-sm-2 control-label" for="inputError">输入错误label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputError">
div>
div>
form>
div>
您可以分别使用 class .input-lg 和 .col-lg-* 来设置表单的高度和宽度
<div class="container">
<form role="form">
<div class="form-group">
<input class="form-control input-lg" type="text" placeholder=".input-lg">
div>
<div class="form-group">
<select class="form-control input-lg">
<option value="">默认选择option>
select>
div>
<div class="row">
<div class="col-lg-6">
<input type="text" class="form-control">
div>
<div class="col-lg-6">
<input type="text" class="form-control">
div>
div>
form>
div>
Bootstrap 表单控件可以在输入框 input 上有一个块级帮助文本。为了添加一个占用整个宽度的内容块,请在 后使用 .help-block。
<div class="container">
<form role="form">
<span>帮助文本实例span>
<input class="form-control" type="text" placeholder="">
<span class="help-block">帮助文本实例帮助文本实例帮助文本实例帮助文本实例帮助文本实例
帮助文本实例帮助文本实例帮助文本实例帮助文本实例帮助文本实例帮助文本实例帮助文本实例
帮助文本实例帮助文本实例帮助文本实例span>
form>
div>
8、辅助相关
<p class="text-muted">...p>
<p class="text-primary">...p>
<p class="text-success">...p>
<p class="text-info">...p>
<p class="text-warning">...p>
<p class="text-danger">...p>
<p class="bg-primary">...p>
<p class="bg-success">...p>
<p class="bg-info">...p>
<p class="bg-warning">...p>
<p class="bg-danger">...p>
<button type="button" class="close" aria-label="Close"><span aria-hidden="true">×span>button>
<span class="caret">span>
<div class="pull-left">...div>
<div class="pull-right">...div>
<div class="center-block">...div>
<div class="clearfix">...div>
<div class="show">...div>
<div class="hidden">...div>
三、常用Bootstrap组件
var $d1 = $("#d1");
var width = 0;
var theID = setInterval(setValue, 200);
function setValue() {
if (width === 100) {
clearInterval(theID);
} else {
width++;
$d1.css("width", width+"%").text(width+"%");
}
}
模拟滚动的进度条
1、模态框
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
button>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×span>button>
<h4 class="modal-title" id="myModalLabel">Modal titleh4>
div>
<div class="modal-body">
...
div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Closebutton>
<button type="button" class="btn btn-primary">Save changesbutton>
div>
div>
div>
div>
html
- 位置:务必将模态框的HTML代码放在文档的最高层级内(也就是说,尽量作为 body 标签的直接子元素),以避免其他组件影响模态框的展现和/或功能。
- 通过为模态框设置
.bs-example-modal-lg
和 .bs-example-modal-sm
来控制模态框的大小。
- 通过
.fade
类来控制模态框弹出时的动画效果(淡入淡出效果)。
- 通过在
.modal-body
div中设置 .row
可以使用Bootstrap的栅格系统。
调用方式:
1.通过data属性
通过在一个触发弹出模态框的元素(例如:按钮)上添加 data-toggle="modal"属性,然后设置 data-target="#foo"属性或 href="#foo"属性,用来指向被控制的模态框。
<button type="button" data-toggle="modal" data-target="#myModal">显示模态框button>
2.通过JS代码调用
$('#myModal').modal("show"); // 显示
$('#myModal').modal("hide") // 隐藏
方法:
$('#myModal').modal({
keyboard: false
})
常用参数:
名称 | 可选值 | 默认值 | 描述 |
backdrop |
true/false/'static' |
true |
false表示有没有遮罩层,'static'表示点击遮罩层不关闭模态框 |
keyboard |
true/false |
true |
键盘上的 esc 键被按下时关闭模态框。 |
show |
true/false |
true |
模态框初始化之后就立即显示出来。 |
2、轮播图
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active">li>
<li data-target="#carousel-example-generic" data-slide-to="1">li>
<li data-target="#carousel-example-generic" data-slide-to="2">li>
ol>
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="..." alt="...">
<div class="carousel-caption">
...
div>
div>
<div class="item">
<img src="..." alt="...">
<div class="carousel-caption">
...
div>
div>
...
<div class="item">
<img src="..." alt="...">
<div class="carousel-caption">
<h3>...h3>
<p>...p>
div>
div>
div>
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true">span>
<span class="sr-only">Previousspan>
a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true">span>
<span class="sr-only">Nextspan>
a>
div>
$('.carousel').carousel({
interval: 2000
})
html
四、CSS栅格系统
Bootstrap 提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列。
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
<title>Bootstrap-demotitle>
<style>
.row div{
background-color: #2e6da4;
border: 1px solid #f5e79e;
color:#fff0f0;
}
.row{
margin-top: 20px;
border: 1px solid red;
}
style>
head>
<body>
<h4 style="text-align: center">栅格系统的结构h4>
<div class="container">
<div class="row">
<div class="col-md-2">md-2div>
<div class="col-md-4">md-4div>
<div class="col-md-6">md-6div>
div>
<div class="row">
<div class="col-md-6 col-sm-4">md6-sm4div>
<div class="col-md-6 col-sm-8">md6-sm8div>
div>
<div class="row">
<div class="col-sm-2">md-2div>
<div class="col-sm-4">md-4div>
<div class="col-sm-6">md-6div>
div>
<h4 style="text-align: center">栅格系统的使用h4>
<h5> 1 列偏移offseth5>
<div class="row">
<div class="col-md-2">col-md-2div>
<div class="col-md-4 col-md-offset-4">col-md-offset-4div>
div>
<h5> 2 列嵌套 h5>
<div class="row">
<div class="col-md-9">
111
<div class="row">
<div class="col-md-3">222div>
<div class="col-md-9">222div>
div>
div>
div>
<h5>4 列排序h5>
<div class="row">
<div class="col-md-9 col-md-push-3">col-md-9div>
<div class="col-md-3 col-md-pull-9">col-md-3div>
div>
div>
body>
html>
五、响应式开发
- 随着移动设备的流行,网页设计必须要考虑到移动端的设计。同一个网站为了兼容PC端和移动端显示,就需要进行响应式开发。
- 利用媒体查询,让同一个网站兼容不同的终端(PC端、移动端)呈现不同的页面布局。
- 用到的技术:CSS3@media查询,用于查询设备是否符合某一特定条件,这些特定条件包括屏幕尺寸、是否可触摸、屏幕精度、横屏竖屏等信息。
- 常见属性:
- device-width, device-height 屏幕宽、高
- width,height 渲染窗口宽、高
- orientation 设备方向
- resolution 设备分辨率
@media mediatype and|not|only (media feature) {
CSS-Code;
}
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">
手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。
设置viewport
一个常用的针对移动网页优化过的页面的 viewport meta 标签大致如下:
<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″>
width:控制 viewport 的大小,可以指定的一个值,如果 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
height:和 width 相对应,指定高度。
initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
maximum-scale:允许用户缩放到的最大比例。
minimum-scale:允许用户缩放到的最小比例。
user-scalable:用户是否可以手动缩放。
Bootstrap的栅格系统
container
row
column
注意事项: 使用Bootstrap的时候不要让自己的名字与Bootstrap的类名冲突。
六、前端插件合集
- Font Awesome字体
- SweetAlert
- SweetAlert2
- SweetAlert 到 SweetAlert2 升级指南
- Element UI
- VueCLI3
- Vue指令
- http://www.jq22.com/
- 一个不错的管理后台模板:Metronic
- Toastr通知 toastr["success"]("你已经成功被绿!")
- https://iviewui.com/
- https://www.jq22.com/
- https://www.layui.com/
基本使用:
swal("标题","内容","success);
使用SweetAlert在Ajax提交成功(done)或失败(error)时分别提示不用的内容。
// 这是更新之前版本的写法
function deleteRecord(recordID) {
swal({
title: "确定要删除这个产品吗?",
text: "删除后可就无法恢复了。",
type: "warning",
showCancelButton: true,
closeOnConfirm: false,
confirmButtonText: "是的,我要删除!",
confirmButtonColor: "#ec6c62",
cancelButtonText: "容我三思"
}, function (isConfirm) {
if (!isConfirm) return;
$.ajax({
type: "post",
url: "/delete/",
data: {"id": recordID},
success: function (data) {
var dataObj = $.parseJSON(data);
if (dataObj.status === 0) { //后端删除成功
swal("删除成功", dataObj.info, "success");
$("#p-" + recordID).remove() //删除页面中那一行数据
} else {
swal("出错啦。。。", dataObj.msg, "error"); //后端删除失败
}
},
error: function () { // ajax请求失败
swal("啊哦。。。", "服务器走丢了。。。", "error");
}
})
});
}
// 更新之后用这么写
swal({
title: "这里写标题",
text: "这里放内容",
icon: "warning", // 这里放图标的类型(success,warning,info,error)
buttons: {
cancel: {
text: "容我三思",
visible: true,
value: false
},
confirm: {
text: "我就是要删除"
}
}
}).then(function (isConfirm) {
if (isConfirm){
swal("你死定了", {button: "确认"});
}
SweetAlert 示例:
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>懒加载示例title>
head>
<body>
<div>
<div><img src="img/0.jpg" alt="" class="lazy" data-original="img/5.jpg" width="600px" height="400px">div>
...
<div><img src="img/0.jpg" alt="" class="lazy" data-original="img/6.jpg" width="600px" height="400px">div>
div>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js">script>
<script src="jquery.lazyload.min.js">script>
<script>
$("img.lazy").lazyload({
effect: "fadeIn",
event: "click"
})
script>
body>
html>
jQueryLazyload懒加载