css reset/css 预编译

什么是css reset?

众所周知,HTML标签在浏览器里都有默认的样式,例如p标签有上下边距,strong标签有字体加速样式等,em标签有字体倾斜样式;不同的浏览器默认样式之间也会有差别,例如ul标签默认带有缩进样式,在IE下它的缩进是由margin实现的,但在Firefox下它的缩进是由padding实现的。开发时,浏览器的默认样式会给我们带来很多兼容性问题,影响开发效率。现在很流行的解决方式是一开始就将浏览器的默认样式全部覆盖掉。这就是css reset;

什么是css 预编译器?

首先我们先弄清楚为什么会出现css预编译器呢? 这就要谈到css的不足了,CSS不支持嵌套,甚至运算、变量、复用等这些几乎是编写复杂代码的必备特性,开发者们不断探索着能够弥补这些缺陷的解决方案,CSS预编译器是第一种顺势而生的革命性方案
简单的说,css预编译器,是基于css语言的,能够让css也能有一种编程语言范,从而,解决了css的诸多问题,如css模块化、无法嵌套书写、没有变量。

css 预编译器从下面几个方面提升了css的开发效率:

  1. 增强编程能力;
  2. 增强可复用性;
  3. 增强可维护性;
  4. 更便于解决浏览器兼容性

预编译器的原理:

CSS预编译的工作原理是提供便捷的语法和特性供开发者编写源代码,随后经过专门的编译工具将源码转化为CSS语法。最早的CSS预编译器是2007年起源于Ruby on Rails社区的SASS,目前比较流行的其他CSS预编译器如Less、Stylus的诞生都一定程度上受到了SASS的影响和启发。

不同的预编译器特性虽然有所差异,但核心功能均围绕这些目标打造,比如:

  • 嵌套;
  • 变量;
  • mixin/继承;
  • 运算;
  • 模块化;
  1. 嵌套是所有预编译器都支持的语法特性,也是原生CSS最让开发者头疼的问题之一;
  2. mixin/继承是为了解决hack和代码复用;
  3. 变量和运算增强了源码的可编程能力;
  4. 模块化的支持不仅更利于代码复用,同时也提高了源码的可维护性。

后编译器(post css)是什么?

CSS预编译的理念与Babel有一定相通之处,最重要的区别是:预编译语法并非规范的CSS,而是各成一派。由预编译语法编写的源代码不能在任何宿主浏览器中运行。从这个角度考虑,CSS预编译更像CoffeeScript、TypeScript等JavaScript子集。可以预见的是,如果未来CSS规范推出了预编译类似的特性和语法,这些预编译器都将成为历史的尘埃。PostCSS则反其道而行之,从理念上更加接近Babel,业内也有人将其称为“CSS的Babel”。

PostCSS鼓励开发者使用规范的CSS原生语法编写源代码,然后配置编译器需要兼容的浏览器版本,最后经过编译将源码转化为目标浏览器可用的CSS代码。PostCSS提供了丰富的插件用于实现不同场景的编译需求,最常用的比如autoprefixer、sprites等,编译流程如下图所示:


image.png

PostCSS并不是另一种CSS预编译器,与SASS、Less等预编译器也并不冲突。PostCSS与Babel的不同之处在于,它所支持的所谓“未来CSS语法”并不是严格的CSS规范,其中大部分语法和特性目前只是CSS4的草案而已。很多人将PostCSS称为“CSS后编译器”,这个称谓可以一定程度上说明目前业界对PostCSS的普遍使用方案,请看下图:


image.png

即使是PostCSS支持的“未来CSS语法”也并不能完全弥补CSS的缺陷,所以目前普遍的方案是将CSS预编译与PostCSS综合在一起:

使用CSS预编译弥补CSS源码的弱编程能力,比如变量、运算、继承、模块化等;
使用PostCSS处理针对浏览器的需求,比如autoprefix、自动css sprites等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342