Bootsrap基本选拔,类名设计
分类:前端技术

浅析 Bootstrap 的 CSS 类名设计

2014/05/08 · CSS · CSS

本文由 伯乐在线 - CSS魔法 翻译。未经许可,禁绝转发!
马耳他语出处:markdotto。接待参加翻译组。

翻译注:方今在再一次设计一个 UI 框架,由此也在考察一些贴近项目标天性和因素。在读到《Bootstrap 编码规范》时,顺着链接开采了其小编 @mdo 的生龙活虎篇文章,此中讲到 CSS 类名的宏图思路。

在构建相符 Bootstrap 那样的 CSS 系统时,保持系统的轻松性、稳固性、灵活性是极度主要的。那并非易事,尤其对于大型团队和体系来讲,组件的数量大概会变得一定宏大。为了精雕细琢这种气象,你不要紧设想用前缀式类名取代链式类名。

在使用 链式类名 方案时,你或者会把大器晚成体系特定组件的 CSS 选拔符写成这样:

CSS

.success { ... } .btn.success { .. } .alert.success { ... }

1
2
3
.success { ... }
.btn.success { .. }
.alert.success { ... }

咱俩在这里地设置了二个大局基础类 .success,它或许含有了成功按键和成功提醒框之间的有着共性。然后,在单个组件层面,大家又必要对它举办增添或掩没。不过,这种完全开放式的类名和链式风格令开拓者面前碰到一些烦劳和机密痛点:

  • 那个基础类到底意味着怎么样
  • 什么样要素会在根层级受到震慑(译注:啥意思?)
  • 怎么着因素得以把 .success 类链到自个儿随身
  • 它是不是足以被更加的增到更加多的机件上
  • 纵然三个 .success 的实例要用白底绿字,而另三个要用绿底白字,怎么办?

并且这么些难点还只是冰山风度翩翩角。这种方案未必非常糟糕,但万风流倜傥可扩充性、轻巧性和灵活性是你的参天供给,那或许就不是最好的办法。那个时候,前缀式类名方案可能一发相符你。

前缀式类名 将开采者引进大器晚成种更简短、更易维护的自由化,进而构建三个可扩充的 CSS 系统。当大家抛开正规的底蕴类的办法,并将每一种组件的体制用前缀节制起来时,大家的代码会成为那样:

CSS

.btn-success { ... } .alert-success { ... }

1
2
.btn-success { ... }
.alert-success { ... }

那样一来,基本功类被设定在组件品级,实际不是一切系统等第。换句话说,大家的功底类成为了 .btn.alert,而不是 .success。全数组件之间都不会现出样式和作为上的交互忧愁,因为我们把组件具备“成功景色”视为贯穿整个类其他生机勃勃种概念。那正是说,每一个组件在“成功”状态下的体裁,独有在 概念 层面才是类似的;而对于怎么样 实现 这么些样式,是被封锁在每一种独立的零件内部的。不用操心通用的样式还恐怕会在哪儿使用,也不用挂念不可意料的副作用,这种艺术使得各类组件特别平稳和灵活。

营造组件是风流洒脱项特别富有攻略性况兼重申细节的行事,在贰个好像 Bootstrap 的系统中,组件须要自然具备独立性,以增加模块分离度和可定制性。大家透过这种艺术来营造更加好的代码和三个令人开心的连串。


初稿出处: markdotto   译文出处:cssmagic 的博客(@CSS魔法)   

Bootsrap

自家的咀嚼

翻译注:近期在再一次规划一个 UI 框架,由此也在察看一些相像项指标特点和因素。在读到《Bootstrap 编码标准》时,顺着链接发掘了其小编 @mdo 的意气风发篇著作,此中讲到 CSS 类名的兼备思路。

用法:

作者观点

自家本身在 CMUI 第风华正茂版中,基本上选择的是文章带头所说的“链式类名”风格。举个例子说,贰个大号按键的布局大概是那般的:

XHTML

<button type="button" class="cmBtn cmLarge">Large button</button>

1
<button type="button" class="cmBtn cmLarge">Large button</button>

而在 Bootstrap 中,相仿的要素是那般的:

XHTML

<button type="button" class="btn btn-lg">Large button</button>

1
<button type="button" class="btn btn-lg">Large button</button>

最先始作者并从未认为这两个有如何不相同——前贰个类名用于挂载框架预约义的开关样式,后三个类名用于内定开关的尺码。把 Bootstrap 源码中负有的 .btn-lg 替换成 .cmBtn.cmLarge,不就跟自己的 CMUI 同样了嘛?作者依旧感觉 Bootstrap 的类命名有一点点啰嗦,.btn.btn-lg 中的 btn- 不是再度了啊?照旧 CMUI 干净利索啊!

