GitHub 不再使用字体来输出图标了。我们把代码中所有的 Octicon 替换成了 SVG 版本。虽然这些改动并不那么明显,但马上你就能体会到 SVG 图标的优点。
切换到 SVG 以后,图标会作为图片渲染而非文字,这使其在任何分辨率下都能很好地以各种像素值显示。
more
为何使用 SVG?
图标字体渲染问题
图标字体从一开始就是一种 Hack。将图标作为 Unicode 符号生成一个自定义字体,并通过打包后的 CSS 来引入图标,这样只需要在任意元素上添加一个 class,图标就可以显示出来,然后我们通过 CSS 就能即时改变图标的尺寸和颜色。
然而,虽然这些图标是矢量图形,但在 1x 显示屏下的渲染效果并不理想
继续阅读 »
新项目中,使用了Google I/O 2013发布的新工具,使用Gradle构建android项目,并且在新版的Intellig IDEA以及google的Android Studio对其支持。本文就介绍一下怎么使用gradle构建android项目,进行多个版本编译。
Gradle是什么?
Gradle是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具。是google引入,替换ant和maven的新工具,其依赖兼容maven和ivy。
使用gradle的目的:
更容易重用资源和代码;
可以更容易创建不同的版本的程序,多个类型的apk包;
更容易配置,扩展;
更好的IDE
继续阅读 »
html
css
.no-fancy{
margin-top:20px;
}
但也并非一定要如此,我们可以通过 CSS 为加载失败的图片定制样式,提供更好的体验。
more
关于 img 标签的两个事实
要了解如何为破裂的图片定制样式,需要先搞清楚连个事实:
我们可以为 元素指定字体样式,这些样式将用于破裂图片的替代文字,不会影响正常显示的图片。
元素实际上是一种替换元素,其外观和尺寸由外部资源定义,所以通常情况下 :before 和 :after 这两个伪元素都不起作用,一旦图片加载失败时这两个伪元素将出现。
正是基于以上两点,我们可以为破裂的图片定制样式,而不会影响正常加载的图片。
实践
使用下面的
继续阅读 »
这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。
1 echo替换字符串
```bash
$ s="123abc123abc"
$ echo ${s/123/456}
456abc123abc
$ echo ${s//123/456}
456abc456abc
继续阅读 »
在实现一个功能,推荐好友注册。
大致意思是注册的时候带上手机号,后端验证下手机号,就ok了
对用户mobile进行页面间的传递,但又想把用户mobile进行加密后传递,这样更安全.
在这个过程中会出现一个问题,就是URL编码问题,如果不对URL进行编码直接加码,那么在解码时,如果字符串存在“+”这种特殊符号,在解码时会出它替换成“ ”,此时在解密就会无法解开,导致错误的结果。
解决方法:
加密后,进行URL编码,然后到另一页面后,进行URL解码,再解密
解决方法2:
先对字符进行URL编码,再加密,这时不会出现+号等字符,然后到另一页面后,再解密,然后再解码即可。
解决!
思路比较简单,就不贴代码了。
继续阅读 »
上一篇
CH13 Buffer-Local Abbreviations
这章就是说iabbrev也能用来修饰
你想记住某个新的snippet最好办法就是disable掉原来的命令,比如iabbrev return NOPENOPENOPE
CH14 Autocommand Groups
autocmd是不会替换原先的命令的,假如使用两次同样的命令,那触发autocmd时会进行两次命令
特别要注意在你source $MYVIMRC时,autocmd会再载入一次!
可以用augroup testgroup autocmd xxx augroup END,这时如果你运行下augroup testgroup autocmd yyy
继续阅读 »
Spring简介
Spring框架由Rod Johnson开发,Rod Johnson's twitter,Rod Johnson's 百度百科,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。
Spring总结起来优点如下
* 低侵入式设计,代码的污染极低
* 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
* Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦
* Spring的AOP支持允
继续阅读 »
定义:定义一系列算法,把他们一个个封装起来,并且使他们可以相互替换。
需求:绩效为S的人年终奖有4倍工资,绩效为A的人年终奖有3倍工资,绩效为B的人年终奖有2倍工资。
var calculateBonus = function(performanceLevel, salary) {
if (performanceLevel === 'S') {
return salary * 4;
}
if (performanceLevel === 'A') {
return salary * 3;
}
if (performanceLevel === 'B') {
继续阅读 »
TL;DR 对已发布到远程仓库的分支进行衍合操作(rebase),会产生重复的提交记录,本文举例描述这个问题。
git merge 与 git rebase 命令都用来合并代码,如果不需要审查提交记录,两者都可以无脑操作,相互替换;如果要生成有条理的提交记录,前者会记录多条开发分支扰乱视线,因而推荐使用后者。但后者要是使用不当,会生成令人糊涂的提交记录。这点官方文档里有描述,但我嫌它所举例子有点牵强,所以自己举例说明。
继续阅读 »
变量引用
用set命令可以查看所有的变量
unset var命令可以清除变量var,var相当于没有定义过
readonly var可以把var变为只读变量,定义之后不能对var进行任何更改。
对shell变量的引用方式很多,用这些方式可以方便的获取shell变量的值,变量值的长度,变量的一个字串,变量被部分替换后的值等等。shell变量常见引用方式如下:
继续阅读 »