BootStrap整体框架之基础布局组件
发布时间 - 2026-01-10 21:51:02 点击率:次1 基础布局组件

在12栅格系统上基础上,BootStrap还提供了多种基础布局组件。
CSS组件,总结为8大类型的样式:
基础样式、颜色样式、尺寸样式、状态样式、特殊元素样式、并列元素样式、嵌套子元素样式、动画样式
1.1基础样式
基本样式,一般包含文本字体,颜色背景,边框,定位等,如下面警告框:
//源码
.alert {
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
border-radius: 4px;
}
1.2颜色样式
看BootStrap官网的按钮btn或者alert警告框会发现许多组件默认的5种颜色样式:
primary(重点蓝)、success(成功绿)、info(信息蓝)、warning(警告橙)、danger(危险红)
http://getbootstrap.com/examples/theme/
定义规则:组件名称-颜色类型,比如btn-primary,alert-info
//源码
.btn-primary {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
}
1.3尺寸样式
BootStrap为大部分组件都提供了尺寸的快捷设置。一般组件包含xs、sm、普通、lg四种尺寸
定义规则:组件名称-尺寸,比如btn-xs
//源码
.btn-lg,
.btn-group-lg > .btn {
padding: 10px 16px;
font-size: 18px;
line-height: 1.3333333;
border-radius: 6px;
}
.btn-sm,
.btn-group-sm > .btn {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px;
}
.btn-xs,
.btn-group-xs > .btn {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px;
}
1.4状态样式
高亮可用的时候用active样式,禁用的时候用disabled样式或disabled属性。
//源码
.btn:active,
.btn.active {
background-image: none;
outline: 0;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
1.5特殊元素样式
所谓特殊元素,即特定类型的组件一般只使用某一种或者几种固定的元素。
比如:alert警告框内一般有警告标题、内容、关闭链接元素;nav导航中常用li元素
//源码
//alert内连接的样式
.alert .alert-link {
font-weight: bold;
}
//alert内p元素和ul元素的底部外边距设置
.alert > p,
.alert > ul {
margin-bottom: 0;
}
//两个段落之间,增加一个段落外边距
.alert > p + p {
margin-top: 5px;
}
//增大右内边距,以便关闭按钮
.alert-dismissable,
.alert-dismissible {
padding-right: 35px;
}
//关闭按钮,右对齐
.alert-dismissable .close,
.alert-dismissible .close {
position: relative;
top: -2px;
right: -21px;
color: inherit;
}
//源码
.nav > li {
position: relative;
display: block;
}
.nav > li > a {
position: relative;
display: block;
padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
text-decoration: none;
background-color: #eee;
}
.nav > li.disabled > a {
color: #777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
color: #777;
text-decoration: none;
cursor: not-allowed;
background-color: transparent;
}
1.6并列元素样式
很多情况下,一个组件内部需要放置多个子元素,比如导航栏nav里放置多个li元素,按钮组可以放置多个button元素。
一般并列元素考虑:1.水平并列时左右内边距(padding-left padding-right)和外边距(margin-left margin-right)2.垂直并列时上下内边距(padding-top padding-bottom)和外边距(margin-top margin-bottom)
//源码
.alert > p,
.alert > ul {
margin-bottom: 0;
}
.alert > p + p {
margin-top: 5px;
}
.modal-footer .btn + .btn {
margin-bottom: 0;
margin-left: 5px;
}
1.7嵌套子元素样式
需要将两个相同或不同的组件嵌套在一起使用,这时会有特殊情况,比如,多个按钮组在一起使用,或者按钮和下拉菜单一起使用。
需要考虑嵌套元素的使用情况。比如多个分组按钮一起使用的时候,需要考虑浮动方向和间距
//源码
//消除2个按钮(或一个按钮和另外一个按钮组)之间的1像素细节引起的冲突
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
margin-left: -1px;
}
1.8动画样式
动画样式在BootStrap中的进度条progress组件中才使用到。
<div class="progress"> <div class="progress-bar" style="width:45%"> <span class="sr-only">45% complete</span> </div> </div>
注意用.progress是总进度条,progress-bar是进度条显示的部分,还有五种颜色progress-bar-success等
sr-only,全称是 screen reader only(仅供)屏幕阅读器有时候 UI 上会出现一些仅供视觉识别的元素,比如说“汉堡包菜单按钮”只有视力正常的人才能清楚辨识这些元素的作用。而残障人士,比如弱势或盲人是不可能知道这些视觉识别元素是什么的。他们上网使用的是屏幕阅读器,也就是 screen reader(sr),屏幕阅读器需要找到能辨识的文本说明然后“读”出来给用户听。
//源码
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #f5f5f5;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
}
.progress-bar {
float: left;
width: 0;
height: 100%;
font-size: 12px;
line-height: 20px;
color: #fff;
text-align: center;
background-color: #337ab7;
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
-webkit-transition: width .6s ease;
-o-transition: width .6s ease;
transition: width .6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-webkit-background-size: 40px 40px;
background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
1.9总结
1.通常8种类型样式,需要组合使用,比如设置active状态时候还要兼顾颜色和尺寸样式,设置尺寸又要考虑并列元素的情况,所以从高层往下考虑,考虑需要写哪几种样式。
2.还有就是样式利用CSS重载覆盖的概念,注意定义的顺序,以免重载顺序错误。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Bootstrap
# 布局组件
# BootStrap table表格插件自适应固定表头(超好用)
# Markdown+Bootstrap图片自适应属性详解
# Markdown与Bootstrap相结合实现图片自适应属性
# 使用jQuery和Bootstrap实现多层、自适应模态窗口
# Bootstrap页面布局基础知识全面解析
# bootstrap配合Masonry插件实现瀑布式布局
# BootStrap学习系列之布局组件(下拉
# 按钮组[toolbar]
# 上拉)
# Bootstrap表单布局
# Bootstrap 布局组件(全)
# bootstrap实现的自适应页面简单应用示例
# 多个
# 仅供
# 进度条
# 几种
# 的人
# 的是
# 会有
# 基础上
# 又要
# 另外一个
# 四种
# 往下
# 五种
# 官网
# 种颜色
# 上会
# 大家多多
# 来给
# 为大
# 才使
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
java ZXing生成二维码及条码实例分享
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何快速生成ASP一键建站模板并优化安全性?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
用yum安装MySQLdb模块的步骤方法
如何用狗爹虚拟主机快速搭建网站?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
长沙做网站要多少钱,长沙国安网络怎么样?
,怎么在广州志愿者网站注册?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
利用JavaScript实现拖拽改变元素大小
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Bootstrap CSS布局之列表
Laravel如何实现API速率限制?(Rate Limiting教程)
如何快速搭建支持数据库操作的智能建站平台?
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
如何续费美橙建站之星域名及服务?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
JS实现鼠标移上去显示图片或微信二维码
Laravel怎么判断请求类型_Laravel Request isMethod用法
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Linux系统命令中tree命令详解
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
javascript中的try catch异常捕获机制用法分析
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何在万网利用已有域名快速建站?
如何在云主机上快速搭建多站点网站?
EditPlus中的正则表达式 实战(2)
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
利用vue写todolist单页应用
如何构建满足综合性能需求的优质建站方案?
如何在Windows环境下新建FTP站点并设置权限?
,交易猫的商品怎么发布到网站上去?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何批量查询域名的建站时间记录?

