일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 웹퍼블리싱
- 무료제작
- 우편번호 API
- 복사방지
- 웹퍼블리셔
- php
- 웹호스팅
- php호스팅
- 무료 홈페이지 제작
- 우체국 우편번호
- 새우편번호
- 클릭해제
- 무료홈페이지
- 홈페이지제작
- 문자열 뒤집기
- 무료
- 무료 홈페이지
- 무료서버
- 자바키워드
- 글자뒤집기
- 무료호스팅
- 퍼빌리셔
- 호스팅
- 무료 웹 호스팅
- postcodify
- 무료 호스팅
- 자바스크립트
- 마우스 오른쪽 버튼
- 마우스오른쪽
- 무료사이트
- Today
- Total
Developer Factory
[CSS] Preprocessor - LESS 사용해 보기 본문
참고 : http://i5on9i.blogspot.kr/2014/07/less.html
less 는 css 의 기능부족(?)을 충족시키기 위한 preprocessor 이다. wiki 에 따르면 다른 프로그램의 input 으로 사용될 녀석을 만들어 주는 프로그램이라고 얘기하고 있다. c/c++ 를 배웠던 사람이라면 pre-processor 가 무엇인지 알 것이다.
여튼 이것은 관점의 차이이고, Less 는 css 를 만들어 주는 compiler 라고 생각하면 될 것이다.
ref. 4 에 있는 것처럼 less 에서는
- Command line Usage : command line 에서 .less 를 compile 해서 .css 를 만드는 방법과
- Using Less in the Browser(client-side less in production) : browser 에 직접 .less 와 less.js 를 include 시켜서 바로 compile 해서 사용하는 방법을 제공하고 있다.
LESS 에서는 기본적으로 이 compile 을 javascript 를 이용해서 dynamic 하게 한다. 무슨 이야기인가 하면, browser 에 .less 와 이 .less 를 compile 해주는 javascript 를 같이 include 시켜서 compile 해서 .less 를 .css 로 바꾸고 이렇게 얻어진 .css 를 다시 load 해서 사용하는 것이다. 이 때 이 javascript 가 less.js 이다.
기본적으로, 여기를 보면 client-side less in production 은 사용을 권하지 않는다.
Less 설치
less.js
less.js 는 아래 경로에서 download 할 수 있다.
lessc
windows 에서 node.js 를 설치하고, 아래처럼 command 를 날리면 less 가 설치된다. 참고로 그냥 nodejs/node_modules/less 에 설치를 하려면 -g option 을 빼자.
c:\Program Files\nodejs>npm.cmd install less -g
C:\Users\namhadmin\AppData\Roaming\npm\lessc -> C:\Users\namhadmin\AppData\Roaming\npm\node_modules\less\bin\lessc
less@1.7.3 C:\Users\namhadmin\AppData\Roaming\npm\node_modules\less
├── graceful-fs@2.0.3
├── mime@1.2.11
├── mkdirp@0.3.5
├── clean-css@2.1.8 (commander@2.1.0)
├── source-map@0.1.37 (amdefine@0.1.0)
└── request@2.34.0 (forever-agent@0.5.2, tunnel-agent@0.3.0, aws-sign2@0.5.0,
json-stringify-safe@5.0.0, oauth-sign@0.3.0, qs@0.6.6, node-uuid@1.4.1, tough-c
ookie@0.12.1, hawk@1.0.0, http-signature@0.10.0, form-data@0.1.4)
c:\Program Files\nodejs>npm.cmd install less less@1.7.3 node_modules\less ├── graceful-fs@2.0.3 ├── mime@1.2.11 ├── mkdirp@0.3.5 ├── clean-css@2.1.8 (commander@2.1.0) ├── source-map@0.1.37 (amdefine@0.1.0) └── request@2.34.0 (forever-agent@0.5.2, aws-sign2@0.5.0, tunnel-agent@0.3.0, oauth-sign@0.3.0, qs@0.6.6, json-stringify-safe@5.0.0, node-uuid@1.4.1, tough-c ookie@0.12.1, http-signature@0.10.0, hawk@1.0.0, form-data@0.1.4)
아래 경로에 보면 실행파일이 있다. 이녀석을 이용하면 된다.
- c:\Program Files\nodejs\node_modules\.bin\lessc.cmd
사용법
사용법은 ref. 5 를 참조하자. 여기서는 예제와 간단한 설명들만 적어놓는다.
Variables
@varName: #ffeedd; @defaultVarName: @varName + #111111; .test{ background:@defaultVarName; }
Mixins
class 를 재사용할 수 있다.
/***************************/ .Round, #rr{ -webkit-border-radius:9999px; -moz-border-radius:9999px; border-radius:9999px; } #box{ #rr; } #box2{ .Round(); //parenthesis are optional }
.my-hover-mixin() { border: 1px solid red; }
뒤에 () 를 붙이는 경우는 less 내에서만 쓰인다. .css 로 compile 되면 아무것도 만들어지지 않는다.
.my-hover-mixin() { &:hover { border: 1px solid red; } } button { .my-hover-mixin(); } /* Output */ button:hover { border: 1px solid red; }
#name-space{ .inner { color: red; } .out() { color: blue; } } .c { #name-space.inner; } .d { #name-space.out(); }
parent selector &
compile 을 하면, &부분이 parent selector 로 replace 된다고 보면 될 듯 하다. 만약 parent selector 가 ','(comma) 로 여러개가 있다면 한번씩 전부 사용된다.
p, a { border-top: 2px dotted #366; & + & { border-top: 0; } } /* output */ p,a{ border-top: 2px dotted #366; } p + p, p + a, a + p, a + a { border-top: 0; }
import
@import "foo"; // less 의 import 로 인식한다. @import "foo.css"; // .css 의 확장자를 가지고 있어서 css 의 import keyword 로 인식한다.
기본적으로 Less 의 @import 는 file 의 확장자를 보고 file 을 인식한다. 그런데 이것을 강제할 수도 있다.
- .less로 인식 : @import (less) "file.css"
- .css 로 인식 : @import (css) "file.less"
그리고 css 의 @import 와는 다르게 아무곳에서 @import 를 해줘도 된다.
when
.mixin(@a) when (@a>10) and (@a< -10) .mixin(@a) when (@a>10), (@a< -10) .mixin(@a) when not (@a>10)
& when (@my-option = true) { button { color: white; } a { color: blue; } }
button 과 a 에 같은 when 을 적용할 때
loop
loop을 만들때는 recursive call 을 이용한다.
.generate-columns(@n, @i: 1) when (@i =< @n) { .column-@{i} { width: (@i * 100% / @n); } .generate-columns(@n, (@i + 1)); }
GUIs
개발을 위해서는 GUI 가 나을 듯 하다.
- Usage | Less.js >> GUIs for Less
- sublime text syntax: danro/LESS-sublime · GitHub
References
- DON’T READ this Less CSS tutorial (highly addictive) | @verekia's blog
- 아는게 이것밖에 없어 ::: IT와 여행 :: CSS 프리프로세서인 LESS 사용하기
- Preprocessor - Wikipedia, the free encyclopedia
- Usage | Less.js
- Language Features | Less.js
- Bootstrap 3 Less Workflow Tutorial | Experience Design at Hello Erik
'Developer > Publishing' 카테고리의 다른 글
퍼블리싱 참고 - 웹사이트 속도 개선을 위한 팁들[번역] (1) | 2014.07.26 |
---|---|
웹 작업에 참고 사이트 (0) | 2014.06.12 |