不过,看完这篇小说,作者就如体会到 Bootstrap 这种规划的补益。笔者的明白可能并不是原文者的落脚点,但也无妨列举出来,仅供参谋。

在创设相仿 Bootstrap 那样的 CSS 系统时,保持系统的轻巧性、牢固性、灵活性是一定重大的。那并非易事,尤其对于大型公司和种类来说,组件的数目大概会变得一定宏大。为了校订这种气象,你不要紧假造用前缀式类名替代链式类名。

<!DOCTYPE html>

客户意见

这两种类名风格的差距并不在于源码是怎么写的,而是介怀开垦者(这里支使用 Bootstrap 的开荒者)在看到类名时的反射。小编的知道是,不等的命名,对开采者的授意是见仁见智的

开垦者们并不总是会依照组件文书档案的事必躬亲来编排组件的协会代码。比方说,有个别时候他们手头未有文书档案(或不想找文书档案),又恐怕他们所企盼的体制在文书档案中并从未列出。他们大概会抱着生龙活虎种试试看的心绪,尝试修改或结成手头的多少个类名,以期爆发某种新的体制效果。

假使类名是多如牛毛的(譬喻 CMUI 中的 .cmLarge),就相当轻易被拿来尝试——举例开拓者会给三个 ul.cmList 成分增加 .cmLarge 类并愿意获得贰在那之中号的列表,但其实 CMUI 并不曾提供这种组合!那破坏了开垦者的意料,导致思想受挫,以致末了放任那个组件库(夸张了点哈)。

但生机勃勃旦类名是被二个“组件级”前缀限制的(举个例子 Bootstrap 中的 .btn-lg),那么它被开采者拿去组合到别的组件身上的恐怕就一定低。尽管某些非分之想的开采者试图把 .btn-lg 改成 .dropdown-lg 并应用到几个下拉菜单上,当他失利时,他应该也曾经办好心绪计划了罢。

在使用 链式类名 方案时,你大概会把一五光十色特定组件的 CSS 选用符写成这样:

<html lang="en">

结语

如此那般看来,Bootstrap 的做法确有它的补益,笔者的 CMUI 2.0 不要紧也试试看。

你怎么商议这两类别名风格吗?无妨留下您的观点呢!

1 赞 收藏 评论

CSS

    <head>

至于作者:CSS魔法

图片 1

百姓网前端程序猿,移动 Web UI 框架 CMUI 小编,自称 “披着前端程序猿外衣的设计员”。 个人主页 · 我的稿子 · 12 ·     

图片 2

.success { ... } .btn.success { .. } .alert.success { ... }

        <meta charset="utf-8">

1
2
3
.success { ... }
.btn.success { .. }
.alert.success { ... }

        <meta http-equiv="X-UA-Compatible" content="IE=edge">

大家在这里处安装了七个大局基础类 .success,它大概含有了中标按键和成功提示框之间的具备共性。然后,在单个组件层面,大家又供给对它进行扩大或隐讳。可是,这种完全开放式的类名和链式风格令开采者面临一些烦闷和暧昧痛点:

        <meta name="viewport" content="width=device-width, initial-scale=1">

  • 以此基础类到底意味着如何
  • 何以要素会在根层级受到震慑(译注:啥意思?)
  • 怎么着因素得以把 .success 类链到本人随身
  • 它是否能够被更加强大到越多的零件上
  • 若果八个 .success 的实例要用白底绿字,而另三个要用绿底白字,咋做?

        <title>Bootstrap的HTML规范模板</title>   

同期那些难点还只是冰山豆蔻梢头角。这种方案未必非常差,但假诺可扩展性、轻易性和灵活性是你的参天供给,那或者就不是最棒的不二等秘书诀。那时,前缀式类名方案可能越发相符您。

        <!-- Bootstrap -->

前缀式类名 将开辟者引进风度翩翩种更简明、更易维护的样子,进而营造二个可扩大的 CSS 系统。当大家抛开正规的根底类的艺术,并将每一个组件的样式用前缀约束起来时,大家的代码会化为那样:

        <link href="css/bootstrap.min.css" rel="stylesheet">

CSS

        <!--你协和的体裁文件 -->

.btn-success { ... } .alert-success { ... }

        <link href="css/your-style.css" rel="stylesheet">        

1
2
.btn-success { ... }
.alert-success { ... }

        <!-- 以下多少个插件用于在IE8以至以下版本浏览器扶持HTML5成分和传播媒介询问,假如无需用能够移除 -->

