์๋ ํ์ธ์,
@marceloverdijk ์ฌ๊ธฐ์ # 331์ ๋ํ ์๊ฐ๊ณผ ์คํ์ผ ์ํธ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ๊ฒฝ๋ก๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํฉ๋๋ค.
๊ท์น์ ๊ฐ๋จํฉ๋๋ค. .less
๋๋๊ฑฐ๋ ํ์ฅ์๊ฐ์๋ ํ์ผ ๋ง ๊ฐ์ ธ ์ค๋ฉด ๋๋จธ์ง๋ ๋ธ๋ผ์ฐ์ ์ ๋จ๊ฒจ์ง๋๋ค. ๋ฐ๋ผ์ <strong i="6">@import</strong> "foo.css"
๋ ๊ทธ๋๋ก๋๊ณ <strong i="8">@import</strong> "foo"
๋ฐ <strong i="10">@import</strong> "foo.less"
๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ํ์ผ์ ๊ฐ์ ธ์ต๋๋ค.
์ข์ต๋๋ค. ๊ท์น์ ๋ช ํํฉ๋๋ค. ๊ฐ์ฌ.
๊ทธ๋ฌ๋ Google ๊ธ๊ผด ๊ฐ์ ธ ์ค๊ธฐ๊ฐ ์ค์ ๋ก ๊ฐ์ ธ์จ ์ด์ ๋ฅผ ์๊ณ ์์ต๋๊น?
์ ์ผํ ์ฐจ์ด์ ์ ์ค์ ๋ธ๋ผ์ฐ์ ๋์ Env.js์ Rhino๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค.
๋ ๋ ผ๋ฆฌ๊ฐ Env.js์์ ์ดํดํ์ง ๋ชปํ๋ (๋๋ ์๋ชป) ๊ฐ์ ธ์์ผํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ฌด์ธ๊ฐ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
LESS๋ฅผ ์ปดํ์ผํ๊ธฐ ์ํด ์ด๊ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
var ๊ฒฐ๊ณผ; var p = new less.Parser (); p.parse (input, function (e, tree) {result = tree.toCSS ();});
๊ท์น์ ๋ํ 1 ๊ฐ์ ์ง๋ฌธ์ ๋๋ค. ๋ฐ์ดํ๊ฐ ์ค์ํฉ๋๊น?
๋๋ import.js ๋ ์์ค์์ ์ด๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
if (path instanceof tree.Quoted) {
this.path = /\.(le?|c)ss$/.test(path.content) ? path.content : path.content + '.less';
} else {
this.path = path.value.content || path.value;
}
๋ด๊ฐ ์ฌ์ฉํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ธ๊ผด URL์ &.css
๋ฅผ ์ถ๊ฐํ์ฌ LESS ํ์๊ฐ ์ผ๋ฐ CSS ๊ฐ์ ธ ์ค๊ธฐ์ฒ๋ผ ์ฒ๋ฆฌํ๋๋ก ์์ด๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ :
<strong i="7">@import</strong> url(http://fonts.googleapis.com/css?family=Open+Sans&.css);
BTW, LESS์ ์๋ ๋์์ด๋๊ฐ ๋ถ์ํ @import
๋ฅผ ์ฌ์ฌ์ฉํ๋ ๋์ ๋ณ๋์ @include
์ง์๋ฌธ์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด ๋งค์ฐ ์ํ๊น์ต๋๋ค.
ํ ์คํธ https://github.com/cloudhead/less.js/blob/master/test/less/import.less์์ ์ ์ํ ๊ฒ์ฒ๋ผ ์๋ํ์ง ์์์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํฌํจํ๋
<strong i="8">@import</strong> url("import/import-test-a.less");
//<strong i="9">@import</strong> url("import/import-test-a.less");
<strong i="10">@import</strong> url(http://fonts.googleapis.com/css?family=Open+Sans);
#import-test {
.mixin;
width: 10px;
height: <strong i="11">@a</strong> + 10%;
}
๊ธฐ๋
<strong i="15">@import</strong> "import-test-d.css";
<strong i="16">@import</strong> url(http://fonts.googleapis.com/css?family=Open+Sans);
#import {
color: red;
}
.mixin {
height: 10px;
color: red;
}
#import-test {
height: 10px;
color: red;
width: 10px;
height: 30%;
}
Google Fonts ๊ฐ์ ธ ์ค๊ธฐ๊ฐ ์ฌ์ ํ ํฌํจ๋์ด ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ ์ง์ ํ
์คํธํ์ง ์์์ง๋ง ํต๊ณผํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ถ์ :์ด Google ๊ธ๊ผด ๊ฐ์ ธ ์ค๊ธฐ๋ ๋ด ์คํ ์์ค lesscss4j ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๋ฌ๋์ง ์๋ ์ ์ผํ ๋ถ๋ถ์
๋๋ค.
๋ค๋ฅธ ๋ชจ๋ ํธํ์ฑ ํ
์คํธ๋ ํ์ฌ ํต๊ณผํ๊ณ ์์ต๋๋ค.
๊ทธ๋์ ์ ๋์ด ๋ง์ง๋ง ๋ฌธ์ ๋ฅผ ๊ณต๊ฐํ๊ธฐ ์ ์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ถ์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๋์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
LESS์ Google Web Fonts์ ๋ํ ํ๋ฅญํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด maranomynet์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค (LESS ๋ฆด๋ฆฌ์ค 1.1.3์์ @import ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋ฌธ์ ๊ฐ์์์ต๋๋ค). ๋๋ LESS๊ฐ ๋ถํํ ๋ฐฉ์์ผ๋ก ๊ตฌ๋ฌธ์์ด ๋ถ๋ถ์ ์ฒ๋ฆฌํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
๋๋ ์ง๊ธ ๋ ํผ๋์ค๋ฌ์์ก๋ค.
๊ฐ๋จํ ์น ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ํค๋ ์น์ ์ ์๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
<link rel="stylesheet/less" type="text/css" href="/less/google.less">
<link rel="stylesheet/less" type="text/css" href="/bootstrap/bootstrap.less">
<script src="/js/less-1.1.4.js" type="text/javascript"></script>
Twitter Bootstrap ์ปดํ์ผ์ ์๋ํ์ง๋ง google.less๋ ์๋ํ์ง ์์ต๋๋ค.
์ด google.less์๋ LESS ํธํ์ฑ ํ
์คํธ import.less์์ ๋ณต์ฌ ํ ์๋ ํ๋ง ํฌํจ๋์ด ์์ต๋๋ค.
<strong i="11">@import</strong> url(http://fonts.googleapis.com/css?family=Open+Sans);
๋ธ๋ผ์ฐ์ ์์๋ฐ์ ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
http : // localhost : 8888 / less / http://fonts.googleapis.com/css?family=Open+Sans(404 )๋ฅผ๋ก๋ ํ ์ ์์ต๋๋ค .
http : // localhost : 8888 / less / google.less
์ด์ ์ ๋ง import.less ํธํ์ฑ ํ ์คํธ์ ๋ํด ๊ถ๊ธํดํ๊ธฐ ์์ํฉ๋๋ค ....
๋ซ๊ธฐ URL ๊ฐ์ ธ ์ค๊ธฐ ์ ์ & .css ์ถ๊ฐ
...์์
@import url (http://fonts.googleapis.com/css?family=Open+Sans);
...์
@import url (http://fonts.googleapis.com/css?family=Open+Sans&css);
๋๋ ๋น์ทํ ๋ฌธ์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋๊ตฌ์๊ฒ๋ ๋์์ด๋๋ ๊ฒฝ์ฐ : '|'๋ก ๊ตฌ๋ถ ๋ ์ฌ๋ฌ Google ๊ธ๊ผด์ ๊ฐ์ ธ ์ค๋ ค๊ณ ํ์ต๋๋ค.
@import url (http://fonts.googleapis.com/css?family=Inconsolata|Cantarell|Architects|Daughter&.css);
url () "์ ๋ํด"missing closing) ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
URL์ ๋ฐ์ดํ๋ก ๋ฌถ์ด ์ค๋ฅ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค (์ฐธ๊ณ : & .css๋ ์ฌ์ ํ ๋์ ์์ด์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด 404 ๊ฐ์ ธ ์ค๊ธฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค). ๋ชจ๋ ๊ธ๊ผด๋ ์ฑ๊ณต์ ์ผ๋ก๋ก๋๋ฉ๋๋ค.
@import url ( "http://fonts.googleapis.com/css?family=Ubuntu+Mono|Cantarell|Architects|Daughter&.css");
์ข์ ํ enoex : D ๊ฐ์ฌํฉ๋๋ค !!!!
์ด ๋ฌธ์ ๊ฐ ์ข ๊ฒฐ ๋ ์ด์ ๋ฅผ ์๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ์ฌ์ฉ์๋ ์ฃผ๋ณ์์ ์์ฒญ๋๊ฒ ์ด์ํ ํดํน์ ๋ฐ๊ฒฌํ์ต๋๋ค. Google์ด & .css; ์ด๊ฒ์ lessc์์ ์์ ์ด ํ์ํฉ๋๋ค. @import ๋ฅผ ๋ฌธ์ ๊ทธ๋๋ก ๊ฐ์ ธ
๋๋ ๋์ํ๋ค. ์ด๋ค ์ ์?
<strong i="6">@import</strong> css url(...);
๊ฐ๋ฅ์ฑ์ ๋๋ค. ๋ํ .css ํ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ Less ๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
๊ทธ ๊ตฌ๋ฌธ์ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค (๋๋ ํ์๋ฅผ ์์ฑํ๋ ์ฌ๋์ด ์๋๋ฏ๋ก ์ผ๋ง๋ ์ ๋ง๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค).
๋ด ์ ์ผํ ๊ด์ฌ์ฌ๋ ๋ค๋ฅธ less
์ปดํ์ผ๋ฌ์
๋๋ค. ์ฝ๋ ๋๋ ๊ทธ๋ค์ ์ ์ ์ปดํ์ผ๋ฌ๋ ์ปดํ์ผ ์๊ฐ์ํ์ง ์์ต๋๋ค ์๋ง๋ ๋๋ฌธ์, ๊ทธ๊ฒ์ ์ด ๊ฐ๋ฐ์๋ฅผ์ํ ๊ฐ๊ณต ํ ๋ฏธ์ธ์ ๋ฌธ์ ๊ฐ ์์๋ค @import
. ๋ฐ๋ผ์ ์ด๊ฒ์ด lessc
์์ ์์ ๋์๋๋ผ๋ "& .css"ํดํน์ ๊ณ์ ์ฌ์ฉํ ๊ฒ์
๋๋ค. ๊ทธ๋๋ ํ ์์๋ ์ผ์ ์์ต๋๋ค.
๋๊ตฌ๋ ์ง ํด๊ฒฐ์ฑ ์ ์ฐพ์์ต๋๊น?
"& .css"๋ฅผ ์ถ๊ฐํ๊ณ URL์ ๋ฐ์ดํ๋ก ๋ฌถ๋ ๊ฒ๋ง์ผ๋ก ์ปดํ์ผ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ง์ ํ ๊ธ๊ผด์ ์ฌ์ ํ โโ๋ ๋๋ง๋์ง ์์ต๋๋ค ....
์ฌ์ ํ ๋ฌธ์ ์ธ ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ๋ฏ๋ก ๋ค์ ์ด์์ต๋๋ค.
๊ฐ๋จํ ์์ ์ ๋งค๊ฐ ๋ณ์๊ฐ ํฌํจ ๋ URL์ ์๋ฌด๊ฒ๋ ์ถ๊ฐํ์ง ์๋ ๊ฒ์ ๋๋ค (์ :? family = x).
@ntoft ๋ ์ด์ ์ค๋ฅ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค. lessc ..๋ฅผ ์ฌ์ฉํ์ฌ ์ ํํ ๋จ์ ๋ฌธ์ ๋ ๋ฌด์์ ๋๊น?
ํ์ ์กฐ์น ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋๋ "append & .css"์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ํ์ฌ ์๋ํ๊ณ ์์ต๋๋ค (์ผ๋ถ ์ฌ์ฉ์ ์ค๋ฅ :-/) ๋ ๋์ ๋ฐฉ๋ฒ์ด ์๋์ง ๊ถ๊ธํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ํ๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ์์ ๋กญ๊ฒ ๋ซ์ผ์ญ์์ค.
๊ฐ์ฌ.
์ถ๊ฐ .css ์ ๊ทผ ๋ฐฉ์์์ด ์๋ํ๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ๊ทธ ์๊ฐ ์์ต๋๊น?
๋ด๊ฐ ์๋ชป ์ดํดํ๋ค๊ณ ์๊ฐํฉ๋๋ค ... ๋ฌธ์ ๋ ๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ์ํ์ง ์์ ๋ CSS๋ฅผ ๊ฐ์ ธ ์ค๋ ๊ฒ์ ๋๋ค.
1.4.0์์ @import
์ (๋) ๊ทธ๋๋ก๋๊ณ @include
๋ ํญ์ ํฌํจ๋์ด์ผํฉ๋๋ค.
ํ ๋ก ์ ๋จ์ผ ๋ฌธ์ ๋ก ์ฎ๊ธฐ๊ธฐ # 1185
๋ค์๊ณผ ๊ฐ์ ๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํํด์ผํฉ๋๋ค. @import url (https \ : \ / \ / fonts.googleapis.com \ / css? family = Orbitron & .css);
@ jas-naz ์ ์ ํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<strong i="6">@import</strong> (css) url(https://fonts.googleapis.com/css?family=Orbitron);
์์ธํ ๋ด์ฉ์ http://lesscss.org/features/#import -atrules-feature-import-options๋ฅผ ์ฐธ์กฐ
์๋ ํ์ธ์,์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ์ํ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด URL ๋์ "#css"๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
<strong i="6">@import</strong> url('https://fonts.googleapis.com/css?family=Paytone+One#css');
์๋ ํ์ธ์.
๋์ ์๊ฐ. ์ต๊ทผ ๋ฒ์ ์์๋ Less๊ฐ ์ค์ ๋ก์ด ํ์ผ์ ์ฒ๋ฆฌํฉ๋๋ค (๊ฐ์ ธ ์ค๊ธฐ๋ฅผ ๊ทธ๋๋ก ๋๋ ๋์ ).
๊ทธ๋์ ๊ทธ ์์ (css)
๊ฐ ํ์์
๋๋ค. (์ด์ ๋ฒ์ ์์๋ ์ปดํ์ผ๋ฌ๊ฐ์ด ํน์ ๊ฒฝ์ฐ์ ๋๋ฝ ๋ ์ ์ ํ ํ์ฅ ๋์ url์ "์ผ๋ถ" css
๋ฌธ์์ด์ ์ํด ๊ฒฐ์ ๋ ์๋ชป๋ ๋์์ด์์ต๋๋ค).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ด๊ฐ ์ฌ์ฉํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ธ๊ผด URL์
&.css
๋ฅผ ์ถ๊ฐํ์ฌ LESS ํ์๊ฐ ์ผ๋ฐ CSS ๊ฐ์ ธ ์ค๊ธฐ์ฒ๋ผ ์ฒ๋ฆฌํ๋๋ก ์์ด๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ :BTW, LESS์ ์๋ ๋์์ด๋๊ฐ ๋ถ์ํ
@import
๋ฅผ ์ฌ์ฌ์ฉํ๋ ๋์ ๋ณ๋์@include
์ง์๋ฌธ์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด ๋งค์ฐ ์ํ๊น์ต๋๋ค.