【Bootstrap5】精细学习记录
【Bootstrap5】精细学习记录
Bootstrap模板
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap 模板</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入 Bootstrap -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 Shiv 和 Respond.js 用于让 IE8 支持 HTML5元素和媒体查询 -->
<!-- 注意: 如果通过 file:// 引入 Respond.js 文件,则该文件无法起效果 -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<body>
<h1>Hello, world!</h1>
<!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->
<script src="https://code.jquery.com/jquery.js"></script>
<!-- 包括所有已编译的插件 -->
<script src="js/bootstrap.min.js"></script>
</body>
</html>
Bootstrap一切以源码为重,大体和html差不多(其中网格系统算是创新且重要的),需要时查源码。
Bootstrap特性
移动设备优先
响应式图像
全局显示、排版和链接
等……
具体可见菜鸟教程
多阅读源码!
Bootstrap网格系统
网格系统将container容器分为12列,行row最好在container内,列在行row内,再通过"col--"定义在不同视口情况下占的列数。
基本网格结构:
<div class="container">
<div class="row">
<div class="col-*-*"></div>
<div class="col-*-*"></div>
</div>
<div class="row">...</div>
</div>
<div class="container">....
Bootstrap v5.0.0源码:
可以通过以下代码,不断调整视口大小自己感觉。
<!DOCTYPE html>
<html lang="zn">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>bootstrap-learning</title>
<link rel="stylesheet" href="bootstrap.css">
<script src="jquery.js"></script>
<script src="bootstrap.js"></script>
<link rel="stylesheet" href="index.css">
</head>
<body>
<h1>hello world</h1>
<div class="container">
<div class="row">
<div class="col-md-1 col-lg-6 col-sm-3 col-xxl-4 col-xl-5" style="background-color: #dedef8; box-shadow: inset 1px -1px 1px #444, inset -1px 1px 1px #444;">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
</p>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque ipsa
quae ab illo inventore veritatis et quasi architecto beatae vitae
dicta sunt explicabo.
</p>
</div>
<div class="col-md-1 col-lg-6 col-sm-3 col-xxl-4 col-xl-5" style="background-color: #dedef8;box-shadow: inset 1px -1px 1px #444, inset -1px 1px 1px #444;">
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium.
</p>
<p> Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet,
consectetur, adipisci velit, sed quia non numquam eius modi
tempora incidunt ut labore et dolore magnam aliquam quaerat
voluptatem.
</p>
</div>
</div>
</div>
</body>
</html>
列偏移
即设置列的margin-left,通过查阅源码,bootstrap5.0.0可以通过
offset-i i偏移的列数(0,11)
offset-xx-i xx:md,sm,···
列嵌套
顾名思义,在row里面再填列row就可以了。
新列的网格系统均参考父元素。
列排序
Bootstrap5.0.0中,排序使用order
order-i i表示顺序
order-xx-i xx:md,sm,···
默认顺序层级相同,层级相同时,靠前的排前面
Bootstrap排版
text
Bootstrap5.0.0源码:
.text-start {
text-align: left !important;
}
.text-end {
text-align: right !important;
}
.text-center {
text-align: center !important;
}
.text-decoration-none {
text-decoration: none !important;
}
.text-decoration-underline {
text-decoration: underline !important;
}
.text-decoration-line-through {
text-decoration: line-through !important;
}
.text-lowercase {
text-transform: lowercase !important;
}
.text-uppercase {
text-transform: uppercase !important;
}
.text-capitalize {
text-transform: capitalize !important;
}
.text-wrap {
white-space: normal !important;
}
.text-nowrap {
white-space: nowrap !important;
}
/* rtl:begin:remove */
.text-break {
word-wrap: break-word !important;
word-break: break-word !important;
}
/* rtl:end:remove */
.text-primary {
color: #0d6efd !important;
}
.text-secondary {
color: #6c757d !important;
}
.text-success {
color: #198754 !important;
}
.text-info {
color: #0dcaf0 !important;
}
.text-warning {
color: #ffc107 !important;
}
.text-danger {
color: #dc3545 !important;
}
.text-light {
color: #f8f9fa !important;
}
.text-dark {
color: #212529 !important;
}
.text-white {
color: #fff !important;
}
.text-body {
color: #212529 !important;
}
.text-muted {
color: #6c757d !important;
}
.text-black-50 {
color: rgba(0, 0, 0, 0.5) !important;
}
.text-white-50 {
color: rgba(255, 255, 255, 0.5) !important;
}
.text-reset {
color: inherit !important;
}
更多可参考这里,然后多阅读源码就行了。
Bootstrap基础组件
代码
<code>内联代码</code>
<pre>
代码块
</pre>
代码中<: <
>: >
表格
实测:Bootstrap5.0.0还有一些bug
最好先使用Bootstrap3或者4。
--------------------后面以bootstrap3为准--------------------
一些样式就不说了。
表单
垂直表单(默认)
<form role="form">
<div class="form-group">
<label for="name">名称</label>
<input type="text" class="form-control" id="name" placeholder="请输入名称">
</div>
<button type="submit" class="btn btn-default">提交</button>
</form>
内联表单
<form class="form-inline" role="form">
<div class="form-group">
<label class="sr-only" for="name">名称</label>
<input type="text" class="form-control" id="name" placeholder="请输入名称">
</div>
<button type="submit" class="btn btn-default">提交</button>
</form>
水平表单
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="firstname" class="col-sm-2 control-label">名字</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="firstname" placeholder="请输入名字">
</div>
</div>
<div class="form-group">
<label for="lastname" class="col-sm-2 control-label">姓</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="lastname" 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>
按钮
图片
辅助类
Bootstrap组件
字体图标
Customize 字形图标(Glyphicons) - 菜鸟教程 (runoob.com)
下拉菜单
<div class="dropdown">
<button type="button" class="btn dropdown-toggle" id="dropdownMenu1" data-toggle="dropdown">主题
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
<li role="presentation" class="dropdown-header">下拉菜单标题</li>
<li role="presentation">
<a role="menuitem" tabindex="-1" href="#">Java</a>
</li>
<li role="presentation" class="divider"></li>
<li role="presentation">
<a role="menuitem" tabindex="-1" href="#">分离的链接</a>
</li>
</ul>
</div>
通过向 .dropdown-menu 添加 class .pull-right 来向右对齐下拉菜单。
···太多了,不想写了,菜鸟教程已经写得很全了,只需要自己注意一下版本问题就行了,下面就记录一下关键类吧!(相信xdm都会vscode的Emmet吧)···
按钮组
#基本按钮组
div.btn-group>button[type=button].btn.btn-defualt*3
#按钮工具栏
div.btn-tool[role=toolbar]>(div.btn-group>button[type=button].btn.btn-default)*3
#按钮大小
btn-group-xx xx:sm,lg···
#嵌套
#垂直按钮组
div.btn-group-vertical>(···)
按钮下拉菜单
基本:
<div class="btn-group">
<button type="button" class="dropdown-toggle" data-toggle="dropdown">原始
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#">功能</a></li>
<li class="divider"></li>
<li><a href="#">分离的链接</a></li>
</ul>
</div>
按钮下拉菜单大小:
调整按钮的类即可。
<button type="button" class="btn btn-success dropdown-toggle btn-xs" data-toggle="dropdown">
按钮上拉菜单
向父 .btn-group 容器添加 .dropup 即可。
<div class="btn-group dropup">
</div>
输入框组
基本输入框组:
1.把前缀或后缀元素放在一个带有 class .input-group 的 <div> 中。
2.接着,在相同的 <div> 内,在 class 为 .input-group-addon 的 <span> 内放置额外的内容。
3.把该 <span> 放置在 <input> 元素的前面或者后面。
div.input-group>(span.input-group-addon{@}+input[type=text].form-control)
按钮插件:
使用.input-group-addon替代.input-group-btn来包裹按钮
div.input-group>(span.input-group-button{@}+input[type=text].form-control)
导航元素
标签式导航菜单
ul.nav.nav-tabs>(li.active>a[href=#]+(li>a[href=#])*5)
胶囊式导航菜单
ul.nav.nav-pills>(li.active>a[href=#]+(li>a[href=#])*5)
垂直导航菜单
在使用.nav、.nav-pills或.nav-tabs的同时使用.nav-stacked
两端对齐导航
在使用.nav、.nav-pills或.nav-tabs的同时使用.nav-justified
菜单项内容
.tab-content与.tab-pane和data-toggle="tab" (data-toggle="pill" ) 一同使用, 设置标签页对应的内容随标签的切换而更改。
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">首页</a></li>
<li><a data-toggle="tab" href="#menu1">菜单 1</a></li>
<li><a data-toggle="tab" href="#menu2">菜单 2</a></li>
<li><a data-toggle="tab" href="#menu3">菜单 3</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h3>首页</h3>
<p>菜鸟教程 —— 学的不仅是技术,更是梦想!!!</p>
</div>
<div id="menu1" class="tab-pane fade">
<h3>菜单 1</h3>
<p>这是菜单 1 显示的内容。这是菜单 1 显示的内容。这是菜单 1 显示的内容。</p>
</div>
<div id="menu2" class="tab-pane fade">
<h3>菜单 2</h3>
<p>这是菜单 2 显示的内容。这是菜单 2 显示的内容。这是菜单 2 显示的内容。</p>
</div>
<div id="menu3" class="tab-pane fade">
<h3>菜单 3</h3>
<p>这是菜单 3 显示的内容。这是菜单 3 显示的内容。这是菜单 3 显示的内容。</p>
</div>
</div>
导航栏
默认导航栏
1.向 <nav> 标签添加 class .navbar、.navbar-default。
2.向上面的元素添加 role="navigation",有助于增加可访问性。
3.向 <div> 元素添加一个标题 class .navbar-header,内部包含了带有 class navbar-brand 的 <a> 元素。这会让文本看起来更大一号。
4.为了向导航栏添加链接,只需要简单地添加带有 class .nav、.navbar-nav 的无序列表即可。
响应式导航栏
# <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#example-navbar-collapse">
# <div class="collapse navbar-collapse" id="example-navbar-collapse"></div>
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#example-navbar-collapse">
<span class="sr-only">切换导航</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">菜鸟教程</a>
</div>
<div class="collapse navbar-collapse" id="example-navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">iOS</a></li>
<li><a href="#">SVN</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Java <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#">jmeter</a></li>
<li><a href="#">EJB</a></li>
<li><a href="#">Jasper Report</a></li>
<li class="divider"></li>
<li><a href="#">分离的链接</a></li>
<li class="divider"></li>
<li><a href="#">另一个分离的链接</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
表单导航栏
# 在原本标签位置:
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">提交</button>
</form>
导航栏按钮
# 不在form中的button
# .navbar-btn 可被使用在 <a> 和 <input> 元素上。
<button type="button" class="btn btn-default navbar-btn">
导航栏按钮
</button>
导航栏文本
<p class="navbar-text">Runoob 用户登录</p>
导航栏组件对齐
.navbar-left 或 .navbar-right 向左或向右对齐导航栏中的 导航链接、表单、按钮或文本 这些组件。
导航栏固定在顶底部
# 顶部
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
</nav>
# 底部
<nav class="navbar navbar-default navbar-fixed-bottom" role="navigation">
</nav>
# 随着页面移动的顶底部
<nav class="navbar navbar-default navbar-static-top" role="navigation">
</nav>
反色导航栏
<nav class="navbar navbar-inverse" role="navigation">
</nav>
面包屑组
<ul class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="#">2013</a></li>
<li class="active">十一月</li>
</ul>
分页
分页(Pagination)
ul.pagination>(li>a[href=#]{«}+(li>a[href=#]{$}*5)+li>a[href=#]{»})
翻页(Pager)
ul.pager>(li.previous>a[href=#]{←pre}+li.next>a[href=#]{next→})
标签
<span class="label label-default">默认标签</span>
<span class="label label-primary">主要标签</span>
<span class="label label-success">成功标签</span>
<span class="label label-info">信息标签</span>
<span class="label label-warning">警告标签</span>
<span class="label label-danger">危险标签</span>
徽章
<span class="badge">50</span>
# 当内部为空时,自动隐藏
<span class="badge pull-right">42</span>
# pull-right、pull-left 调整徽章位置
# 相对标签更圆润
超大屏幕
1.创建一个带有 class .jumbotron. 的容器 <div>
2.除了更大的 <h1>,字体粗细 font-weight 被减为 200
页面标题
如需使用页面标题(Page Header),请把您的标题放置在带有 class .page-header 的 <div> 中
div.page-header
缩略图
1.在图像周围添加带有 class .thumbnail 的 <a> 标签。
2.这会添加四个像素的内边距(padding)和一个灰色的边框。
3.当鼠标悬停在图像上时,会动画显示出图像的轮廓。
警告
普通:
<div class="alert alert-success">成功!很好地完成了提交。</div>
<div class="alert alert-info">信息!请注意这个信息。</div>
<div class="alert alert-warning">警告!请不要提交。</div>
<div class="alert alert-danger">错误!请进行一些更改。</div>
可取消:
# 同时添加alert-dismissable
<div class="alert alert-success alert-dismissable">
进度条
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="60"
aria-valuemin="0" aria-valuemax="100" style="width: 40%;">
<span class="sr-only">40% 完成</span>
</div>
</div>
其他样式:
# 在 progress-bar 基础上添加 progress-bar-* ( * = success、info、warning、danger)
决定进度条颜色
# 条纹的进度条
在 progress 基础上添加 progress-striped
# 运动起来
在 progress 基础上添加 active
# 堆叠起来
div.progress元素内部 添加多个 div.progress-bar
多媒体对象
媒体对象可以用更少的代码来实现媒体对象(如:图像、视频、音频等)与文字的混排。
<div class="media">
<div class="media-left media-top">
<img src="img_avatar1.png" class="media-object" style="width:60px">
</div>
<div class="media-body">
<h4 class="media-heading">左对齐</h4>
<p>这是一些示例文本...</p>
</div>
</div>
列表组
ul.list-group>(li.list-group-item)*5
列表组竖直排列,可以使用一下css代码获得水平排列列表组。
.list-group-horizontal .list-group-item {
display: inline-block;
}
.list-group-horizontal .list-group-item {
margin-bottom: 0;
margin-left:-4px;
margin-right: 0;
}
.list-group-horizontal .list-group-item:first-child {
border-top-right-radius:0;
border-bottom-left-radius:4px;
}
.list-group-horizontal .list-group-item:last-child {
border-top-right-radius:4px;
border-bottom-left-radius:0;
}
面板
基本
<div class="panel panel-default">
<div class="panel-body">
这是一个基本的面板
</div>
</div>
其他样式:
panel-primary
panel-success
panel-info
panel-warning
panel-danger
面板内部结构:
panel-heading
1.使用 .panel-heading class 可以很简单地向面板添加标题容器。
2.使用带有 .panel-title class 的 <h1>-<h6> 来添加预定义样式的标题。
panel-body
panel-footer
其他结构:如: table、ul……
Well
Well 是一种会引起内容凹陷显示或插图效果的容器 <div>
。
div.well
Bootstrap插件
【Bootstrap5】精细学习记录的更多相关文章
- 【jQuery】精细学习记录
[jQuery]精细学习记录 基础 基本语法: $(选择器).action(回调函数); $/jQuery //jQuery核心函数 $(选择器) //获得的jQuery对象 jQuery核心 - j ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- UWP学习记录11-设计和UI
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
- UWP学习记录10-设计和UI之控件和模式7
UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...
- UWP学习记录9-设计和UI之控件和模式6
UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...
- UWP学习记录8-设计和UI之控件和模式5
UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...
随机推荐
- 20个最有用的Python数据科学库
核心库与统计 1. NumPy(提交:17911,贡献者:641) 一般我们会将科学领域的库作为清单打头,NumPy 是该领域的主要软件库之一.它旨在处理大型的多维数组和矩阵,并提供了很多高级的数学函 ...
- logging日志的使用和设置过期自动删除
一.logging的基础使用 1.logging的级别 import logging logging.debug('debug message') # 计算或者工作的细节 logging.info(' ...
- 回顾反射机制Method
package com.demo.service; public interface SayHello { void sayHello(String name); } 接口实现类 package co ...
- C语言宏的使用
使用条件宏进行条件编译 譬如,对于同一份代码,我想编译出两个不同的版本,在其中一个版本中去掉某一部分功能, 这时可以通过条件宏判断是否编译,例: 如果不使用条件宏进行控制,想编译两个不同版本的程序,就 ...
- 利用Navicat premium实现将数据从Oracle导入到MySQL
背景:我们给用户提供了新的直播系统,但客户之前的老系统用的数据库是Oracle,我们提供的新系统用的是MySQL 客户诉求:将老系统中的所有直播数据导入到MySQL中: 思路:我知道Navicat有数 ...
- Hadoop学习笔记—HDFS
目录 搭建安装 三个核心组件 安装 配置环境变量 配置各上述三组件守护进程的相关属性 启停 监控和性能 Hadoop Rack Awareness yarn的NodeManagers监控 命令 hdf ...
- AppDomain实现【插件式】开发
前言: 近期项目中需要实现"热插拔"式的插件程序,例如:定义一个插件接口:由不同开发人员实现具体的插件功能类库:并最终在应用中调用具体插件功能. 此时需要考虑:插件执行的安全性(隔 ...
- Python fire库使用
1.前要fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具 不需要做任何额外的工作,只需要从主模块中调用fire.Fire() 它会自动将你 ...
- Windows Service 2016 Datacenter\Stand\Embedded激活方法
安装好系统后连入互联网之后使用管理员身份打开命令行 输入命令 slmgr /skms kms.03k.org 弹出窗口提示模式修改成功后再输入命令:slmgr /ato 以下为各个版本的key 版本: ...
- 软件工程第一次作业:Warm Up
Warm Up 项目 内容 作业所属课程 2021春季软件工程(罗杰 任健) 作业要求 第一次阅读作业 课程目标 培养通过团队协作使用软件开发工具按照软件工程方法开发高质量并且可用的复杂软件系统的能力 ...