提升你前端水平的

CSS进阶:进步你前端水平的 4 个技巧

2016/07/06 · CSS

本文由 伯乐在线 –
小谢
翻译。未经许可,禁止转发!
英文出处:Jonathan Z.
White。欢迎插足翻译组。

翻译注:随着 Node.js 、react-native
等技巧的连绵不断出新,和互连网行业的创业的见惯司空,精晓些前端知识,成为全栈攻城师,快速的面世原型,显示你的创意,对程序员,特别是在创业的程序员来说,越来越主要,上面大家就紧跟着盛名国外开发者网站上的热推小说《Leveling
up in CSS》,从提高你的CSS技巧伊始。

澳门葡京 1

翻译注:随着 Node.js 、react-native
等技术的穿梭出新,和网络行业的创业的无独有偶,明白些前端知识,成为全栈攻城师,快捷的面世原型,突显你的新意,对程序员,特别是在创业的程序员来说,越来越主要,上面大家就跟随知名国外开发者网站上的热推作品《Leveling
up in CSS》,从进步你的CSS技巧伊始。

CSS进阶:提升你前端水平的 4 个技术,css进阶

译者注:随着 Node.js 、react-native 等技术的不断出现,和互联网行业的创业的层出不穷,了解些前端知识,成为全栈攻城师,快速的产出原型,展示你的创意,对程序员,尤其是在创业的程序员来说,越来越重要,下面我们就跟随著名国外开发者网站上的热推文章《Leveling up in CSS》,从提升你的CSS技巧开始。

 
澳门葡京 2

CSS
在刚开始读书的时候看起来格外简单。毕竟,它只有就是些体制而已,事实上是那般啊?

不过,随着你的穿梭询问。很快,你会意识 CSS
没你想象的那么简单,它复杂且有深度。

盘活那四件业务,能让你在大规模利用 CSS
的时候有限支撑代码的健壮性:使用方便的语义,模块化,选用统一的命名规范,坚守单一功效原则。

行使万分的语义

在 HTML 和 CSS
编程中有语义标注的概念。语义是指单词的含义和她俩间的涉嫌。在 HTML
编程中,意味着你须要动用一个确切的价签名字来标记。上面是一个经文的事例。

 <!-- bad --> 
 <div class = ”footer” </div>
 <!-- good -->
 <footer></footer>

享有语义的 HTML 是非凡简单明确的。另一方面,富有语义的 CSS
则是更抽象和勉强的。编写富有语义的 CSS
意味着在增选品种的时候,类名要传达出结构和功力消息。类名要很不难被了解。确保它们并非太现实、太特殊。这样,你就足以复用它了。

 
澳门葡京 3

为了演讲怎么着是一个卓绝的类名,请看那个简化了的 Medium 网站的 CSS 例子。

<div  class ="stream">
 <div  class="streamItem">
 <article  class="postArticle">
  <div  class = "postArticle-content">
<!-- content -->
 </div>
 </article>
 </div>
</div>

通过那几个代码,你可以立刻识别出它们的构造、作用和意义。父节点的类名是
stream ,内容是一个篇章列表。它的子节点的类名是 streamItem
,内容是小说列表中的一篇具体的稿子。那使大家很不难的询问到父节点和子节点之间的关系。并且,那些类能够在逐个有成文功效的页面中运用。

你可以像阅读一本书一样读 HTML 和
CSS。它会给你讲一个故事。通过轶事你可以精晓传说中的每一种角色和她们中间的涉及。语义充足的
CSS 代码简单领悟,更利于维护。

设若你想进一步询问语义相关的内容,看看 《怎么拥有语义的为类命名》、《CSS
命名不不难》 和 《富有语义和简单辨认(的代码命名)》,再看 《关于 HTML
命名和前端架构》。

模块化

在那么些充满了组件库(以 React
为例)的一时,模块化就是王者。组件就是由曾经解构了的接口创造的可组合的模块。上面是一个Product
Hunt(一种发表好的创业好项目标网站)前端页面。作为练兵,让我们将那么些页面分解成一文山会海的机件。

 
澳门葡京 4

每一种颜色框代表一个零件,stream 节点下分为广大个 stream item 子节点。

 <div class = "stream" >
 <div class = "streamItem" >
 <!-- product info -->
 </div>
 </div>

大多数零件都得以分解为更小的机件。

 
澳门葡京 5

每一种 stream item 组件都有一个缩略图和一个特点的产品消息。

 <!-- STREAM COMPONENT -->
 <div class = "stream" >
 <div  class = "streamItem" >
 <!-- POST COMPONENT -->
 <div  class = "post" >
 <img  src = "thumbnail.png" class = "postThumbnail" />
 <div  class = "content" >
 <!-- product info -->
 </div>
 </div>
 </div>
 </div>

是因为 stream 组件和它的子控件是一心独立的,你可以很简单的调整依旧转移
post 组件,并且那不会对 stream 组件暴发任何影响。

