์ด๋ฏธ ๋ณด๊ณ ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ง๋ง ์ ๋ณด๊ฐ ๋ถ์กฑํ์ฌ ๋ฒ๊ทธ๊ฐ ๋ซํ์ต๋๋ค.
๋ค์ CSS ์ฝ๋๊ฐ ์์ต๋๋ค.
#id1 {
position: fixed;
left: 0; top: 0;
width: 130px;
}
#id2 {
position: fixed;
right: 0; top: 0;
width: calc(100% - 130px);
}
130px
๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ์ฌ LESS๋ก ๋ณํํ๊ณ ์ถ์์ง๋ง calc๋ LESS์ ์ํด ํด์๋๋ฉฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<strong i="11">@id1width</strong>: 130px
#id1 {
position: fixed;
left: 0; top: 0;
width: @id1width;
}
#id2 {
position: fixed;
right: 0; top: 0;
width: calc(100% - @id1width);
}
๋ง์ง๋ง ํ ์ค์ width: calc(-30%);
๋ณํํ์ฌ ๋ถ๋ช
ํ ์ํ๋ ๊ฒ์ด ์๋๋๋ค. width: ~"calc(100% - @id1width)";
์ฌ์ฉํด ๋ณด์์ง๋ง @id1width
๊ฐ ํด์๋์ง ์์ต๋๋ค.
LESS๋ CSS3๊ฐ ๋ด๋ถ์ฉ์ผ๋ก ์์ฝํ ๊ฒ์ ์ฌ์ฉํด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค...
๊ทธ๋ค์ ์๋ง๋ ์ค๋ณต์ผ๋ก ๋ซํ์ ๊ฒ์ ๋๋ค. calc์ ๋ํด์๋ ์ฐพ์ ์ ์์ง๋ง # 146 #122 ๋ฐ #915๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ: width: ~"calc(100% - @{id1width})";
- ๋ณ์ ์ฃผ์์ ์ค๊ดํธ๋ฅผ ์ฃผ๋ชฉํ์ญ์์ค.
์ฐ๋ฆฌ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋๊ดํธ ์์ ์๋ ๊ฒ๋ง ํ๊ฐํ๋ ์์คํ ์ผ๋ก ์ด๋ํ๊ณ ์์ต๋๋ค.
:+1:
<strong i="5">@rows</strong>: 10;
<strong i="6">@row1</strong>: 1 / <strong i="7">@rows</strong> * 100%;
.featured1
{
top: ~'-webkit-calc(@{row1} + 20px)';
right: 0;
bottom: @row5;
left: @col9;
}
์ด LESS ๋นํธ๋ ' @row1 ' ๊ฐ์ 10%๋ก ์ฒ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฌ๋ LESS์ ์ด์ค์ผ์ดํ๋ ์น์ ์์ ์๊ณ LESS ๋ณ์๋ฅผ ์ ์งํ๊ธฐ ์ํด ๊ณฑ์ฌ๊ณฑ์ฌํ๊ฒ ๋ํ๋๋ฉด '%' ์์ด '10'์ ๋ฐํํฉ๋๋ค.
์์ง ์คํจํ์ง ์์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์์ต๋๋ค. ์ด์ค์ผ์ดํ๋ ์ฝ๋ ๋ด์์ 'row1' ๋ณ์์ ๋ซ๋ ์ค๊ดํธ ๋ค์ ๋ค๋ฅธ '%'๋ฅผ ๋ฐฐ์นํ๋ฉด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํฉ๋๋ค...
~'-webkit-calc(@{row1}% + 20px)';
๊ทธ๋ฌ๋ ์ด๋ฏธ ๋ณ์์ ์๋ค๊ณ ๊ฐ์ ํ๋ ๋ค๋ฅธ ๋จ์ ์ ํ์ ์ถ๊ฐํ๋ ๊ฒ์ ๊ฝค ํดํน์ฒ๋ผ ๋ณด์ ๋๋ค.
@jonjohnjohnson ์ด๊ฒ์ ๋จธ๋ฆฌ์ ๊ณ ์ ๋์ด ์์ผ๋ฉฐ 1.3.2์ ํฌํจ๋ ๊ฒ์ ๋๋ค.
์ด ๋ฒ๊ทธ์ ๋๋จธ์ง ๋ถ๋ถ์ 1.4.0์์ ํด๊ฒฐ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด ๊ฐ์ ๋ฌธ์ ์ธ์ง ํ์คํ์ง ์์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ด ์์ผ๋ฉฐ 1.3.3 ๋ฏธ๋ง์ด ์ ํจํ CSS๋ฅผ ๋ญ๊ฐ๊ณ ์์ต๋๋ค.
CSS๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
html, body {
margin:0, padding:0, border:0;
height: 100%;
}
#content {
height: -webkit-calc(100% - 40px);
height: calc(100% - 40px);
background-color:gray;
}
#footer {
background-color:black;
}
์ฌ๊ธฐ์ ํฌํจํ HTML์ด ์์ต๋๋ค.
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet/less" type="text/css" href="test.css" />
<script src="less-1.3.3.min.js"></script>
<body>
<div id="content"></div>
<div id="footer" style="height:40px"></div>
</body>
</html>
"์ฝํ ์ธ "๊ฐ 60%์ ๋์ด๋ก ์ค์ ๋์ด ์์ผ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ์ ๋ณ๊ฒฝ ์์ด ์ ๋ฌํ๋ ๋์ ๊ณ์ฐ์์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์๋ชป ํด์ํ๋ ๊ฒฝ์ฐ๊ฐ ์ ์ต๋๋ค. Safari 6.0.2 ๋ฐ Firefox์์ ํ ์คํธ๋์์ต๋๋ค.
1.4.0์ ๋ง์คํฐ์์ ์์ ๋จ
height: ~"calc(100% - 50px)";
์ฌ์ ํ ์์ฐ:
height: calc(50%);
๋๋ฅผ์ํ. ์ํด์:
height: calc(100% - 50px);
๊ฒ๋ค๊ฐ ์๊ฒฉํ ์ํ์ด on
์ค์ ๋ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ height: calc(50%);
์์ฑํฉ๋๋ค.
@OliverJAsh Less 1.7.0์์๋ ๊ฒฐ๊ณผ๋ฅผ ์ฌํํ ์ ์์ต๋๋ค(์ด์ค์ผ์ดํ๋ ๊ฐ๊ณผ --strict-math:on
์์๋๋ก ์๋ํจ)... ์ฌ์ฉํ๋ ์ปดํ์ผ๋ฌ/ํ๊ฒฝ/์คํฌ๋ฆฝํธ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํด ์ฃผ์๊ฒ ์ต๋๊น? (๋ถํธ์คํธ๋ฉ ๋น๋ ์คํฌ๋ฆฝํธ ๋ฌธ์ ๊ฐ ์ด๋ฌํ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ: https://github.com/twbs/bootstrap/issues/13604, ์๋ง๋ ์ด๊ฒ์ด ๊ทํ์ ๊ฒฝ์ฐ์ด๊ธฐ๋ ํฉ๋๊น?).
1.6.3์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค(์ด๋ค ์ด์ ๋ก WinLESS๋ 1.7.x๋ก ์ ๊ทธ๋ ์ด๋ํ ๋ ์ปดํ์ผ์ ๋ฐฉํด๊ฐ ๋๋ฏ๋ก ์ง๊ธ์ 1.6.x๋ฅผ ๊ณ ์ํ๊ณ ์์ต๋๋ค)
๋ด ๋น ๋ฅธ ์์ ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์ ์์ ํ ๋ถ๋ถ์ ํ์ถํ๋ ๊ฒ์ด ์์ต๋๋ค.
height: calc(~"100%" - unit(<strong i="7">@var</strong>, px));
์ด๊ฒ์ <strong i="10">@var</strong>: 50
์ ๊ฐ์ ๋ณ์์์๋ ์๋ํฉ๋๋ค. ๋๋ calc(~"100% - 50px");
์ ๊ฐ์ ์ ์ฒด ๊ณ์ฐ์ ํผํ ์ ์์ต๋๋ค.
@twiginteractive --strict-math
์ต์
off
(๊ธฐ๋ณธ ์ค์ )์ผ๋ก ์ด์ค์ผ์ดํ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๋๋ผ ์์๋๋ ๋์์
๋๋ค. --strict-math
์ฐธ์กฐํ์ญ์์ค.
@seven-phases-max ํ - ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด SM์ด ๊บผ์ ธ ์์ผ๋ฉด(๊ธฐ๋ณธ๊ฐ) ์ด _should_๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ๋ฌธ ๋ถ์๋ฉ๋๋ค(์ฆ, ์์ ๋์ง ์์).
height: calc(100% - 10px);
ํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ์ถ๋ ฅ CSS๋ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ์๋ height: calc(90%);
์
๋๋ค. ์๋ง๋ ์ด๊ฒ์ 1.7์์ ์์ ๋์์ง๋ง ๋ด๊ฐ ๋งํ๋ฏ์ด WinLESS ์ปดํ์ผ์ ๊นจ๋จ๋ฆฌ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์์๋ผ ๋๊น์ง ์ง๊ธ์ ๊ทธ ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
("์ ํํ๊ฒ ์ฒ๋ฆฌ๋ ๊ฒ"์ด๋ผ๊ณ ๋์ด ์์ ๋ ๋ฌธ์๋ฅผ ์๋ชป ์ฝ์ง ์๋ ํ... LESS๋ 100%์ ๊ฐ์ ์ ์ ์์ผ๋ฏ๋ก '100% - 10px'์์ ์ํ์ ๊ณ์ฐ์ ํด์๋ ์ ๋ฉ๋๋ค.)
@twiginteractive
๋ฌธ์์ ๋ฐ๋ฅด๋ฉด SM์ด ๊บผ์ ธ ์์ผ๋ฉด(๊ธฐ๋ณธ๊ฐ) ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ๋ฌธ ๋ถ์๋์ด์ผ ํฉ๋๋ค(์ฆ, ๋ณ๊ฒฝ๋์ง ์์).
์๋์, ๊ฑฐ๊ธฐ์ ์๋ ๋จ์ด๋ currently
์๋๋ผ correctly
(์ฆ, "ํ์ฌ _์ฒ๋ฆฌ๋ฉ๋๋ค_").
@seven-phases-max ์ - ๋ง์์ฌ, ์ด์ ์ดํด๊ฐ ๋ฉ๋๋ค. ์ค๋ช ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋์ด: ~"๊ณ์ฐ(100% - 50px)"; ๋๋ฅผ ์ํด ์ผํ๋ค.
์ฌ๊ธฐ์ Less.js๊ฐ ์ฝ๋๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค๊ธฐ ์์ํฉ๋๋ค.
height: _calc(50%);
height: calc(100% - 50%); /* browser-native */
@stevenvachon
์๋ง๋ v2.0์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ๋ฅ์ ์ ๋์ฌ๋ฅผ ๋ถ์ผ ์ ์๋ ์ต์ ์ด ์์ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ์ด๋ค ์์ผ๋ก๋ calc
์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๋ด์ฅ๋ calc
ํจ์๊ฐ ์์ผ๋ฉฐ Less๋ (Less์) ๊ท์น์ ๋ฐ๋ผ ์ํ ํํ์์ ํ๊ฐํ ๋ฟ์
๋๋ค. ๊ทธ๊ฒ ๋ค์ผ ์ด "ํผ๋"์ ์ํ์ง ์์ผ๋ฉด --strict-math
.
P ์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ
์ ์๊ฒฉํ ์ํ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ์ฐ๋ฆฌ๋
calc๋ฅผ ํธ์ถํ ๋ ์๊ฒฉํ ์ํ์ ์ฌ์ฉํ๋๋ก ํ์๊ฒ ์ต๋๊น?
๋ฌธ์ ๋ Less ์ดํ์ Myth๋ฅผ ์ฌ์ฉํ ๋ ํ์ฅ๋ฉ๋๋ค.
์์? ์ ํ๋ ๊ดํธ๋ฅผ ์ ๊ฑฐํฉ๋๊น? ์๊ฒฉํ ์ํ์ ์ ์ ํ ์์ ์งํฉ์ ๋ ๋ง๋ญ๋๋ค.
CSS์.
๊ทธ๋ฆฌ๊ณ calc๋ฅผ ํธ์ถํ ๋ ์๊ฒฉํ ์ํ์ ์ ์ฉํด์ผ ํ ๊น์?
์ฐ๋ฆฌ๋ ์ด๊ฒ์ #1872์์ ๋ ผ์ํ๊ณ "local strict- math:on " ํด๊ฒฐ ๋ฐฉ๋ฒ
@stevenvachon
strictMath๋ฅผ ์ฌ์ฉํ๋๋ผ๋ Less๊ฐ ๋ฌด์ํ๋๋ก ~"calc(...)"ํด์ผ ํฉ๋๋ค.
์์? ์ฆ, Less ๊ฐ calc
๋ด๋ถ์ ํํ์์ --strict-math=on
๊ณ ์ ํ๋ ์ค๋ํซ์
๋๋ค.
v2 ์ ๋์ฌ๋ ์ธ์ ๋ถํฐ ์๋ํฉ๋๊น? ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๊ฒฐ์ ํ๊ณ ๋ด๊ฐ ์์๋์?
v2 ์ ๋์ฌ๋ ์ธ์ ๋ถํฐ ์๋ํฉ๋๊น? ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๊ฒฐ์ ํ๊ณ ๋ด๊ฐ ์์๋์?
์๋์. https://github.com/less/less.js/issues/2102#issuecomment -50286985๋ฅผ ์ฝ๊ฐ ๊ณผ๋ํ๊ฐํ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค, ์ฃ์กํฉ๋๋ค. "์ต์
"์ด ์๋๋ผ "์ต์
์ ์ ๊ณตํ๋ ํ๋ฌ๊ทธ์ธ ์์ฑ ๊ธฐ๋ฅ"์
๋๋ค. ์กฐ๊ธ ์ ์ ์ฐฉ๊ฐ์ ํ๊ณ ๊ทธ๋ฐ ์คํด๋ฅผ ํ๋ฉฐ ๊ณ์ ๋์๊ฐ๊ณ ์์์ ํ
๋ฐ. ์ง๊ธ ์์ ํด์ผ ํ ์ค๋๋ ์ฝ๋๊ฐ ์์ต๋๋ค.~""
์ calc()
~""
๊ฐ ์๊ฑฐ๋ ์๋ ์ผ๋ถ ์ฝ๋๋ฅผ ๋ค์ ํ
์คํธํด์ผ ํฉ๋๋ค.
width
์ ํจ๊ป ์ฌ์ฉํ ๋ calc
์ด์ํ ์ผ์ด ๋ฐ์ํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋ชจ๋ ๊ฒ์ codepen์ ๋ฃ์์ต๋๋ค. http://codepen.io/anon/pen/OVpJvP
@alenb
๊ทธ๋ผ ๊ฑฐ๊ธฐ์ ์ด์ํ ์ ์ ๋ฌด์์ ๋๊น? codepen์ ์ฝ๋๊ฐ ์์๋๋ก ์ปดํ์ผ๋ฉ๋๋ค...
@seven-phases-max
์ปดํ์ผ๋์์ง๋ง ์์ํ ๊ฒ๊ณผ ๋ค๋ฆ ๋๋ค. CSS ์ฝ๋๋ฅผ ์ข ๋ ์์ธํ ํ์ธํ์ธ์.
3๊ฐ์ ์ด๋ก ์์ ํ ๋์ด๋์ผ ํ์ง๋ง ๋งจ ์ค๋ฅธ์ชฝ์ ์ฌ์ ํ ๊ฐ๊ฒฉ์ด ์๊ธฐ ๋๋ฌธ์ ์ด์ํฉ๋๋ค. ์ฒ์ ๋ ์ด์ 33.33%์์ 20px๋ฅผ ๋บ ๊ฐ์ด์ด์ผ ํ๋ฉฐ ๋ง์ง๋ง ์ด์ 33.33%์ฌ์ผ ํฉ๋๋ค. ์ฒ์ 2๊ฐ ์ด์ ์ค๋ฅธ์ชฝ ์ฌ๋ฐฑ์ 20px์ด์ง๋ง ๋งจ ์ค๋ฅธ์ชฝ์ ๋ถ๋ช ํ ๊ฐ๊ฒฉ์ด ์์ผ๋ฏ๋ก ๋ฐ์๋์ง ์์ต๋๋ค.
๋๋ ์ง๋ ๋ฐค์ ๋ ๋ง์ ๊ฒ์ ๊ฐ์ง๊ณ ๋์๊ณ padding-right ๋์ margin-right๊ฐ ํธ๋ฆญ์ ์ํํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
@alenb
์ปดํ์ผ๋์์ง๋ง ์์ํ ๊ฒ๊ณผ ๋ค๋ฆ ๋๋ค. CSS ์ฝ๋๋ฅผ ์ข ๋ ์์ธํ ํ์ธํ์ธ์.
๋ฌผ๋ก ์ด์ฃ . ๋ฐ๋ผ์ ๋ค๋ฅธ ๊ฒ์ ๊ธฐ๋ํ๋ ๊ฒฝ์ฐ ์ง์ ํ์ญ์์ค.
์ฒ์ 2๊ฐ์ ์ด์๋ 20px์ ํจ๋ฉ ์ค๋ฅธ์ชฝ์ด ์์ง๋ง ์ด๋ ๋ฐ์๋์ง ์์ต๋๋ค.
padding
๋ ๋๋น์ ์ด๋ค ์ํฅ๋ ๋ฏธ์น์ง ์์ต๋๋ค(ํน์ [ box-sizing
](https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing)์ ์ค์ ํ์ง ์๋ ํ )), consult [CSS specs](http://www.w3.org/TR/REC-CSS2/box.html). So you simply get :
(33% - 20px) + (33% - 20px) + 33% = 99% - 40px ->
40px` ๊ฐ๊ฒฉ์ ์์๋๋ก์
๋๋ค.
์ด๋ ์ชฝ์ด๋ ์ด๊ฒ์ CSS์๋ง ๊ด๋ จ๋๋ฉฐ Less๊ฐ calc
์ปดํ์ผํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. codepen ์ฝ๋์์ "์ปดํ์ผ๋ ๋ณด๊ธฐ" ๋ฒํผ์ ํด๋ฆญํ๋ฉด calc
๋ฌธ์ด ์ฌ์ฉ์๊ฐ ์ง์ ํ ๊ฒ๊ณผ ์ ํํ ์ผ์นํ๋๋ก Less์์ ์ปดํ์ผ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
@seven-phases-max
๋๋ codepen์ด ์ด๊ฒ์ ๋ถ๋ช ํ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์ ํ ๋ฌธ์ ๊ฐ๋์ง ์์์ต๋๋ค.
์ ๋ณด์ ๋ํด์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ค๋๋ ์๋ less์ ๊ธฐ๋ณธ ์ค์น(npm ์ฌ์ฉ)์์๋ ์ฌ์ ํ ์๋ํ์ง ์์ต๋๋ค.
๋๋ ์ฌ์ฉํด์ผํ๋ค :
min-height: ~"calc(100% - 262px)"; //calc(100% - 262px);
๋ฒ๊ทธ๊ฐ "๋ซํ"์ผ๋ก ํ์๋์ด ์ ์์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์๋ ค๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
@RenaudParis --strict-math
์๊ฒ ์ต๋๋ค. ์๋ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค! ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ด ํ๋ ๊ฒ์ด ๋ ์ข์ง ์์๊น์?
๊ธฐ๋ณธ? ์๋นํ ๋๋๊ธฐ ๋๋ฌธ์ ๋น์ ์ด ์ด๊ฒ์ ๋ชจ๋ฅผ ๋
๋งค๊ฐ๋ณ์.
์ด์จ๋ ๊ฐ์ฌํฉ๋๋ค!
๋ฅด ๋ฒค. 8 avr. 2016 ร 20:48, Max Mikhailov [email protected] a
์ํฌ๋ฆฌํธ :
@RenaudParis https://github.com/RenaudParis --strict-math
http://lesscss.org/usage/#command -line-usage-strict-mathโ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/less/less.js/issues/974#issuecomment -207553212
ํ์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ๊ฒ์ด ๋ ์ข์ง ์์๊น์?
๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ง๋ค๋ฉด ๊ธฐ์กด์ ๋ง์ Less ์ฝ๋ ๊ธฐ๋ฐ์ด ์์๋ฉ๋๋ค. ํ ๋ฒ(~ v1.4.0
) ์ค์ ๋ก ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ง๋ค๋ ค๋ ์๋๊ฐ ์์์ง๋ง ๋ ๊ฑฐ์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ผ๋ก ์ธํด ์ทจ์๋์์ต๋๋ค... #1880์์ ๋ณด๋ค ์๋กญ๊ณ ๋ ๋ฐฉํด์ ์ธ ๋ฐฉ๋ฒ์ด ๊ฐ๋ฐ๋์์ต๋๋ค(ํ์ง๋ง ์์ง ๊ตฌํ๋์ง ์์์ต๋๋ค).
์๊ฒ ์ต๋๋ค. ์๊ฐ์ ๋ด์ด ์ค๋ช ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. Max!
๋ฅด ์. 9์ 2016๋
13์ 46๋ถ, Max Mikhailov [email protected] a
์ํฌ๋ฆฌํธ :
ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ด ํ๋ ๊ฒ์ด ๋ ์ข์ง ์์๊น์?
๊ธฐ๋ณธ?๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ง๋ค๋ฉด ๊ธฐ์กด์ ๋ง์ Less ์ฝ๋ ๊ธฐ๋ฐ์ด ์์๋ฉ๋๋ค. ํ ๋ฒ
(~v1.4.0์์) ์ค์ ๋ก ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ง๋ค๋ ค๋ ์๋๊ฐ ์์์ง๋ง
๊ทธ๋ฐ ๋ค์ ๋ ๊ฑฐ์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ผ๋ก ์ธํด ๋ฐ๋์ ๋๋ค. ๋ ์๋ก์ด,
๋ ๋ฐฉํด๊ฐ ๋๋ ๋ฐฉ๋ฒ์ #1880์์ ๊ฐ๋ฐ๋์์ต๋๋ค.
https://github.com/less/less.js/issues/1880 (ํ์ง๋ง ๊ตฌํ๋์ง ์์
์์ง)).โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/less/less.js/issues/974#issuecomment -207776654
๋๋ ์ด๊ฒ์ ํด๊ฒฐํ๋ค :
.calc(<strong i="6">@prop</strong>, @val) {
@{prop}: ~"calc(~'@{val}')";
@{prop}: ~"-moz-calc(~'@{val}')";
@{prop}: ~"-webkit-calc(~'@{val}')";
@{prop}: ~"-o-calc(~'@{val}');"
}
.calc(width, "80% - 36px");
command line
ํ๋ฉด ๋ง์ต๋๋ค. less-loader
์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค. ๊ทธ๋์ stackoverflow ์์ ์ด ์๋ฃจ์
์ ์ฐพ์์ต๋๋ค.
๋ด ์ฝ๋์ ๋ณต์ฌํฉ๋๋ค. ์ฌํ๊ฒ๋ ์ ํํ์ง ์์ต๋๋ค. ๊ทธ๋์ ๋ญ๊ฐ ์์ ํ์ต๋๋ค. ํจ๊ณผ๊ฐ์๋ค!
๋ถํํ๋ ๋ช ๋ น์ค ์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค!!๐ ๐ ๐
์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ ์ด์ ๊ฐ ํ์คํ์ง ์์ต๋๋ค. Less๊ฐ ๊ธฐ๋ณธ CSS ๋์์ ๋ณ๊ฒฝํ๋ค๋ ๊ฒ์ ์ด์น์ ๋ง์ง ์์ต๋๋ค.
... Less๋ ๊ธฐ๋ณธ CSS ๋์์ ๋ณ๊ฒฝํฉ๋๋ค.
๊ทธ๋ ์ง ์์ ๊ฒ์
๋๋ค. --strict-math=on
๋ง ์ค์ ํ๋ฉด ๋ฉ๋๋ค( --strict-math=off
์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์์ฒญ๋ ์์ Less ํ๋ก์ ํธ์์ ํธํ์ฑ๊ณผ #1880์์ ์ธ๊ธํ ๋ช ๊ฐ์ง ๊ณ ๋ ค ์ฌํญ์ผ๋ก ์ธํด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ง ์์).
UIkit 3 ํ
๋ง์์ my_theme.less
์์ ์ด๊ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
height: ~"calc(100vh - 20px)";
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์๋ํฉ๋๋ค.
*.less ํ์ผ https://github.com/less/less.js/issues/974#issuecomment -9229470์ ์์ฑํ ๋ ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค.
@lukeapage ๊ฐ์ฌํฉ๋๋ค! ๐ฅ
์๋ ํ์ธ์ @mqliutie calc์ ๋ํ mixin ์ ์์ ์ถ๊ฐํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ํ์ง๋ง Mixin์ ์ปดํ์ผ์ ์ค๋จ์ํค๋ ์ถ๊ฐ ~๊ฐ ์์ต๋๋ค.
๋ฏน์ค์ธ์
.calc(<strong i="8">@prop</strong>, @val) {
@{prop}: ~"-webkit-calc('@{val}')";
@{prop}: ~"-moz-calc('@{val}')";
@{prop}: ~"calc('@{val}')";
}
๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํ์ญ์์ค.
.calc(ํญ, "100% - 60px");
๋ค์๊ณผ ๊ฐ์ด ์ถ๋ ฅํฉ๋๋ค.
๋๋น: ๊ณ์ฐ(100% - 60px);
์ด ๋ฌธ์ ๊ฐ ๋ซํ ์ด์ ๋ ๋ฌด์์ ๋๊น?! ๊ณ ์ ๋์ง ์์์ต๋๋ค.
calc(50% - 20px)
์ธ ๋ ์ฌ์ ํ calc(30%)
๋ฐ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ๊ฒฐ์ฝ ์๋ฌด๋ ์ํ๋ ๊ฒ์ด ์๋ชป ๋์๋ค๋ ์ฌ์ค์ ์ ์ธ ํ๊ณ ๋ 100% ์ ๋ขฐ๋(์: ๋์ผํ ๋จ์)๋ก ๊ณ์ฐํ ์
์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ฌ์ญ์์ค.
@thany
์ด ์ฃผ์์ ์ฐธ์กฐํ์ญ์์ค. ์ํ ์ฒ๋ฆฌ์ ๊ธฐ๋ณธ ์ค์ ์ด ์ญ์ฌ์ ๋ถ์ฐ๋ฌผ์ธ ๋งํผ ์ด๊ฒ์ด ์ ํํ ๋ฌธ์ ๊ฐ ์๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๊ณ ๊ธฐ๋ณธ ์ค์ ์ ์ธ์ ๋ ์ง ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
https://github.com/less/less.js/issues/974#issuecomment -207553212
https://github.com/less/less.js/issues/974#issuecomment -207776654
@jonjohnjohnson ๊ทธ๊ฒ์ ๋จ์ง ๋ฌธ์ ๋ฅผ ๋ค์ ์ธ๊ธํ๋ ๊ฒ์ ๋๋ค. ์๊ฒฉ ๋ชจ๋์์ ์์ ํ๋ฉด(์์ง ์๋ํ์ง ์์์ผ๋ฏ๋ก ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ชจ๋ ์ข ๋ฅ์ ๊ธฐ๋ณธ์ด ์๋ ํ๋๊ทธ๋ฅผ ํ์ฑํํ ํ์๊ฐ ์์ด์ผ ํจ) ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ ธ ์์ด์ผ ํฉ๋๋ค.
์ด๋ป๊ฒ ํํํ๋ ์ด ๋ฌธ์ ๋ ์ด๋ค ์ ์๋ก๋ ํด๊ฒฐ๋์ง ์์ต๋๋ค.
@thany ์ ๋ ๊ฐ๋ฐ์๊ฐ ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ํ๋จํ์์ ์ดํดํ๋ ๋ฐ ๋์์ ์ฃผ๋ ค๊ณ ํ ๊ฒ๋ฟ์ ๋๋ค. ์ด๋ฌํ ์๊ฒฌ์ ๋ฌธ์ ๋ฅผ ๋ค์ ์ค๋ช ํ๋ ๊ฒ์ด ์๋๋ผ ๋ฌธ์ ์ ๋ํ ๊ฐ๋ฐ์์ ์ ์ฅ์ ์ค๋ช ํฉ๋๋ค. ํ์ด์ ๋น๋๋ค.
@thany
๊ทธ๋ฌ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ์ ธ ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ์ฆ์ ์์ฒ ๊ฐ์ ํ๋ก์ ํธ๋ฅผ ์ค๋จ์ํฌ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ๊ธฐ๋ณธ ๋์์ ๋ฌธ์ ๋ก ์ทจ๊ธํ๋ ๊ฒฝ์ฐ ๋ฌธ์ํ๋ ์ต์ ์ ์ค์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ค ์ ์์ ์ํด.
์ด ๋ฌธ์ ๊ฐ ๋ซํ ์ด์ ๋ ๋ฌด์์ ๋๊น?!
๊ธฐ๋ณธ ๋์์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ต์ ํ ๋ก ์ด ์ฌ๊ธฐ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@thany @seven-phase-max๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ถ๋ค๋ฉด #1880์ ๊ธฐ์ฌํ์ธ์. ํด๊ฒฐ์ฑ ์ด ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ตฌํํ ์ค๋น๊ฐ ๋ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ์ ์ถฉ๋ถํ ์ปค๋ฎค๋ํฐ ํ๊ฐ๊ฐ ์์์ต๋๋ค. ๊ธด ๋ด์ฉ์ด์ง๋ง ์๋ฃจ์ ์ ์ฐพ๋ ๋ฐ ํ์ํ ๊ฒ์ ๋๋ค. ์ ์์ ๊ฒํ ํ๊ณ ์ด๋ค ์์ผ๋ก๋ ํ๊ฐํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์: ๊ตฌํํ ์์ ์ ๋งก์ ์ฌ๋.
width: 15%;
height: ~"calc(width)";
๋์ด = ๋๋น๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ
@xiaomizhou66
๊ทธ๊ฒ์ LESS๋ ์ด ๋ฌธ์ ์ ์๋ฌด ๊ด๋ จ์ด ์์ต๋๋ค. ์์ ํ CSS ์ง๋ฌธ์
๋๋ค. "css keep aspect"์ ๊ฐ์ ๊ฒ์ ๊ฒ์ํ๋ฉด ๋ช ๊ฐ์ง ๋ต๋ณ์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ ์ฌ์ ํ โโ๊นจ์ก์ต๋๋ค. calc(100vh - 138px)๋ -38px๋ก ๋์ต๋๋ค.
@์๋ผํํ ๋
Less 3.x์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ณ๋์ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ์์ฑํ์ญ์์ค.
์ด์ Less ๋ฒ์ ์ ๊ฒฝ์ฐ ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์๋๋ ๋์์
๋๋ค(์์ ๊ฒ์๋ฌผ์์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ํ์ธํ์ธ์).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ทธ๋ค์ ์๋ง๋ ์ค๋ณต์ผ๋ก ๋ซํ์ ๊ฒ์ ๋๋ค. calc์ ๋ํด์๋ ์ฐพ์ ์ ์์ง๋ง # 146 #122 ๋ฐ #915๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ:
width: ~"calc(100% - @{id1width})";
- ๋ณ์ ์ฃผ์์ ์ค๊ดํธ๋ฅผ ์ฃผ๋ชฉํ์ญ์์ค.์ฐ๋ฆฌ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋๊ดํธ ์์ ์๋ ๊ฒ๋ง ํ๊ฐํ๋ ์์คํ ์ผ๋ก ์ด๋ํ๊ณ ์์ต๋๋ค.