nodejs/gulp学习小记

以下是这两天学习gulp的笔记。因为gulp需要nodejs环境,所以我同时也学习了一点nodejs的使用。

gulp是一个前端构建工具,同类型的有grunt,也是基于nodejs环境的。这些构建工具的主要用途是压缩CSS/JS,混淆JS,添加banner,MD5内容哈希,图片spirit等。以前可能依赖在工程发布时用后端的编程语言或者其他脚本语言比如python编写的脚本,现在有了服务端js,准确来说,可以用表达为js的执行环境之后,出现了这些用js来表达的构建工具。

顺便说一下个人对于nodejs的理解。用js来表达的特点使得前端开发人员无学习成本地使用这个执行环境。不过js语法表达的限制使得node不太可能构建通用的服务端程序,换句话说nodejs有适合的领域,也有不太适合的领域。原先用其他语言实现的服务端功能不太可能完全照搬到nodejs上。当然现在大部分公司肯定存在异构语言的开发环境,对于受众主要是前端的场景来说,用js表达更有优势。

回到gulp上。在学习了一点npm(node的包管理器,类似ruby的gem)之后,得到如下结论。

1. 如果你要可执行的命令,执行npm install -g ,比如gulp
2. 如果你要给项目添加依赖,执行npm install --save-dev ,比如gulp-md5-plus, etc

Read More

IE10的一些坑

  1. 不支持标准 touch 事件,要用 MSPointerDown 等
  2. WP上有时候会有渲染问题,虽然支持 css3 动画,但是效果极差
  3. 你造吗font: 1rem/1 sans-serif;这么写竟然无效

最近在开发移动触屏版,申请了公款技术支持了一部Lumia 925,想做个兼容WP8 IE10的网站。
结果各种坑啊……
之前还碰到过可以透过一个 z-index 很高的 mask div 点击到下面的 link 的诡异事件。
虽然这个诡异事件还没解决,但是好像绑定了事件以后能够稍微缓和点。
为毛事件绑定不会穿透到下面去呢……

我的Draft很荣幸的存了4篇了,我果然是比较勤快的人……

// 2014-06-06 UPDATE

经过几次测试,发现IE10不支持font申明里用rem单位。
如果写成font: 1em/1 sans-serif;
或者分成font-size, line-height, font-family的话是没有问题的。
另外移动版的 IE10 表现和桌面版的 IE10 基本上是一样的,也支持 MSPointer 事件,就是没有穿透问题。

写个login form

随手写个login form,其实没什么inspiration。
顺便学习下jade,练习下transform。

See the Pen login form by GSSxGSS (@gsshcl) on CodePen.5731

话说sass支持@function了,好强大,强大的无法直视。
说不定哪天就能直接在sass里写ruby了,233。

[snippet] Default browser scrollbar width

Stackoverflow: Getting scroll bar width using JavaScript

Result:
WinXP: 16px;
Win7: 17px;
Win8: 17px;
Mac: 15px;

sass – 2 colors gradient mixin with fallback

Don’t use mix($c, $c2) to get the middle color!
It will only retrun ($c1 + $c2) / 2, not the middle color.
Sadly, I failed to put color stop percentage in the mixin.
Only if sass rgb() could return a color(e.g. #fff) from a string(e.g. “#fff 10%”).

谨记一次被非标准属性background-position-y坑的过程

公司网站的背景是从早到晚渐变的,所以用了一张1px×13000px的图,每天根据时间不同,php那边算个bg-position中y的偏移值。
因为是php那边处理,当时php那边的人就顺手写了个inline style在某个module的layout的标签里:
style="background-position-y: {{ app.bg_position }}px"

后来我只是考虑到要把这个挪到全局layout里去,加个分号。
另加当时我脑残了一下css的平铺方向错写成了repeat-y,所以改好css,把style挪到正确的template里,我就没多想。
顺带确认了下repeat方向是x没错,bg-position位移方向是y没错,chrome下没错,IE下没错。
这便是一个悲剧的开始。

直到今天被人发现在firefox下白天显示着夜晚的深紫色渐变背景,只好开Inspector,
发现虽然body里有写样式,但inline element里却没有读到样式。

google之,才知道background-position-y/background-position-x是IE创造出的非标准属性,但是Chrome竟然支持了,但Firefox没有
firefox没有……

=。=) 再高级的浏览器也是不可信的。