选用组件的考虑将会使你的代码解耦。解耦的代码越来越多,你的类之间的器重性就越低。那会让你的代码更易于修改,并且使您的代码更长日子的干活下去而不用修改它。

 
澳门葡京 6

零件驱动设计

模块化你的 CSS
时,首先将你的筹划分解成三个零部件。你可以使用纸和笔,也足以使用类似
Illustrator 或许 Sketch
那类的软件。确定你将要如何命名这个组件,同时清理各种零部件之间的涉嫌。

翻阅更加多关于 CSS 组件驱动的篇章,详见《CSS
建构:可伸张和模块化处理》、《使用 Sass 编写模块化的
CSS》和《模块化你的前端代码——编写高可保险和条理清晰的代码》。

行使统一的命名规范

现阶段有几十个例外版本的 CSS
命名规范。有些人对她们挑选的命名规范极其笃定,认为她们的比旁人的更好。事实上,不同的人爱不释手不一样的命名规范。我听见的最好的指出是:选用你以为最合适的命名规范。

上边简单列举一下常用的命名规范:

  • Object oriented CSS OOCSS

  • Block element modifier (BEM)

  • Scalable and modular architecture for CSS (SMACSS)

  • Atomic

本身最喜爱的命名规范是 BEM。BEM
代表块(block)、成分(element)和修饰符(modifier)。Yandex,在俄国的相当于谷歌(谷歌(Google))的查找引擎,为了消除他们
CSS 代码库中的缩放难题而提议了它(它指BEM)。

 
澳门葡京 7

BEM 是一个卓殊不难——又极其严俊——的命名规范。

 .block  {}
 .block__element  {}
 .block--modifier  {}

块(Blocks)代表高级其余类。元素(Elements)是块的子模块。修饰符(modifiers)代表不同的状态。

 
澳门葡京 8

 <div class = "search" >
 <input  type= "search__btn search__btn--active"  />
 </div>

在上头的言传身教中, search 是块(block),search
button是它的因素(element)。假如您想要更改按钮的情状,我们可以为按钮扩张一个修饰符,例如
active 。

至于命名规范要记住的一件事是,无论你喜爱哪类命名规范,你会不时继承或然办事在不一致专业的代码库上。请敞快意扉去学习新的业内,用不一样的考虑去探讨CSS 。

您可以在《长远学习 BEM 语法》、《BEM 101》和《BEM 简介》上看看越多关于
BEM
的音讯。想要通晓区其他命名规范,参见《OOCSS、ACSS、BEM、SMACSS:那个是怎么?我该用哪个?》。

依据单一成效原则

单纯功效原则规定各个模块和类都应该有一个单一的效能,并且该功效应该由那一个类完全封装起来。

在 CSS 中,单一成效原则代表每一段代码、类和模块只做一件事。当大家付出
CSS 文件时,那意味着逐个独立的组件(例如轮播效果和导航栏)都应该有投机的
CSS 文件。

 /
 components
 |-  carousel
 |- |-  carousel .css
 |- |-  carousel.partial . html
 |- |-  carousel . js
 |-  nav
 |- |-  nav . css
 |- |- nav .partial . html
 |- |-  nav . js

除此以外一个常见的团体文件的格局是根据效益将文件分组。举个栗子,如下面所示,所有和轮播效果组件有关的公文都被归类到了一块。选择那种方法能够让你更便于的找到有关文书。

除开对组件的体制举办分离之外,最好使用单一作用原则对全局样式也开展分离。

 / base
 |-  application . css
 |-  typography . css
 |-  colors . css
 |- grid . css

在那一个例子中,每种相关的体裁被分别到自身的样式文件中。那样,假使您想要修改样式中的颜色,那么你将会很不难的找到它。

无论你利用哪类方法社团文件结构,尽量在控制的时候参考单一作用原则。一旦有某个文件初阶变的重合,那么考虑依据逻辑功用将它分为三个部分。

愈多关于协会文件结构和 CSS 架构的篇章,详见《Sass 审美
1:架构和公司体制文件》和《可扩展和可爱慕的 CSS 架构》。

当单一功用原则应用于你的每种 CSS
类采用器中时,那象征每一种类拔取器都独具唯一的功用。换句话说,要基于不一样关心点将样式分离到不一致的类拔取器中。上面是个经典的例子:

 .splash {
background : #f2f2f2 ;
 color :#fffff ;
 margin : 20px ;
 padding: 30px;
 border-radius : 4px;
 position : absolute ; 
 top : 0 ;
 right: 0 ;
 bottom : 0 ;
 left: 0 ;
 }

在上面的事例中,大家将关切点耦合了。splash
这些类不但含有了本身的体制和逻辑,同时也含有了它的子节点的。为了消除那些题材,大家得以将那段代码分离为多个新的类。

 .splash {
   position: absolute;
   top: 0;
  right: 0;
   bottom: 0;
  left: 0;
 }

以往大家有 splash 和 splash content 三个类。大家得以将 splash
作为一个一般的全屏类,它可以具有任何子节点。所有子节点关心的特性,都在
splash content 中,与父节点的性子是一点一滴解耦的。

