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 storage目录权限问题_Laravel文件写入权限设置
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何快速建站并高效导出源代码?
HTML 中动态设置元素 name 属性的正确语法详解
网站制作大概多少钱一个,做一个平台网站大概多少钱?
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
php打包exe后无法访问网络共享_共享权限设置方法【教程】
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
如何批量查询域名的建站时间记录?
做企业网站制作流程,企业网站制作基本流程有哪些?
详解vue.js组件化开发实践
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
如何在万网自助建站中设置域名及备案?
如何获取上海专业网站定制建站电话?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
网站制作壁纸教程视频,电脑壁纸网站?
Laravel如何自定义分页视图?(Pagination示例)
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
如何在Ubuntu系统下快速搭建WordPress个人网站?
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
如何有效防御Web建站篡改攻击?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
EditPlus中的正则表达式 实战(4)
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
如何在景安云服务器上绑定域名并配置虚拟主机?
,在苏州找工作,上哪个网站比较好?
百度浏览器如何管理插件 百度浏览器插件管理方法
如何在服务器上三步完成建站并提升流量?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Internet Explorer官网直接进入 IE浏览器在线体验版网址
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
如何用已有域名快速搭建网站?
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
制作公司内部网站有哪些,内网如何建网站?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
javascript中闭包概念与用法深入理解
Laravel如何使用Eloquent进行子查询
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
深圳网站制作的公司有哪些,dido官方网站?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?

