湖南幸运赛车历史开奖公告
您的位置:主页 > 1.95荣耀传奇 >

开端编写css

发布时间:2014-11-26 17:48
  你没有要感觉CSS没什么主要可言?最近多少年他变化一度抢手的议题,很多人都正在议论他。CSS并没有是一度容易的事件,前者开拓者能够运用他将页面制造的更佳优美。看得更远一些,咱们更关切的是论坛的功能以及如何制造出更好的论坛。正在白文中,我想分享我最近多少个月的学好的相关于CSS补码的学问。作为一度顺序员,我真正感兴味的事件是框架(Architectural)全体。我感觉写CSS该当需求去改观,为此我深挖了很多学问。我搜寻了好的顺序、任务流和准则。这篇作品将率领自己和CSS一同游览,很多人都说写CSS并没有是编程,我就没有赞成,我说写CSS异样是风趣的,富饶应战性的。  CSS预解决器   让咱们一同针对于吧,去世界上写CSS并没有是一件喷饭的事件。CSS预解决器看上去就像CSS,但他更像一度魔法师一样,运用一些仙法会发生无效的CSS代码。这让你的样多和阅读器之间新增多了一层,那样没有是愈加的蹩脚吗?看下去是那样,但现实没有是那样的,由于CSS预解决器需要了一些真正有用的特点。   联接(Concatenation)   我以为最有价格的货色是联接你的资料。我置信,你晓得运用@import来援用你的.css资料,通知阅读器获取某个资料。那样做,阅读器需求增多一度要求,那样有点费事,由于你能够有很多个那样的资料。增多额定的要求,使你的顺序功能变得更低。假如您运用CSS预解决器言语,某个成绩将没有会具有。他们只会意译你款式资料中单个.css资料。   扩大(Extending)   LESS和Sass是最次要的两个CSS预解决器。咱们都支撑扩大。固然他们的任务?#38382;?#30053;有没有同,但他们的主意是一样的。你能够做一度根本的类(一般称为mixin)和一群属点,而后正在另一度取舍器导出该署属点,如: // less .bordered(@color: #000) { border: dotted 2px @color; } .header { .bordered; } .footer { .bordered(#BADA55); } // 意译进去的CSS .header { border: dotted 2px #000000; } .footer { border: dotted 2px #bada55; }   ?#25250;?#30340;成绩是,假如你没有界说一度?#38382;?#30340;mixin,相?#21697;?#25165;的示例: .bordered { border: dotted 2px #000; }   这是最初意译的CSS资料,没有管你能否运用都没有任何联系。由于他是一度无效的取舍器。正在Sass中咱们能够做得更灵敏一些。他有混合(mixins)、扩大(extends)和占位取舍器(placeholders)(假如您想看到他们之间的差别,我激烈提议您浏览这篇作品)。接上去咱们容易看看Sass是如何任务和意译的: // sass @mixin bordered($color: #000) { border: dotted 2px $color; } .header { @include bordered; } .footer { @include bordered(#BADA55); } //意译的CSS .header { border: dotted 2px black; } .footer { border: dotted 2px #bada55; }   它看上去和后面简直相反,但假如咱们秋看第一个placeholder的用例: // sass %bordered { border: dotted 2px #000; } .header { @extend %bordered; } .footer { @extend %bordered; } // 意译的CSS .header, .footer { border: dotted 2px #000; }   某个有两个劣势,率先没有会意译出.bordered类名,其?#20301;?#36816;用结合取舍器,兼并相反的款式,使代码变得愈加简明。   配置(Configuration)   LESS和Sass都支撑变量,你能够调用该署变量,将将他们作为属点的值: // sass $brand-color: #009f0A; ... h1 { color: $brand-color; }   这是一度很好的特点,由于你能够贮存一些主要的货色,比方说色彩或者许格子的幅度,将他们寄存正在同一度中央,假如你需求修正一些没有断常改变的代码,会变得无比的烦琐。   另一度好解决,能够运用变量的插值,如上面演示的办法: // sass @mixin border($side) { border-#{$side}: solid 1px #000; } .header { @include border("left"); } // 意译的CSS .header { border-left: solid 1px #000; }   对准于预解决器(Against the preprocessors) 预解决器是一?#21482;?#22120;,您要运用得先要有一度适宜的条件。假如你想念将其集成到你的使用顺序中,也需求额定的补码。 假如你没有想让你的代码变得紊乱,你需求有一度视察机制,用于监测你的资料。假如那样,你每个名目开端时就需求运转某个监测机制。 一般开拓人员只看到.less或者.sass资料,然而输入是什么无比主要。你能够有写得很好的Sass代码,但这并没有象征着,你最终会有很好的CSS代码。能够会有一些特同性的成绩,因为需求活期检测意译的读物。   扩大浏览 CSS Preprocessor Sass学历 How to Choose the Right CSS Preprocessor CSS Preprocessors: Focused Decisions Sass And LESS: An Introduction To CSS Preprocessors Poll Results: Popularity of CSS Preprocessors On CSS preprocessors Understand the Power of Sass and Why You should use CSS Preprocessors OOCSS CSS Preprocessors (pt.1) OOCSS CSS Preprocessors (pt.2 8 CSS preprocessors to speed up development time  BEM   好的,我?#39029;?#20102;一度新的好wan机器。某个预解决器能够俭省少量的工夫,但他没有能为你写出好的构造。率先,我开端思忖是一度起名儿商定,让咱?#25250;?#30475;以次的HTML   能够会写出对于应的款式: .site-header { ... } .logo { ... } .navigation { ... }   那样的款式能畸形的任务,但它有一度成绩浏览CSS,让人难于了解。相似,logo是归于header全体的,你能够有另一度logo要放正在页脚footer处。那样将增添一度先辈取舍器来掌握: .site-header .logo { ... }   然而运用该署取舍器并没有是很好的主见,由于它一直需求依托于一定的标志和构造。一旦你把logo移到里面,款式将会迷失。此外一种做法是给logo增添一度site-header,给其?#26377;?#36215;名儿: .site-header-logo { ... }   很棒了,本人就是注明,但它并没有能使用于一切状况之下。相似,我想正在12的复活节运用一度复活节读物的logo。因为,我没有能写: .site-header-logo-xmas { ... }   由于我的论理是,写一度取舍器要像嵌套HTML标签一样婚配。   BEM能够处理那样的状况。这象征着块(Block)、元素(Element)和修正器(Modifier)和一些创立规定,你能够遵照该署规定。运用BEM,咱们的小例将成为: .site-header { ... } /* block */ .site-header__logo { ... } /* element */ .site-header__logo--xmas { ... } /* modifier */ .site-header__navigation { ... } /* element */   也就是说site-header是咱们的块。那样logo和navigation是某个块的元素,圣诞读物的logo是润饰符。或者许它看上去容易,然而它真的很壮大。一旦你开端运用它,会发觉他能让你的构造愈加的优良。千万也有拥护的说辞,那就是由于其语法。是的,大概看上去有点丑恶,但为了有一度好的构造,?#19968;?#39044;备为此做成捐躯。(更好的浏览请点这和这)。   扩大浏览 BEM BEM Methodlogy A New Front-End Methodology: BEM Maintainable CSS with BEM BEM: The Block, Element, Modifier Approach To Decoupling HTML And CSS What is BEM? Thoughts About SCSS and BEM  OOCSS   自从我发觉BEM,我就开端正在考虑如何准确的运用我的类名。或者许,我的第二件事件要读一篇对于于面临对于象的CSS。面临对于象编程增添了一些抽像的概念,CSS也支撑那样的概念。假如你运用了CSS预解决器,你或者多或者少晓得一些。做为一度编写代码的人,我发觉某个概念离我平常编程很近,拿JavaScript为例,有两个次要准则:   共同的构造和款式   咱们用上面的事例来停止引见: .header { background: #BADA55; color: #000; width: 960px; margin: 0 auto; } .footer { background: #BADA55; text-align: center; color: #000; padding-top: 20px; }   内中有一些款式是反复的,咱们能够思忖正在另一度类中提取该署相反的款式: .colors-skin { background: #BADA55; color: #000; } .header { width: 960px; margin: 0 auto; } .footer { text-align: center; padding-top: 20px; }   因为咱们运用colors-skin做为一度对于象,用于扩大。那样HTML?#25745;?#20462;正成像那样: ... ... ...   那样做有多少个益处: 有一度类,它能够运用屡次 假如需求修正,只要要修正一度中央 正在CSS款式中芟除反复的代码,使其资料变得更低   金鸡独立的器皿和?#38382;?   ?#25250;?#30340;主意是,每个元素该当有相反的款式,无论他放正在哪里。因为,你该当过分防止运用像上面演示的取舍器: .header .social-widget { width: 250px; }   假如你把.social-widget挪动.header器皿的里面,那样.social-widget的幅度就变了。特别是用正在页面上的组件。这也是我鼓舞CSS模块化以及我激烈提议采纳更多的工夫去试验。就我集体而言,以次的准则会将CSS写得更好。   框架   假如你正在GitHub上翻开OOCSS库你能够看到一度框架。是的,某个框架运用了面临对于象的概念,他的CSS有很多很优良的天然组件。很长一段工夫我并没有喜爱框架。假如你有正在任务运用框架,你会发觉他分成两个全体。现实上,你运用框架解决一些事件,你必需恪守他的规定。没有过我更喜爱运用一些巨大的框架。千万我没有是说我?#20040;有?#21435;造车轮,但?#26131;?#26159;试图去寻觅一种失调。一般天然的处理计划招致零碎的紊乱和简单。我提议是为定然的手段构建一度一定的货色。假如你试图去遮盖一些货色,你总是悟出框架中的货色。   但事,我激烈提议你去查寻一度OOCSS框架。这是一度共同的学问块,或者许它将适宜用正在你需求的中央。最早是由Nicole Sullivan提出那样的一度概念。假如你对于OOCSS有什么动向或者许主意,可到?#25250;?#21152;入议论。   扩大浏览 OOCSS Object-Oriented CSS An Introduction To Object Oriented CSS (OOCSS) The Future of OOCSS: A Proposal The flag object CSS Performance and OOCSS OOCSS, for Great Justice Nicole Sullivan Talks OOCSS and Process  SMACSS   另一度盛行的概念是SMACSS。SMACSS专人可舒卷的和是模块化的CSS构造?#20302;场onathan Snook为CSS开拓人员引见了相似于那样的款式指导。为了共同的使用顺序将其分成以次多少类: 根本(base):用来一度容易的取舍器的根本款式,如clearfix d格局(Layout):界说格子 模块(Module):一群元素相联合正在一同构成的一度模块,比方说header和sidebar 形态(State):元素的没有同形态。如躲藏、稳住,扩展等规定界说给对于象 正题(Them):更多的款式   我没有运用SMACSS的任何经历,便它是无比受?#31471;停?#23454;践上也能推进你有更好的主意。这比一度框架的概念更强。因为,你没有需求遵照任何严厉的规定、类或者许组件。   扩大浏览 Scalable and Modular Architecture for CSS SMACSS: Notes On Usage An Introduction To SMACSS Guidelines For Writing CSS Let's Talk SMACSS, Man SMACSS  Atomic Design   晓得了OOCSS和SMACSS后,请答应我找一度适当的比喻,请快捷登录某个页面。?#25250;?#23637;现了一度巨大的原子团设想概念。它的笔者是Brad Frost,家喻户晓,他是一位出名的网页开拓人员,努力于呼应式设想和挪动端开拓。   某个主意是无比风趣的。以次是一些术语,咱们能够说,精神的根本部门是原子团。Brad Frost说咱们的页面是用挪动的原子团建立,一度原子团能够是: Search the site   或者许   也就是说原子团是?#20381;?#20102;一些根本款式的DOM元素。如色彩、书体终极或者许过渡动画片。起初该署全体能够联合成成员,相似: Search the site   因为表单元素蕴含了多少个原子团。那样形象带来的灵敏性,由于咱们能够运用相反的原子团来建立另一度成员。那样一来,咱们正在没有同的高低文中能够重用相反的方式:   Brad Frost并没有中止。生特体是建立成员的货色,遵照异样的办法,咱们能够编写以次的构造,并将其称为无机体: Home About Contacts Search the site   第一件事是?#25745;?#30340;概念。他们没有是间接有关的化学反响,但被放入了网页的高低文。一旦咱们开端联合没有同的生物建立咱们的?#25745;獺?#36215;初该署?#25745;?#26041;式就是咱们最初失去的页面。   你能够曾经运用相似的办法来建立使用顺序。但是,起名儿的货色以一?#32456;?#24403;的主式带来优良的构造。正在开拓中,你和你的队友会有很多事件需求去弄明确。结合的原子团和成员是很主要的全体,由于它进步了任务频率和让你更好的保护您的网页使用顺序。   扩大浏览 Atomic Design The Other Interface: Atomic Design With Sass Atomic Design: Some Thoughts and One Example  OrganicCSS   两个月前,我写了一篇作品,是相关于Organic的,他是一度用JavaScript写的一度巨大的小框架。它更像是一种设想?#38382;劍?#25105;集体无比喜爱。我以至正在若干少个名目中运用了它,况?#23452;?#26377;都很成功。假如你有兴味的话,我激烈引荐您浏览这篇作品。   当我浏览了Brad Frost的作品,我就曾经有了相似于的概念,由于我晓得Organic。Brad做的无比的棒,然而我决议更深化的去理解,或者试验本人正在基于原子团设想概念的根底上写一度中型的框架。我最终取舍了Sass作为预解决器和正在Github上创立了一库organic-css。   原子团(Atoms)   让?#20197;?#20808;从框架最小的一全体开端原子团。维基百科是那样界说的,原子团是精神的根本部门。正在CSS中,我以为它是一度属点和一度属点值,相似: margin-top: 24px;   仅仅为了写款式增添原子团而间接增添类名,这并没有是我想要的,假如有一度那样的类?#20572;? body { margin-top: 24px; } header { margin-top: 24px; }   预解决器将会得到他本人作用,由于我想要的后果是那样的: body, header { margin-top: 24px; }   正在Sass中能够运用placeholders的性能,相似: %margin-top-24 { margin-top: 24px; } body { @extend %margin-top-24; } header { @extend %margin-top-24; }   因为我没有得没有运用placeholder。这也象征着,我必须要界说很多placeholders,能力运用。正在那一刻,我决议,某个框架将只蕴含原子团。或者许有一些成员和通用的因变量,相似reset.css、格子的界说之类。我想写点货色,作为一度根底的CSS开拓。或者许?#19968;?#30475;到名目中的一些?#38382;劍?#23558;其放正在中心处,作为一度开端,并维持腌臜和容易。   事件变得愈加的?#21046;?#21270;,我创立了一度mixin作为一度原子团。如某个事例: @include define-atom("block") { display: block; } @include define-atom("font-family") { font-family: Georgia; }   运用这种办法,我创立了一度原子团群,况且能够很简单的适宜用来每一度名目。你能够点击检查。我况且拿其余的框架作为比照,让我更好的去理论,从国学到很多货色。还能够制造一度mixin成员,将原子团相联合正在一同: @mixin header { //   成员(Molecules)   成员是一度DOM元素需求款式,但他没有子元素。或者许他有子元素,便也没有会间接联接到它。如,能够是一度成员。假如你很难正在你的页面辨认该署成员,只要要悟出什么是由原子团建立就?#23567;?#26377;些元素也有能够是建立其余成员的原子团。如: @mixin login-box { @include atoms(( block, font-size-20, margin-top-23, bold )); }   咱们将针对于一些很风趣的事。比方说咱们的body标签。他是什么呢?它是一度成员或者其余什么吗?千万,这需求一些款式,但正常正在原子团中蕴含其余成员。它该当是其余货色。我的论断是,CSS该当是次要全体,也就是说,假如body款式需求多少个原子团,那样他就是一度成员。这也就象征着,从实践上讲,我没有该当外加任何其余的成员给它。这看上去有点没有实在践,但正在大少数状况下,会让你运用没有同的取舍器,这将是一度好的停滞现象。   细胞器(Organelles)   一旦你意识到某个DOM元素是成员,那样你能够将其看到是一度细胞器。相似,垂范的表单元素是一度很好的细胞器事例,他蕴含像label、input和textarea那样的成员。 .login-form { @include label; @include input; @include textarea; }   该署或者许是框轲中的一全体,它严密的联接到以后使用顺序中。原子团和成员能够正在没有同名目之间挪动,而细胞器是没有能够会挪动的。   更形象(More abstractions)   很多时分你能够想把多少一般的货色放正在一同,那样细胞器变得愈?#26377;?#35937;: Atom Molecule Organelle Cell Tissue Organ Sys Organism   这将针对于一度取舍成绩,你将如何建立你的CSS。我先前只正在一度名目中运用OrganicCSS,到眼前为止,?#19968;?#33021;够说他是明晰的。我把没有同的元素放正在他们本人的节目中和按他们的名起名儿,那样我能够很简单的?#39029;?#20182;们,并做呼应的解决。相似,假如有一度细胞器称为header,我只要要将其修正为o-header。起初,让我读到HTML标志,我就能够看到该元素的CSS款式就正在细胞器资料夹中。   扩大浏览 Micro framework following atomic design.  小结   这是一度很风趣的旅程。我没有晓得我未来会没有会运用OrganicCSS,但这并没有是最主要的全体。我能从国学到会色才是最主要的。我晓得我必需改观咱们的CSS开拓进程,?#26131;?#21040;了。我以为咱们该当多谈谈CSS的框架。你能够看到咱们有很多好的资源。咱们必需?#39029;?#20182;们,进修他们做什么以及如何任务。只要那样咱们能力够决议能否运用他们。更好的是,当你看到整个图片你能够创举一些更适宜你的需要。   尤其申明:白文有很多概念也是首次接触,就对于此文停止译者,假如有了解错语的中央,指望没有会给您带来曲解,同声更指望这译文能改观你对于CSS的建立?#38382;劍?#20174;而找到更适宜您或者您团队运用CSS的最优?#38382;健?#26368;初指望更多的同路冤家能指注释中没有准确的中央和分享有关的资源(^_^)   翻译旗语:整个译者按照原文路线停止,并正在译者进程略加了集体对于技能的了解。假如译者有没有对于之处,还烦请同路冤家指导。谢谢!   英文原文:http://davidwalsh.name/starting-css

本文网址:http://www.ovjnq.tw/195rycj/116.html

上一篇:正在java顺序中解决数据库超时与死锁 下一篇:深化综合中中型千兆网吧处理计划
湖南幸运赛车历史开奖公告 2018年海南环岛赛路线 福彩3d组选030前后关系 世界斯诺克官网比分 军融国际怎么赚钱 在线棋牌游戏排行榜 五子棋下载 发什么小视频赚钱 澳洲幸运10开奖软件下载 重庆福彩欢乐生肖中奖规则 海王捕鱼游戏下载