提升你前端水平的。你可以透过阅读下列小说进一步驾驭单一作用原则在样式表和类中的应用。《单一成效原则在
CSS 中的应用》和《单一功效原则》。

简言之胜过复杂

假诺您问其余一个得逞的前端开发工程师恐怕 CSS
架构师,他们会告诉您,他们根本没有对协调的代码完全满意。写好 CSS
是一个不停迭代的经过。从简单开首,听从基本的 CSS
规则和样式指南,然后不断迭代。

自我很想领会您的 CSS
学习之路。你喜爱的命名规范是什么?你是什么社团你的代码文件的?你可以随时通过留言或许在
Tweet 上报告我。

我有一个前端学习交流QQ群:328058344 如果你在学习前端的过程中遇到什么问题,欢迎来我的QQ群提问,群里每天还会更新一些学习资源。禁止闲聊,非喜勿进。

4 个技巧,css进阶
译者注:随着 Node.js 、react-native
等技能的频频涌出,和网络行业的创业的家常便饭,了然…

翻译注:随着 Node.js 、react-native
等技巧的不停涌出,和网络行业的创业的见惯不惊,精通些前端知识,成为全栈攻城师,快速的面世原型,突显你的创意,对程序员,特别是在创业的程序员来说,越来越首要,上面我们就紧跟着闻明海外开发者网站上的热推小说《Leveling
up in CSS》,从进步你的CSS技巧开头。

CSS
在刚伊始上学的时候看起来万分简单。终究,它仅仅就是些体制而已,事实上是那样吗?

然则,随着你的不断询问。很快,你会发现 CSS
没你想像的那么简单,它复杂且有深度。

办好那四件工作,能让你在大规模利用 CSS
的时候保险代码的健壮性:使用方便的语义,模块化,采纳统一的命名规范,遵守单一作用原则。

澳门葡京 9

 

使用万分的语义

在 HTML 和 CSS
编程中有语义标注的概念。语义是指单词的意义和他们间的关系。在 HTML
编程中,意味着你必要选择一个确切的竹签名字来标记。下边是一个经典的事例。

XHTML

<!– bad –> <div class=”footer”></div> <!– good
–> <footer></footer>

1
2
3
4
<!– bad –>
<div class=”footer”></div>
<!– good –>
<footer></footer>

负有语义的 HTML 是极度不难明确的。另一方面,富有语义的 CSS
则是更抽象和勉强的。编写富有语义的 CSS
意味着在挑选种类的时候,类名要传达出协会和功效音讯。类名要很不难被清楚。确保它们并非太现实、太特殊。这样,你就可以复用它了。

澳门葡京 10

为了演说怎么着是一个完好无损的类名,请看那个简化了的 Medium 网站的 CSS 例子。

XHTML

<div class=”stream”> <div class=”streamItem”> <article
class=”postArticle”> <div class=”postArticle-content”> <!–
content –> </div> </article> </div> </div>

1
2
3
4
5
6
7
8
9
<div class="stream">
  <div class="streamItem">
    <article class="postArticle">
      <div class="postArticle-content">
        <!– content –>
      </div>
    </article>
  </div>
</div>

通过这几个代码,你可以马上识别出它们的社团、成效和意义。父节点的类名是
stream ,内容是一个稿子列表。它的子节点的类名是 streamItem
,内容是小说列表中的一篇具体的篇章。那使大家很简单的垂询到父节点和子节点之间的涉嫌。并且,这一个类可以在各个有文章功效的页面中使用。

您可以像阅读一本书一样读 HTML 和
CSS。它会给您讲一个典故。通过故事你能够精通传说中的各个角色和她们之间的关联。语义充分的
CSS 代码简单领悟,更有益维护。

假使你想进一步询问语义相关的情节,看看
《怎么拥有语义的为类命名》、《CSS
命名不不难》

《富有语义和不难辨认(的代码命名)》,再看
《关于 HTML
命名和前端架构》。

CSS
在刚起先上学的时候看起来非凡简单。终归,它只是就是些体制而已,事实上是那样吗?

澳门葡京 11

模块化

在那一个充满了组件库(以 React
为例)的时日,模块化就是王者。组件就是由曾经解构了的接口成立的可组成的模块。上面是一个Product
Hunt(一种发表好的创业好项目标网站)前端页面。作为练兵,让大家将那个页面分解成一系列的零件。

澳门葡京 12

各个颜色框代表一个组件,stream 节点下分为无数个 stream item 子节点。

XHTML

<div class=”stream”> <div class=”streamItem”> <!–
product info –> </div> </div>

1
2
3
4
5
<div class="stream">
  <div class="streamItem">
    <!– product info –>
  </div>
</div>

半数以上零部件都足以表明为更小的组件。

澳门葡京 13

各个 stream item 组件都有一个缩略图和一个特色的出品音讯。

XHTML

<!– STREAM COMPONENT –> <div class=”stream”> <div
class=”streamItem”> <!– POST COMPONENT –> <div
class=”post”> <img src=”thumbnail.png” class=”postThumbnail”/>
<div class=”content”> <!– product info –> </div>
</div> </div> </div>

