Less

Jmnote (토론 | 기여)님의 2015년 7월 23일 (목) 19:56 판 (→‎같이 보기)
  다른 뜻에 대해서는 리눅스 less 문서를 참조하십시오.

1 개요

Leaner CSS; LESS, less.js
  • 동적 스타일시트 언어
  • CSS 전처리기
  • 브라우저가 LESS.js을 통해 실시간 컴파일

 

2 특징

  • 변수 사용
  • 가변변수 사용
  • 중첩 (상속표현 단순화)
  • 연산 (예: 크기, 색상코드 연산!)

3 사용방법 예시

  • HTML 문서에는 아래와 같이 작성하고 별도의 my-first.less를 작성하면 됨
<link rel="stylesheet/less" type="text/css" href="my-first.less" />
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.5.1/less.min.js"></script>
→ CSS와는 달리 웹브라우저가 직접 해석하지 못함
→ less.js가 rel="stylesheet/less"라고 지정된 파일을 찾아 CSS로 컴파일하여 적재함
→ CSS는 별도 파일을 두지 않고 style 태그를 사용하여 html 문서에 직접 기술할 수 있지만, LESS는 별도의 파일로만 사용 가능.

4 변수

@color: #4D926F;
 
#header {
  color: @color;
}
h2 {
  color: @color;
}
#header {
  color: #4D926F;
}
h2 {
  color: #4D926F;
}

5 Mixin

.rounded-corners (@radius: 5px) {
  border-radius: @radius;
  -webkit-border-radius: @radius;
  -moz-border-radius: @radius;
}
 
#header {
  .rounded-corners;
}
#footer {
  .rounded-corners(10px);
}
#header {
  border-radius: 5px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
}
#footer {
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
}

6 중첩

  • CSS에 비해 상속 관계 표현이 매우 간단함
#header {
  h1 {
    font-size: 26px;
    font-weight: bold;
  }
  p { 
    font-size: 12px;
    a { 
      text-decoration: none;
      &:hover { 
        border-width: 1px;
      }
    }
  }
}
#header h1 {
  font-size: 26px;
  font-weight: bold;
}
#header p {
  font-size: 12px;
}
#header p a {
  text-decoration: none;
}
#header p a:hover {
  border-width: 1px;
}

7 연산자

@the-border: 1px;
@base-color: #111;
@red:        #842210;
 
#header {
  color: @base-color * 3;
  border-left: @the-border;
  border-right: @the-border * 2;
}
#footer { 
  color: @base-color + #003300;
  border-color: desaturate(@red, 10%);
}
#header {
  color: #333;
  border-left: 1px;
  border-right: 2px;
}
#footer { 
  color: #114411;
  border-color: #7d2717;
}

8 같이 보기

9 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}