Bootstrap之CSS架构的设计思想

2024-05-24 06:08

本文主要是介绍Bootstrap之CSS架构的设计思想,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

整体上,不同名的样式可以叠加到一起使用,同名的样式,后面的会覆盖前面的,从而到达组合应用的效果,整个CSS组件有8大类型的样式,然后根据每个组件的特性,来组装这些类型的特性,从而达到丰富多彩的配置效果,如下图所示:



一、基础样式

在基本样式里,一般是定义该样式下的字体(font-)、外内边距(padding,margin)、显示方式(display)、边框(border)以及其他相关的内容,例如,警告框基础样式源码:

.alert { /* 基本的警告框设置 */
padding: 15px;
margin-bottom: 20px;
border: 1px solid transparent;
border-radius: 4px;
}

又如,按钮组件(btn)的基本样式,除此之外还定义了文本、display、focus、hover的基础样式,可查看Bootstrap.css进行验证。

二、颜色样式

Bootstrap默认为很多组件都提供了5种颜色的样式,这5种颜色分别是:primary(重点蓝)、success(成功绿)、info(信息蓝)、warning(警告橙)、danger(危险红)。定义规则是:组件名称-颜色类型,如btn-primary、alert-info。

在定义不同颜色样式的时候,主要是定义文本颜色、边框颜色、背景颜色等,具体定义什么颜色和该组件的特性有关。例如,btn、panel、alert三个组件在定义颜色样式时
的代码如下所示:

/* btn */
.btn-primary {
color: #ffffff; background-color: #428bca; border-color: #357ebd;
} /* panel */
.panel-success {
border-color: #d6e9c6;
} .
panel-success >
.
panel-heading {
color: #468847; background-color: #dff0d8; border-color: #d6e9c6;
} /* alert */
.alert-success {
color: #468847; background-color: #dff0d8; border-color: #d6e9c6;
} .
alert-success hr {
border-top-color: #c9e2b3;
}

而对于一些可单击元素,比如btn按钮,还要特殊处理按钮在hover、focus、active状态时的颜色,以便让这些状态在同一个风格下表现一致。其源码如下所示:

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open .dropdown-toggle.btn-primary {
color: #fff;
background-color: #3276b1;
border-color: #285e8e;
}

使用方式就像Bootstrap宣传的那样,将两个样式叠加在一起使用即可。示例如下所示:(注意每个标签的class属性值!)

<button type=“button” class=“btn btn-primary”>Primary</button>
<button type=“button” class=“btn btn-success”>Success</button>
<div class=“alert alert-warning”>…</div>
<div class=“alert alert-danger”>…</div>


三、尺寸样式

Bootstrap也为大部分组件都提供了尺寸的快捷设置。一般组件都有4种尺寸:超小(xs)、小型(sm)、普通、大型(lg)。使用示例如下所示

<button type=“button” class=“btn btn-xs”>Primary</button>
<button type=“button” class=“btn btn-lg”>Success</button>
<div class=“well well-lg”>…</div>
<div class=“well well-sm”>…</div>

调整尺寸主要是调整所对应元素的padding和圆角设置,有时候也会相应调整行间距和字体大小。btn按钮和well组件在尺寸方面的设置源码如下所示:

.btn-lg {
padding: 10px 16px;
font-size: 18px;
line-height: 1.33;
border-radius: 6px;
} 
.well-lg {
padding: 24px; /*加大内边距*/
border-radius: 6px; /*加大圆角设置*/
} .
well-sm {
padding: 9px; /*减少内边距*/
border-radius: 3px; /*减少圆角设置*/
}
同一个组件的不同类型的样式可以组合在一起使用,比如颜色样式btn-success和尺寸样式btn-lg一起使用:

<button type=“button” class=“btn btn-success btn-lg”>Success</button>

四、状态样式