1
2
3
4
5
6
7
8
9
10
11
12
<!– STREAM COMPONENT –>
<div class="stream">
  <div class="streamItem">
    <!– POST COMPONENT –>
    <div class="post">
      <img src="thumbnail.png" class="postThumbnail"/>
      <div class="content">
        <!– product info –>
      </div>
    </div>
  </div>
</div>

由于 stream 组件和它的子控件是一心独立的,你可以很简单的调动大概更换
post 组件,并且那不会对 stream 组件暴发其余影响。

接纳组件的思维将会使你的代码解耦。解耦的代码愈来愈多,你的类之间的依赖就越低。那会让你的代码更易于修改,并且使您的代码更长日子的工作下去而不用修改它。

澳门葡京 14

零件驱动设计

模块化你的 CSS
时,首先将您的安顿性分解成多少个零部件。你能够使用纸和笔,也足以运用类似
Illustrator 恐怕 Sketch
那类的软件。确定你将要怎么样命名这么些组件,同时清理各类零部件之间的涉嫌。

读书更加多关于 CSS 组件驱动的稿子,详见《CSS
建构:可扩张和模块化处理》、《使用
Sass 编写模块化的
CSS》和《模块化你的前端代码——编写高可爱抚和条理清晰的代码》。

而是,随着你的持续询问。很快,你会意识 CSS
没你想像的那么简单,它复杂且有深度。

CSS
在刚开始上学的时候看起来分外简单。终究,它仅仅就是些体制而已,事实上是那样吗?

利用统一的命名规范

日前有几十个不等版本的 CSS
命名规范。有些人对他们选取的命名规范极其笃定,认为他们的比别人的更好。事实上,不一样的人爱不释手不一致的命名规范。我听见的最好的指出是:接纳你以为最合适的命名规范。

下边简单列举一下常用的命名规范:

  • Object oriented CSS
    OOCSS
  • Block element modifier
    (BEM)
  • Scalable and modular architecture for CSS
    (SMACSS)
  • Atomic

自己最欣赏的命名规范是 BEM。BEM
代表块(block)、成分(element)和修饰符(modifier)。Yandex,在俄联邦的一定于谷歌(Google)的追寻引擎,为了化解他们
CSS 代码库中的缩放难点而提议了它(它指BEM)。

澳门葡京 15

BEM 是一个极致简约——又极其严刻——的命名规范。

CSS

.block {} .block__element {} .block–modifier {}

1
2
3
.block {}
.block__element {}
.block–modifier {}

块(Blocks)代表高级其他类。成分(Elements)是块的子模块。修饰符(modifiers)代表不相同的状态。

澳门葡京 16

XHTML

<div class=”search”> <input type=”search__btn
search__btn–active” /> </div>

1
2
3
<div class="search">
<input type="search__btn search__btn–active" />
</div>

在地点的言传身教中, search 是块(block),search
button是它的因素(element)。假诺您想要更改按钮的景观,大家能够为按钮增加一个修饰符,例如
active 。

关于命名规范要牢记的一件事是,无论你欢乐哪类命名规范,你会时不时继承大概工作在差距标准的代码库上。请敞称心快意扉去读书新的正儿八经,用区其余思索去思维
CSS 。

你能够在《深刻学习 BEM
语法》、《BEM
101》和《BEM
简介》上观察更加多关于 BEM
的消息。想要了解区其他命名规范,参见《OOCSS、ACSS、BEM、SMACSS:那几个是什么?我该用哪个?》。

狠抓那四件工作,能让你在大规模使用 CSS
的时候保险代码的健壮性:使用合适的语义,模块化,选择统一的命名规范,听从单一成效原则。

然则,随着你的遍地询问。很快,你会意识 CSS
没你想象的那么粗略,它复杂且有深度。

遵守单一功效原则

单纯功效原则规定各个模块和类都应该有一个纯粹的效果,并且该效率应该由那么些类完全封装起来。

在 CSS 中,单一成效原则代表每一段代码、类和模块只做一件事。当咱们付出
CSS 文件时,那意味各个独立的组件(例如轮播效果和导航栏)都应当有协调的
CSS 文件。

/components |- carousel |- |- carousel.css |- |- carousel.partial.html
|- |- carousel.js |- nav |- |- nav.css |- |- nav.partial.html |- |-
nav.js

1
2
3
4
5
6
7
8
9
/components
  |- carousel
  |- |- carousel.css
  |- |- carousel.partial.html
  |- |- carousel.js
  |- nav
  |- |- nav.css
  |- |- nav.partial.html
  |- |- nav.js

除此以外一个宽广的公司文件的法子是依照效益将文件分组。举个栗子,如上边所示,所有和轮播效果组件有关的公文都被分类到了一起。选择那种办法可以让您更便于的找到有关文书。

除了对组件的体裁举行分离之外,最好使用单一成效原则对全局样式也展开分离。

/base |- application.css |- typography.css |- colors.css |- grid.css