这样一来,基础类被设定在组件品级,并不是整套体系品级。换句话说,大家的根基类成为了 .btn.alert,而不是 .success。全数组件之间都不会自可是然样式和作为上的互相烦懑,因为我们把组件具备“成功景观”视为贯穿整个系列的黄金时代种概念。这正是说,每一种组件在“成功”状态下的体制,唯有在 概念 层面才是相同的;而对此什么 实现 那个样式,是被封锁在每一种独立的组件内部的。不用担忧通用的体裁还有大概会在哪儿使用,也不用顾忌不可意料的副成效,这种情势使得各样组件越发安定和灵活。

        <!--[if lt IE 9]>

创设组件是生龙活虎项非常具备计策性并且强调细节的干活,在二个近乎 Bootstrap 的系统中,组件必要自然具有独立性,以拉长模块抽离度和可定制性。我们透过这种方式来营造更加好的代码和二个令人欢乐的类型。

        <script src=";


        <script src=";

自身的认知

        <![endif]-->

笔者观点

自己要辛亏 CMUI 第大器晚成版中,基本上选择的是小说最早所说的“链式类名”风格。例如说,壹此中号按键的布局恐怕是那样的:

XHTML

<button type="button" class="cmBtn cmLarge">Large button</button>

1
<button type="button" class="cmBtn cmLarge">Large button</button>

而在 Bootstrap 中,相通的要素是那般的:

XHTML

<button type="button" class="btn btn-lg">Large button</button>

1
<button type="button" class="btn btn-lg">Large button</button>

最发轫作者并从未感觉这两个有怎么着分歧——前一个类名用于挂载框架预订义的开关样式,后八个类名用于钦命按键的尺码。把 Bootstrap 源码中具备的 .btn-lg 替换成 .cmBtn.cmLarge,不就跟本人的 CMUI 相仿了呗?作者依然认为 Bootstrap 的类命名有一些啰嗦,.btn.btn-lg 中的 btn- 不是再一次了吧?依然 CMUI 干净利索啊!

但是,看完那篇文章,作者就像体会到 Bootstrap 这种布置的平价。笔者的理解或许并非原文者的重点点,但也无妨列举出来,仅供参谋。

    </head>

客户意见

那三种类名风格的出入并不在于源码是怎么写的,而是在于开采者(这里指利用 Bootstrap 的开拓者)在观看类名时的反响。作者的了解是,昨今差异的命名,对开拓者的暗指是分化的

开辟者们并不总是会循规蹈矩组件文书档案的示范来编排组件的构造代码。举例说,有个别时候她们手头未有文书档案(或不想找文书档案),又或然他们所企望的体裁在文书档案中并不曾列出。他们可能会抱着风度翩翩种试试看的心理,尝试改过或组合手头的多少个类名,以期发生某种新的样式效果。

假若类名是大范围的(比方 CMUI 中的 .cmLarge),就相当的轻巧被拿来尝试——比如开采者会给三个 ul.cmList 元素扩充 .cmLarge 类并期待获取叁当中号的列表,但实在 CMUI 并不曾提供这种组合!那破坏了开拓者的预料,导致心绪受挫,以至最后丢掉那个组件库(夸张了点哈)。

但生机勃勃旦类名是被二个“组件级”前缀节制的(例如 Bootstrap 中的 .btn-lg),那么它被开拓者拿去组合到别的组件身上的大概就比比较低。固然某些胡思乱想的开荒者试图把 .btn-lg 改成 .dropdown-lg 并应用到贰个下拉菜单上,当她退步时,他应该也曾经做好心绪筹划了罢。

    <body>

结语

那样看来,Bootstrap 的做法确有它的功利,小编的 CMUI 2.0 无妨也一触即发看。

你如何评价这二种类名风格吗?不要紧留下你的见解吗!

赞 1 收藏 1 评论

        <h1>Hello, world!</h1>

        

        <!-- 假若要运用Bootstrap的js插件,必需先调入jQuery -->

        <script src=";

        <!-- 包涵富有bootstrap的js插件也许能够依附须要利用的js插件调用 -->

        <script src=";

    </body>

</html>

 

 

标题样式:

Bootstrap中得以经过class名完毕h1-h6例如:<div class="h1">Bootstrap标题</div>

 

在Web的造作中,经常会遇上在四个标题前边紧跟着风度翩翩行小的副标题:

<h1>Bootstrap标题<small>小编是副标题</small></h1>

 

.lead   :增大文本字号,加粗;

给文本加多颜色,通过颜色来重申:

