Less -- Css的Ruby扩展

Less是对Css的一种Ruby扩展,使得Css可以支持变量,Mixin,内嵌规则和数字操作。

Less的特点在官网上[]http://lesscss.org/]1写得很清楚,这里就不再重复了。试用了一天,还不错,不过和Sass比起来还是有些差距的:

1. Less只支持单文件,没有Sass中的import功能,所以Css重用上也只能局限在单文件中。

2. Less内嵌规则不支持单行css定义

div {
  input {color:red;}
}

这样写lessc编译的时候会报错,必须改成下面的写法:

div {
  input {
    color:red;
  }
}

觉得这个应该算是一个bug吧。

3. Less不支持多元素嵌套

div.style1, div.style2 {
  input {
    color:red;
  }
}

它会被解析成

div.line1, div.line2 input {
  color:red;
}

而Sass会解析成

div.line1 input, div.line2 input {
  color:red;
}

这一点让我很不爽

4. Less每次修改了,必须手动执行lessc来转换成css文件,或者加上--watch参数来自动更新,不过一次只能watch一个文件,这点比起sass实在是差太多了。用起来实在太不方便了,就写个task来watch所有的less文件更新

namespace :lessc do
  css_path = 'public/stylesheets/'
  less_path = css_path + 'lesses/'

  desc "start lessc"
  task :start do
    Dir.entries(less_path).each do |file|
      unless file == '.' or file == '..'
        system "lessc #{less_path}#{file} #{css_path}#{file} --watch &"
      end
    end
  end

  task :stop do
    lines = %x{ ps }.split("\n")
    lines.reject {|line| line !~ /\.less/}.each do |line|
      pid = line.split(/\s+/)[1]
      system "kill -9 #{pid}"
    end
  end

  task :restart => [:stop, :start]
end

每次执行rake lessc:start启动,rake lessc:stop关闭即可

Posted in  ruby css less


在hostmonster上搭建git server

hostmonster本身并不支持git,不过还好它提供了ssh,我们可以ssh上去编译git。

首先,ssh到hostmonster上,编译安装git

$ mkdir git
$ cd git
$ wget http://kernel.org/pub/software/scm/git/git-1.6.3.2.tar.gz
$ tar -zxvf git-1.6.3.2.tar.gz
$ cd git-1.6.3.2/
$ ./configure --prefix=$HOME/git
$ make  make install

修改~/.bashrc,设置环境变量

export GIT_HOME=$HOME/git
export PATH=$GIT_HOME/bin/:$GIT_HOME/lib/libexec/git-core/:$PATH

验证结果

$ source ~/.bashrc
$ git --version

我们在本地新建一个rails app来使用git server

$ rails home -d mysql
$ cd home
$ git init
$ git add .
$ git commit -a  -m "first commit"

忘了说了,你应该git init之后新建一个.gitignore文件

.DS_Store
log/*.log
tmp/**/*
config/database.yml

在本地生成一个只包含版本信息的版本库,并上传到hostmonster上,假设你要把你hostmonster上的版本库信息放在gits目录下

$ cd ../
$ git clone --bare home home.git
$ touch home.git/git-daemon-export-ok
$ scp -r home.git username@yourdomain.com:gits/

设置本地代码的远程版本库

$ cd home
$ git remote add origin usernmae@yourdomain.com:gits/home.git

之后就是修改代码,git pull/git push了

Posted in  hostmonster rails git


沉浮

一本很好看的小说,讲了一个女孩子从前台转为销售之后的故事。

好强、理性、聪明、漂亮,当这样一个女孩子做销售会发生什么呢?敢于在前任老板在卸任前谋求一个销售的职位,敢于当上司的马前卒向新人市场总监,向美国总部告状,经历了对上司不信任,当面顶撞,到反思认错,向同事学习如何圆滑地处理办公室人际关系,面对客户过分的潜规则要求,机智地避过一难......还好几个老板人都不错。销售每天就和打仗一样,旁观一下还是很精彩的。

可惜只有第一部,期待作者尽快把第二部出书!

Posted in  life


设置git全局忽略的文件

现在家里的笔记本一直用vim开发rails项目,再用git作版本控制,往往碰到这样的问题,在一个窗口用vim开发,再另一个窗口git status查看的时候,总是有vim生成的.swp文件干扰,每次都加在项目的.gitignore文件里也麻烦,于是就将其配置在git的全局变量中。

新建~/.gitignore文件:

.DS\_Store
*.swp

然后执行:

$git config --global core.excludesfile ~/.gitignore

再执行git status,好干净啊!

Posted in  git vim


Css消除Image点击后的虚线框

网上很多文章关于这个问题都是说使用

a img {border: 0}

其实这是不够的,应该还要加上

outline: 0

对于通过a做成的button也同样适用

Posted in  css


Fork me on GitHub