1
2
3
4
5
/base
  |- application.css
  |- typography.css
  |- colors.css
  |- grid.css

在这一个例子中,每种相关的体裁被分开到温馨的样式文件中。这样,若是您想要修改样式中的颜色,那么你将会很简单的找到它。

不论是你选取哪类情势协会文件结构,尽量在支配的时候参考单一效能原则。一旦有某个文件先河变的交汇,那么考虑根据逻辑作用将它分为多少个部分。

越多关于社团文件结构和 CSS 架构的篇章,详见《Sass 审美
1:架构和团伙体制文件》和《可增加和可保证的
CSS
架构》。

当单一功能原则应用于您的逐个 CSS
类采取器中时,那意味着逐个类拔取器都有所唯一的功能。换句话说,要依照差别关切点将样式分离到分化的类接纳器中。上面是个经典的事例:

CSS

.splash { background: #f2f2f2; color: #fffff; margin: 20px; padding:
30px; border-radius: 4px; position: absolute; top: 0; right: 0; bottom:
0; left: 0; }

1
2
3
4
5
6
7
8
9
10
11
12
.splash {
  background: #f2f2f2;
  color: #fffff;
  margin: 20px;
  padding: 30px;
  border-radius: 4px;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

在地点的例证中,大家将关切点耦合了。splash
那几个类不但含有了自我的样式和逻辑,同时也带有了它的子节点的。为了缓解这些难点,大家能够将那段代码分离为多少个新的类。

CSS

.splash { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }

1
2
3
4
5
6
7
.splash {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

CSS

.splash__content { background: #f2f2f2; color: #fffff; padding:
30px; border-radius: 4px; }

1
2
3
4
5
6
.splash__content {
  background: #f2f2f2;
  color: #fffff;
  padding: 30px;
  border-radius: 4px;
}

今昔我们有 splash 和 splash content 八个类。大家能够将 splash
作为一个相似的全屏类,它可以具备任何子节点。所有子节点关切的质量,都在
splash content 中,与父节点的性质是完全解耦的。

你可以透过翻阅下列作品更是通晓单一功效原则在样式表和类中的应用。《单一效能原则在
CSS
中的应用》和《单一成效原则》。

采纳分外的语义

办好这四件工作,能让你在大规模利用 CSS
的时候保障代码的健壮性:使用方便的语义,模块化,选用统一的命名规范,遵从单一功用原则。

简简单单胜过复杂

若是你问其余一个打响的前端开发工程师或然 CSS
架构师,他们会告诉你,他们根本不曾对本身的代码完全满足。写好 CSS
是一个连发迭代的进度。从简单开始,坚守基本的 CSS
规则和样式指南,然后不断迭代。

自己很想知道您的 CSS
学习之路。你欣赏的命名规范是何许?你是何许社团你的代码文件的?你可以随时通过留言大概在Tweet上告诉我。

其余:如果你喜欢那篇文章,不妨点击下推荐按钮,或者把它分享给你的仇人,这样会更棒。

一旦您想要了然更加多,你可以关怀自己的
Twitter
,我会平日的在上边分享部分关于布置、前端开发、机器人和机具学习的始末。

打赏协助本身翻译愈多好文章,多谢!

打赏译者

在 HTML 和 CSS
编程中有语义标注的定义。语义是指单词的意义和他们间的关联。在 HTML
编程中,意味着你须要拔取一个适龄的竹签名字来标记。上面是一个经文的事例。

动用相当的语义

打赏辅助我翻译更加多好小说,谢谢!

任选一种支付办法

澳门葡京 17
澳门葡京 18

1 赞 12 收藏
评论

装有语义的 HTML 是格外简单明确的。另一方面,富有语义的 CSS
则是更抽象和主观的。编写富有语义的 CSS
意味着在增选种类的时候,类名要传达出结构和效应新闻。类名要很简单被领会。确保它们并非太现实、太尤其。这样,你就能够复用它了。

在 HTML 和 CSS
编程中有语义标注的定义。语义是指单词的意义和她们间的关联。在 HTML
编程中,意味着你必要接纳一个确切的标签名字来标记。下边是一个经文的例子。

关于小编:小谢

澳门葡京 19

懒懒的程序员~
个人主页 ·
我的篇章 ·
24 ·
 

澳门葡京 20

澳门葡京 21

 <!-- bad --> 
 <div class = ”footer” </div>
 <!-- good -->
 <footer></footer>

为了演说怎样是一个大好的类名,请看那几个简化了的 Medium 网站的 CSS 例子。

所有语义的 HTML 是极度不难明确的。另一方面,富有语义的 CSS
则是更抽象和无理的。编写富有语义的 CSS
意味着在增选系列的时候,类名要传达出社团和效应音讯。类名要很简单被清楚。确保它们并非太现实、太独特。那样,你就足以复用它了。

由此那么些代码,你可以登时识别出它们的构造、成效和含义。父节点的类名是
stream ,内容是一个篇章列表。它的子节点的类名是 streamItem
,内容是小说列表中的一篇具体的著作。那使大家很简单的刺探到父节点和子节点之间的关系。并且,这几个类可以在每一种有成文作用的页面中选用。

 

你可以像阅读一本书一样读 HTML 和
CSS。它会给你讲一个传说。通过传说你可以了然故事中的每种角色和她俩中间的涉及。语义丰硕的
CSS 代码容易了解,更便于维护。

澳门葡京 22

假设你想进一步明白语义相关的情节,看看 《怎么拥有语义的为类命名》、《CSS
命名不简单》 和 《富有语义和易于辨别(的代码命名)》,再看 《关于 HTML
命名和前端架构》。

为了演说如何是一个得天独厚的类名,请看那一个简化了的 Medium 网站的 CSS 例子。

模块化

<div  class ="stream">
 <div  class="streamItem">
 <article  class="postArticle">
  <div  class = "postArticle-content">
<!-- content -->
 </div>
 </article>
 </div>
</div>

在这么些充满了组件库(以 React
为例)的一世,模块化就是王者。组件就是由曾经解构了的接口创立的可结合的模块。上面是一个Product
Hunt(一种宣布好的网络项目标网站)前端页面。作为练兵,让大家将以此页面分解成一体系的机件。

透过那么些代码,你可以即时识别出它们的布局、功能和意义。父节点的类名是
stream ,内容是一个篇章列表。它的子节点的类名是 streamItem
,内容是文章列表中的一篇具体的小说。这使大家很简单的精通到父节点和子节点之间的涉及。并且,那一个类可以在每种有成文作用的页面中动用。

澳门葡京 23

您可以像阅读一本书一样读 HTML 和
CSS。它会给您讲一个传说。通过传说你可以掌握传说中的每种角色和她们之间的涉嫌。语义丰盛的
CSS 代码简单了然,更有益维护。

每一种颜色框代表一个零件,stream 节点下分为许几个 stream item 子节点。

若果你想进一步精通语义相关的始末,看看 《怎么拥有语义的为类命名》、《CSS
命名不简单》 和 《富有语义和易于辨别(的代码命名)》,再看 《关于 HTML
命名和前端架构》。

绝半数以上零件都可以解释为更小的零件。

模块化

澳门葡京 24

在那一个充满了组件库(以 React
为例)的时代,模块化就是王者。组件就是由一度解构了的接口创立的可组合的模块。上面是一个Product
Hunt(一种揭橥好的创业商机的网站)前端页面。作为练兵,让我们将以此页面分解成一多元的零部件。

每一种 stream item 组件都有一个缩略图和一个特色的产品音讯。

 

是因为 stream 组件和它的子控件是一点一滴独立的,你可以很简单的调整照旧转移
post 组件,并且那不会对 stream 组件发生其余影响。

澳门葡京 25

采纳组件的思考将会使你的代码解耦。解耦的代码更多,你的类之间的借助就越低。那会让你的代码更便于修改,并且使您的代码更长日子的行事下去而不用修改它。

各种颜色框代表一个零件,stream 节点下分为广大个 stream item 子节点。

澳门葡京 26

 <div class = "stream" >
 <div class = "streamItem" >
 <!-- product info -->
 </div>
 </div>

组件驱动设计

大部零部件都足以表明为更小的组件。

模块化你的 CSS
时,首先将你的安顿性分解成八个零部件。你可以使用纸和笔,也能够运用类似
Illustrator 大概 Sketch
那类的软件。确定你将要如何命名这么些零部件,同时清理种种零部件之间的涉嫌。

 

阅读越多关于 CSS 组件驱动的小说,详见《CSS
建构:可扩充和模块化处理》、《使用 Sass 编写模块化的
CSS》和《模块化你的前端代码——编写高可爱慕和条理清晰的代码》。

澳门葡京 27

选拔统一的命名规范

各种 stream item 组件都有一个缩略图和一个特点的制品新闻。

方今有几十个不一样版本的 CSS
命名规范。有些人对她们接纳的命名规范极其笃定,认为他俩的比外人的更好。事实上,不一样的人欣赏差别的命名规范。我听到的最好的提议是:选拔你认为最合适的命名规范。

 <!-- STREAM COMPONENT -->
 <div class = "stream" >
 <div  class = "streamItem" >
 <!-- POST COMPONENT -->
 <div  class = "post" >
 <img  src = "thumbnail.png" class = "postThumbnail" />
 <div  class = "content" >
 <!-- product info -->
 </div>
 </div>
 </div>
 </div>

下边简单列举一下常用的命名规范:

出于 stream 组件和它的子控件是一心独立的,你可以很简单的调动恐怕更换
post 组件,并且那不会对 stream 组件发生任何影响。

Object oriented CSS OOCSS

利用组件的思索将会使您的代码解耦。解耦的代码越多,你的类之间的着重性就越低。那会让您的代码更易于修改,并且使你的代码更长日子的办事下去而不用修改它。

Block element modifier (BEM)

 

Scalable and modular architecture for CSS (SMACSS)

澳门葡京 28

Atomic

零件驱动设计

本人最欢悦的命名规范是 BEM。BEM
代表块(block)、成分(element)和修饰符(modifier)。Yandex,在俄罗斯的一定于谷歌的摸索引擎,为了消除他们
CSS 代码库中的缩放难题而指出了它(它指BEM)。

模块化你的 CSS
时,首先将你的宏图分解成五个零件。你可以使用纸和笔,也能够应用类似
Illustrator 可能 Sketch
那类的软件。确定你将要怎样命名这几个零部件,同时清理各类零部件之间的涉及。

澳门葡京 29

读书越来越多关于 CSS 组件驱动的作品,详见《CSS
建构:可增加和模块化处理》、《使用 Sass 编写模块化的
CSS》和《模块化你的前端代码——编写高可保证和条理清晰的代码》。

BEM 是一个最为简约——又最为严格——的命名规范。

运用统一的命名规范

.block{}

时下有几十个差异版本的 CSS
命名规范。有些人对他们接纳的命名规范极其笃定,认为他们的比外人的更好。事实上,区其余人喜爱区其他命名规范。我听见的最好的提出是:接纳你认为最合适的命名规范。

.block__element{}

上边简单列举一下常用的命名规范:

.block–modifier{}

  • Object oriented CSS OOCSS

  • Block element modifier (BEM)

  • Scalable and modular architecture for CSS (SMACSS)

  • Atomic

块(Blocks)代表高级其他类。成分(Elements)是块的子模块。修饰符(modifiers)代表不相同的动静。

本身最欣赏的命名规范是 BEM。BEM
代表块(block)、成分(element)和修饰符(modifier)。Yandex,在俄国的一定于谷歌的摸索引擎,为了缓解他们
CSS 代码库中的缩放难点而提议了它(它指BEM)。

澳门葡京 30

 

在上头的以身作则中, search 是块(block),search
button是它的因素(element)。如若您想要更改按钮的景观,大家可以为按钮增添一个修饰符,例如
active 。

澳门葡京 31

关于命名规范要切记的一件事是,无论你欢腾哪一类命名规范,你会时不时继承可能工作在分裂标准的代码库上。请敞欢天喜地扉去读书新的专业,用差距的思辨去思维
CSS 。

BEM 是一个最好简单——又极其无情——的命名规范。

你可以在《长远学习 BEM 语法》、《BEM 101》和《BEM 简介》上观看更加多关于
BEM
的新闻。想要通晓差距的命名规范,参见《OOCSS、ACSS、BEM、SMACSS:这个是怎么?我该用哪些?》。

 .block  {}
 .block__element  {}
 .block--modifier  {}

根据单一效用原则

块(Blocks)代表高级其余类。成分(Elements)是块的子模块。修饰符(modifiers)代表差距的事态。

澳门葡京,单一功效原则规定各种模块和类都应该有一个十足的机能,并且该意义应该由那一个类完全封装起来。

 

在 CSS 中,单一功用原则代表每一段代码、类和模块只做一件事。当大家提交
CSS 文件时,那象征每一个独立的零部件(例如轮播效果和导航栏)都应当有自个儿的
CSS 文件。

澳门葡京 32

/components

 <div class = "search" >
 <input  type= "search__btn search__btn--active"  />
 </div>

|-carousel

在下边的以身作则中, search 是块(block),search
button是它的要素(element)。假使你想要更改按钮的气象,我们得以为按钮扩充一个修饰符,例如
active 。

|- |-carousel.css

有关命名规范要切记的一件事是,无论你欢悦哪类命名规范,你会时常继承只怕办事在不一样专业的代码库上。请敞热情洋溢灵去学习新的科班,用区其他思索去思考
CSS 。

|- |-carousel.partial.html

你可以在《深远学习 BEM 语法》、《BEM 101》和《BEM 简介》上来看更多关于
BEM
的新闻。想要了然区其余命名规范,参见《OOCSS、ACSS、BEM、SMACSS:那一个是什么样?我该用哪个?》。

|- |-carousel.js

按照单一功效原则

|-nav

单一作用原则规定逐个模块和类都应该有一个纯粹的机能,并且该功用应该由那么些类完全封装起来。

|- |-nav.css

在 CSS 中,单一作用原则代表每一段代码、类和模块只做一件事。当大家付出
CSS 文件时,那表示各个独立的机件(例如轮播效果和导航栏)都应有有温馨的
CSS 文件。

|- |-nav.partial.html

 /
 components
 |-  carousel
 |- |-  carousel .css
 |- |-  carousel.partial . html
 |- |-  carousel . js
 |-  nav
 |- |-  nav . css
 |- |- nav .partial . html
 |- |-  nav . js

|- |-nav.js

其它一个广大的团队文件的法子是依照职能将文件分组。举个栗子,如上边所示,所有和轮播效果组件有关的文本都被分类到了一道。选用这种艺术可以让你更便于的找到有关文书。

其余一个普遍的团体文件的办法是安份守己效益将文件分组。举个栗子,如上面所示,所有和轮播效果组件有关的文书都被分门别类到了协同。选择那种艺术可以让你更易于的找到有关文书。

除去对组件的体裁进行分离之外,最好使用单一功能原则对全局样式也拓展分离。

除却对组件的体裁举行分离之外,最好使用单一功能原则对全局样式也拓展分离。

 / base
 |-  application . css
 |-  typography . css
 |-  colors . css
 |- grid . css

/base

在那个事例中,每一种相关的样式被分开到温馨的样式文件中。这样,如果你想要修改样式中的颜色,那么您将会很简单的找到它。

|-application.css

不论是你选择哪一种艺术协会文件结构,尽量在支配的时候参考单一效用原则。一旦有某个文件开端变的交汇,那么考虑依照逻辑成效将它分成三个部分。

|-typography.css

越多关于协会文件结构和 CSS 架构的稿子,详见《Sass 审美
1:架构和团队体制文件》和《可伸张和可保障的 CSS 架构》。

|-colors.css

当单一作用原则应用于您的逐个 CSS
类采取器中时,那意味每个类选拔器都具备唯一的效果。换句话说,要依照不一样关心点将样式分离到不相同的类拔取器中。上边是个经典的例证:

|-grid.css

 .splash {
background : #f2f2f2 ;
 color :#fffff ;
 margin : 20px ;
 padding: 30px;
 border-radius : 4px;
 position : absolute ; 
 top : 0 ;
 right: 0 ;
 bottom : 0 ;
 left: 0 ;
 }

在这个例子中,各个相关的样式被分开到祥和的体制文件中。那样,假使你想要修改样式中的颜色,那么你将会很简单的找到它。

在上边的事例中,大家将关心点耦合了。splash
这些类不但含有了自家的样式和逻辑,同时也暗含了它的子节点的。为了消除那一个题材,我们可以将那段代码分离为七个新的类。

甭管你使用哪类艺术协会文件结构,尽量在控制的时候参考单一功用原则。一旦有某个文件开始变的重合,那么考虑依据逻辑效率将它分为多少个部分。

 .splash {
   position: absolute;
   top: 0;
  right: 0;
   bottom: 0;
  left: 0;
 }

越来越多关于团体文件结构和 CSS 架构的篇章,详见《Sass 审美
1:架构和集团体制文件》和《可扩充和可有限协理的 CSS 架构》。

近年来我们有 splash 和 splash content 四个类。大家能够将 splash
作为一个一般的全屏类,它可以具备任何子节点。所有子节点关切的质量,都在
splash content 中,与父节点的性质是完全解耦的。

当单一作用原则应用于您的每个 CSS
类采纳器中时,那象征每个类采用器都装有唯一的意义。换句话说,要依照不相同关切点将样式分离到不相同的类选用器中。下边是个经典的事例:

你可以因而翻阅下列文章更是明白单一效用原则在样式表和类中的应用。《单一功用原则在
CSS 中的应用》和《单一成效原则》。

.splash{

差不多胜过复杂

background:#f2f2f2;

只要您问其他一个打响的前端开发工程师或许 CSS
架构师,他们会告诉您,他们根本不曾对本人的代码完全满意。写好 CSS
是一个不住迭代的历程。从简单起先,遵守基本的 CSS
规则和样式指南,然后不断迭代。

color:#fffff;

我很想了然您的 CSS
学习之路。你喜欢的命名规范是什么样?你是什么样协会你的代码文件的?你可以随时通过留言或然在
Tweet 上告知我。

margin:20px;

本身有一个前端学习沟通QQ群:328058344
若是你在念书前端的长河中相见什么难题,欢迎来自个儿的QQ群提问,群里天天还会更新一些读书资源。禁止闲谈,非喜勿进。

padding:30px;

border-radius:4px;

position:absolute;

top:0;

right:0;

bottom:0;

left:0;

}

在上边的事例中,我们将关怀点耦合了。splash
那些类不但含有了我的体制和逻辑,同时也包涵了它的子节点的。为了消除那么些标题,我们得以将那段代码分离为八个新的类。

.splash {

position: absolute;

top: 0;

right: 0;

bottom: 0;

left: 0;

}

现行我们有 splash 和 splash content 三个类。大家可以将 splash
作为一个形似的全屏类,它可以有所任何子节点。所有子节点关注的性质,都在
splash content 中,与父节点的特性是截然解耦的。

你可以经过翻阅下列小说更为领会单一功效原则在样式表和类中的应用。《单一功能原则在
CSS 中的应用》和《单一功效原则》。

粗略胜过复杂

假如您问其他一个中标的前端开发工程师或然 CSS
架构师,他们会告知您,他们根本没有对团结的代码完全知足。写好 CSS
是一个不止迭代的经过。从简单开始,遵守基本的 CSS
规则和体裁指南,然后不断迭代。

本人很想清楚你的 CSS
学习之路。你欣赏的命名规范是何许?你是何许协会你的代码文件的?你可以每一天通过留言或然在
Tweet 上告诉本身。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website