.text-muted:提醒,使用米红(#999)

.text-primary:主要,使用北京蓝(#428bca)

.text-success:成功,使用威尼斯绿色(#3c763d)

.text-info:文告新闻,使用宝石本白(#31708f)

.text-warning:警报,使用高粱红(#8a6d3b)

.text-danger:危险,使用土色(#a94442)

 

文本对其:在CSS中时常使用text-align来兑现文件对其,bootstrap中:

Text-left   左对齐

Text-center 居中对齐

Text-right   右对齐

Text-justify  两端对齐

 

Bootstrap提供了生龙活虎套响应式移动设备优先的流式栅格系统,随着显示器或视口(viewport)尺寸的增添,系统会自行分成最多12列。

 

因此class来 操作在相应的荧屏上的布局

手提式有线话机显示器(<768px) 类前缀.col-xs-

机械荧屏(>=768px)类前缀.col-sm-

中级荧屏(>=992px)类前缀.col-md-

大屏幕  (>=1200px)类前缀.col-lg-

列数都为12;全数的列(column)必须放在 .row内

<div class=”row”>

<div class=“col-xs-12  clo-md-8  clo-md-6  col-lg-4”>

<div class=“col-xs-12  clo-md-4  clo-md-6  col-lg-4”>

</div>

 

实例:

<div class=”container”>

<div class=”row”>

内容

</div>

</div>

将最外层的布局元素.container修正为 .container-fluid  就足以将固定宽度的栅格布局调换来百分百大幅的布局

偏移:

不常我们不希望相邻的列紧挨在合作,能够用列偏移(offset)来兑现  给要偏移的要素加 .col-md-offset-*   (*号表示须要偏移的列数)

诸如:“col-md-offset-4”正是在中等荧屏的时候向右偏移4列

 

列排序:

列排序正是改造列表的偏侧,正是更换左右浮动,并且安装浮动的间距,通过增添类名完成:

“col-md-push-*”和”col-md-pull-*”(*号表示偏移列数)

向右偏移写push   向左写pull;

 

列的嵌套:

Bootstrap框架还扶助列的嵌套

您能够在列中加多多个依然多个行(rom),然后在此个容器中插入列(像前边的相似)

嵌套的列  在写.col-md-*  的时候是不成方圆父盒子的基本功上 再开展分红

 

图标:

Bootstrap框架中也为大家提供了近200个不等的icon图片,而这几个Logo都是运用CSS3的@font-face属性合营字体来促成的icon效果。

如<span class=”glypicon glyphicon-search”></span>

效果:

 图片 3

 

 

开关:Bootstrap中开关通过类名“btn”来落到实处;

<button class=”btn”>基本开关</button>

效果:

 图片 4

 

在bottstrap中还足以行使在其余标签成分上,必要在标签成分上增添类名“btn”
<input type="submit" class="btn btn-default" value="input标签按键"/>
<div class="btn btn-default">div标签开关</div>
<span class="btn btn-default">span标签按键</span>

 图片 5

 

开关风格:

Bootstap中除了默许的开关风格还会有任何七种风格,功效相像,分歧在于按键的背景颜色,边框颜色和文书颜色;

代码如下:

<button class="btn btn-default">暗许开关</button>
<button class="btn btn-primary">首要按键</button>
<button class="btn btn-success">成功按键</button>
<button class="btn btn-warning">警报按键</button>
<button class="btn btn-danger">危险开关</button>
<button class="btn btn-link">链接按键</button>

效果:

 图片 6

开关大小:

在bootstrap中对开关的尺寸也足以定制,通过在基础按键.btn的功底上增添类名来定制按键大小

代码:

<button class="btn btn-primary btn-lg">大型按键</button>
<button class="btn btn-primary ">寻常按键</button>
<button class="btn btn-primary btn-sm">迷你按键</button>
<button class="btn btn-primary btn-xs">微型按键</button>

效果:

 图片 7

按键活动状态:

本着开关的图景小果果首要分为2种,活动状态和剥夺状态

活动状态主要包括悬浮状态(hover),点击状态(active)和枢纽状态(focus)

代码:

<button class="btn btn-default active">点击状态</button>
<button class="btn btn-primary focus">主旨状态</button>
<button class="btn btn-success hover">悬浮状态</button>

效果:

 图片 8

剥夺状态:要禁止使用开关有二种方法达成;

在标签中增加disabled属性;

在要素标签中增添类名”disabled”

代码:

<button class="btn btn-primary " disabled="disabled">通过disabled属性禁止使用开关</button>
<button class="btn btn-primary disabled">通过加多类名disabled禁用开关</button>
<button class="btn btn-primary ">未禁止使用的开关</button>

效果:

 图片 9

 

本文由pc28.am发布于前端技术,转载请注明出处:Bootsrap基本选拔,类名设计

上一篇:JavaScript和CSS交互的方法汇总,5种你未必知道的 下一篇:没有了
猜你喜欢
热门排行
精彩图文