有一些可单击元素,经常需要根据状态来显示其效果,比如高亮可用的时候用active样式,禁用的时候用disabled样式或disabled属性。Bootstrap的一部分组件针对这种元素也都进行了处理,例如btn按钮的样式定义如下所示:

.btn:active,
.btn.active {
background-image: none;
outline: 0; /* 消除outline*/
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); /*定义阴影*/
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
} .
btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
pointer-events: none;
cursor: not-allowed;
filter: alpha(opacity=65);
-webkit-box-shadow: none; /* 去除阴影*/
box-shadow: none;
opacity: .65; /* 透明处理*/
}

五、特使元素样式

所谓特殊元素,即特定类型的组件一般只使用某一种或者几种固定的元素,比如alert警告框内一般只用警告标题、内容和关闭链接元素,再如导航(nav)里的经常用的li元素。在定义这些组件的时候,也要为这些常用的元素定义其相关的默认样式。总之,要为各种情况设置相应的内容,以保持风格的统一

六、并列元素样式

一个组件内部需要放置多个子元素,比如导航组件(nav)里可以放置多个li元素,按钮组里可以放置多个button元素。如果有这种情况,就需要处理这样并列元素的间距问题了。一般来说,只需要考虑两方面即可:其一水平并列时候的左右内边距(padding-left、padding-right)和外边距(margin-left、margin-right);其二:垂直并列时的上下内边距(padding-top、padding-bottom)和外边距(margintop、margin-bottom)。

例如,在alert组件中,有时会有两段内容,就会需要两个P元素,这是需要处理上下内边距,css源码如下:

.alert > p {
margin-bottom: 0; /* alert内的p元素和ul元素的底部外边距设置 */
} .
alert >p+p{
margin-top: 5px; /*两个段落之间,增加一个顶部外边距*/
}
而在模态弹窗组件(modal)的底部,经常需要显示多个按钮(比如:“保存”、“取消”等),这时候就需要处理水平并列的情况了。源码如下所示:

.modal-footer .btn + .btn {
/* 底部区域内的按钮样式设置,如果有多个按钮,设置左部外边距 */
margin-bottom: 0;
margin-left: 5px;
}

七、嵌套子元素样式

当将两个相同或不同的组件嵌套在一起时使用时,会出现一些特使情况,如,多个分组按钮一起使用的时候,就需要考虑浮动方向和间距,css源码如下:

.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
margin-left: -1px;/* 消除2个按钮(或一个按钮和另外一个按钮组)之间的1像素细节引
起的冲突 */
} .
btn-group >.btn-group {
float: left;
}


八、动画样式

在Bootstrap里,动画样式应用的很少,如在进度条里会使用,只需在progress样式上应用一个active样式,即可开启动画过渡效果,如下代码所示:

<div class=“progress progress-striped active”>
<span style="white-space:pre">	</span><div class=“progress-bar” style=“width: 45%”>
<span style="white-space:pre">	</span><span class=“sr-only”>45% Complete</span></div>
</div>




这篇关于Bootstrap之CSS架构的设计思想的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/997591

相关文章

css3 使用的个人笔记

css3 做出顶边倾斜的 梯形 div 图片展示效果 <html><head><meta charset="utf-8"> <title>顶边倾斜的div梯形</title> <style> .box{border-radius:0px;width:200px;height:100px;background-color:green;position:relative;}

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 01 为什么需要一个新的网络架构

关于专栏 本专栏是工作之后阅读 Cloud Native Data Center Networking ( O’Reilly, 2019)的读书笔记。这本书是我在数据中心从事云网络工作的启蒙、扫盲读物。可惜,其中文版翻译并非尽善尽美,必须结合英文原版才能理解原作者要表达的观点。 部分表达参考了博客:ARTHURCHIAO’S BLOG 本章回答以下问题: 新型应用程序的特征是什么

【尚庭公寓SpringBoot + Vue 项目实战】看房预约管理(十三)

【尚庭公寓SpringBoot + Vue 项目实战】看房预约管理(十三) 文章目录 【尚庭公寓SpringBoot + Vue 项目实战】看房预约管理(十三)1、业务说明2、代码开发2.1、根据条件分页查询预约信息2.2、根据ID更新预约状态 1、业务说明 看房预约包括两个接口 根据条件分页查询预约信息根据ID更新预约状态 2、代码开发 2.1、根据条

电路抗干扰设计——非常详细

抗干扰设计的基本任务是系统或装置既不因外界电磁干扰影响而误动作或丧失功能,也不向外界发送过大的噪声干扰,以免影响其他系统或装置正常工作。 因此提高系统的抗干扰能力也是该系统设计的一个重要环节。 电路抗干扰设计原则汇总: 1、电源线的设计 (1) 选择合适的电源; (2) 尽量加宽电源线; (3) 保证电源线、底线走向和数据传输方向一致; (4) 使用抗干扰元器件; (5)

基于51单片机万年历设计—显示温度农历

基于51单片机万年历设计 (仿真+程序+原理图+设计报告) 功能介绍 具体功能: 本系统采用单片机+DS1302时钟芯片+LCD1602液晶+18b20温度传感器+按键+蜂鸣器设计而成。 1.可以显示年月日、时分秒、星期、温度值。 2.DS18B20测温; 3.按键可设置时间、闹钟,切换农历查看; ​演示视频: 基于51单片机万年历设计—显示温度农历

奇思妙想-可以通过图片闻见味道的设计

奇思妙想-可以通过图片闻见味道的设计       偷闲半日享清闲,炭火烧烤乐无边。肉串飘香引客至,笑语欢声绕云间。人生难得几回醉,且把烦恼抛九天。今宵共饮开怀酒,改日再战新篇章。       周四的傍晚,难得的闲暇时光让我与几位挚友相约,一同前往那散发着诱人香气的烧烤店。下班的钟声响起,我们骑着共享单车,自繁华的城南缓缓向北。此时,夕阳如诗如画,它的余晖透过街道两旁的大树,斑驳地洒落在归

工程设计问题---行星轮系设计问题

该问题的主要目标是使汽车传动比的最大误差最小。为了使最大误差最小,对自动行星传动系统的齿轮齿数进行了计算。该问题包含6个整数变量和11个不同几何约束和装配约束的约束。 参考文献: Abhishek Kumar, Guohua Wu, Mostafa Z. Ali, Rammohan Mallipeddi, Ponnuthurai Nagaratnam Suganthan, Swag

HTML中的<br>、<hr>和<pre>标签使用指南

HTML提供了多种标签来控制文本的显示方式和页面布局。<br>、<hr>和<pre>是其中三种常用的标签,分别用于创建换行、水平线和预格式化文本。以下是这些标签的介绍和使用示例。 <br>标签:换行 <br>标签用于在文本中创建换行,它是自闭合标签,不需要结束标签。 示例:使用<br>创建换行 <p>这是第一行文本<br>这是第二行文本</p> 在上面的例子中,<br>标签使得文本在两

web前端厦门招聘:探索行业趋势、技能需求与职业发展机遇

web前端厦门招聘:探索行业趋势、技能需求与职业发展机遇 在数字化浪潮席卷全球的今天,Web前端技术作为互联网行业的核心驱动力之一,其重要性日益凸显。厦门,作为一座充满活力和创新氛围的城市,Web前端招聘市场同样炙手可热。本文将深入剖析Web前端在厦门的招聘趋势、技能需求以及职业发展机遇,为求职者提供有价值的参考。 一、Web前端行业趋势 随着互联网的不断发展,Web前端技术也在不断演进。从

CSS 实现电影信息卡片

CSS 实现电影信息卡片 效果展示 CSS 知识点 CSS 综合知识运用 页面整体布局 <div class="card"><div class="poster"><img src="./poster.jpg" /></div><div class="details"><img src="./avtarlogo.png" class="logo" /><h3>Directed by