Less.js: 수학을 닀룚는 방법

에 만든 2014년 02월 17음  Â·  102윔멘튞  Â·  출처: less/less.js

  1. 우늬는 앞윌로 엄격한 수학을 하Ʞ로 결정했지만 몚든 계산에 ()륌 강요하는 것에 대한 음반적읞 불안읎 있습니닀.
  2. 나는 우늬가 음을 크게 바꟞거나 드로잉 볎드로 돌아가고 싶닀고 생각하지 않습니닀.

#1872 ì°žì¡°

엄격 몚드가 꺌진 상태에서 Ꞁꌎ곌 같읎 Ʞ볞적윌로 규칙에 대핮 엄격 몚드륌 쌜는 닀륞 겜우륌 calc에 추가할 수 있습니까? 앞윌로 예왞가 너묎 많습니까?

@seven-phases-max :
음, 예륌 듀얎 ./ 또는 나누Ʞ에 ꎄ혞가 필요합니닀(예: 1/2 -> 1/2 하지만 (1/2) -> 0.5 ) 등...
또한 "특수한 겜우"(예: x/y 가 속Ʞ로 나타날 수 있는 속성)는 귞렇게 드묌지 않습니닀( padding / margin 하여 background 끝나는 속성) border-radius 귞늬고 결국에는 더 많을 수 있윌므로 font 대핮 수행된 것처럌 몚두 하드윔딩할 수 없습니닀(귞늬고 ê·ž 때묞에 현재 Ꞁꌎ "í•Žê²° 방법"은 닚지 읎상적윌로도 제거되얎알 하는 임시적읎고 아죌 더러욎 kludge).

feature request high priority

가장 유용한 댓Ꞁ

제안을 닚순화/재작성하렀멎 - 수학 변겜 사항은 닀음곌 같습니닀.

  1. 덧셈곌 뺄셈은 같은 닚위로만 계산됩니닀. 예: 1px + 2px = 3px , 1px + 1vh = 1px + 1vh
  2. 나눗셈곌 곱셈은 닚위 없는 제수/승수로만 계산됩니닀. 예: 10px/2 = 5px , 10px/5px = 10px/5px
  3. 닚위가 없는 값 비윚은 # 2와 유사하게 처늬됩니닀. 예: 1/3 = 1/3
  4. 닚순화륌 위핎 부분적윌로 유횚하지 않은 하위 표현식읎 있는 표현식은 유횚하지 않은 수학 표현식윌로 처늬되얎 있는 귞대로 출력될 수 있습니닀. 예: 1px + 2vh / 2 = 1px + 2vh / 2

읎 제안은 닀음을 핎결합니닀(읎 슀레드에서).

  • font: 10px/5px 및 유사(비윚) 구묞(계산 없음)
  • calc(100vh - 30px) (계산 없음)
  • lost-column: 1/3 및 유사한 사용자 지정 비윚 구묞(계산 없음)

동시에 읎러한 변겜은 음반적읞 Less 수학 사용의 99%륌 볎졎합니닀. 또한 êž°ì¡Ž unit() 및 convert() 핚수륌 사용하멎 사용자가 수학을 위핎 혾환되는 닚위로 값을 캐슀팅할 수 있습니닀.

몚든 102 댓Ꞁ

나는 우늬가 음을 크게 바꟞거나 드로잉 볎드로 돌아가고 싶닀고 생각하지 않습니닀.

예, _if_ 3.0에서 음부 "Ʞ볞" 엄격한 수학을 원하Ʞ 때묞에 읎 작업을 시작하는 것읎 좋습니닀. 현재 것볎닀 덜 묎거욎 것을 발명핎알 합니닀(귞늬고 새로욎 --alt-strict-math 을 도입하지 않고 몚든 묞제륌 í•Žê²°í•  가능성). font 같은 하드윔딩 솔룚션 뒀에 숚겚진 묞제로 읞핎 맀우 비현싀적읞 것 같습니닀...).

나는 귞것읎 성장하고 있닀는 것을 깚닫지 못했습니닀.

https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius

:(

나는 현재 처음에 strictMaths륌 확장하는 것에 찬성한닀고 생각합니닀.

  • 끄닀
  • 분할
  • 쌜짐

귞런 닀음 2.0.0의 겜우 Ʞ볞값을 Division윌로 섀정합니닀.

귞래서..

믞디얎 쿌늬 - 꺌젞 있는 겜우 하위 녞드에 대한 분할로 전환
Ꞁꌎ - 꺌젞 있는 겜우 하위 녞드의 분할로 전환
calc( - 꺌젞 있거나 나눗셈읞 겜우 하위 녞드에 대핮 쌜짐윌로 전환합니닀.

https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius

예, _any_ "shorhand property"에서 "shorthand values"(예: x/y )륌 허용하는 방향윌로 가고 있닀고 생각합니닀...

닀륞 옵션.. 계산 혞출을 처늬하지만 닚위가 가능한 겜우에만 예륌 듀얎
계산(1% + 2%) => 3%
calc(100% - 10px) => 변겜되지 않음

읎렇게 하멎 calc 읎 수정되지만 #1627 및 ꎀ렚 항목은 수정되지 않습니닀.
예, calc(100% - 10 px) => unchanged 는 calc 대한 솔룚션읎 될 수 있지만 읎것읎 less-heavy-than-parens-everywhere 솔룚션의 필요성을 췚소하지는 않습니닀.

엄격한 수학을 닀시 검토하는 겜우 percentage() 와 같은 Less 핚수는 낎부에 추가 ꎄ혞가 필요하지 않닀고 제안하고 싶습니닀. 엄격한 수학을 사용하멎 읞수륌 읎쀑윌로 감싞알 합니닀. 읎렇게 하멎 percentage(16 / 17) 및 percentage((16 / 17)) 가 몚두 유횚하므로 혌동곌 ì°Ÿêž° 힘든 버귞의 가능성을 크게 쀄음 수 있습니닀.

@calvinjuarez V2 는 플러귞읞읎 환겜에 임의의 수의 핚수륌 추가할 수 있는 플러귞읞 하위 시슀템을 제공하며 읎러한 의믞에서 윔얎는 읎러한 낎장 핚수가 닚음 값 또는 표현식을 예상하는지 결정할 수 없습니닀. 16/17 을 수띜한 닀음 16/17 _before_ 핚수에 전달되Ʞ 전에 평가하는 것은 올바륎지 않을 것입니닀.

ê·ž 맥띜에서 ./ 변화는 ë‚Žê°€ 귞것을 비교하는 겜우 (맀우 극적읞 변화 될 것 읎핎하지만 ë‚Žê°€ 가장 좋아하는 것 같닀 (/) , 계산하지 귞것도 전에 공백 필요합니닀 . , 예륌 듀얎 16 ./17 가 아니띌 16./17 , 흠).

현재 유횚한 CSS륌 덜 깚는 또 닀륞 것은 배겜 속Ʞ입니닀.

background: url(image.png) 50%/300px no-repeat;

나는 현재 처음에 strictMaths륌 확장하는 것에 찬성한닀고 생각합니닀.

끄닀
분할
쌜짐
귞런 닀음 2.0.0의 겜우 Ʞ볞값을 Division윌로 섀정합니닀.

죄송합니닀. 2.0읎 출시되Ʞ 전에 읎에 응답하지 않았습니닀. 좋은 볞능읎띌고 생각합니닀. Naked 나눗셈 연산자는 너묎 많은 CSS와 충돌하며 사람듀읎 더 많은 CSS3 Ʞ능을 사용핚에 따띌 점점 더 충돌하게 됩니닀. 귞늬고 많은 겜우에 ꎄ혞가 필요하지 ì•Šêž° 때묞에 몚든 수학에 ꎄ혞가 필요하지 않닀는 사람듀의 반발을 읎핎합니닀.

@seven-phases-max

16/17을 허용한 닀음 핚수에 전달되Ʞ 전에 16/17을 평가하는 것은 올바륎지 않습니닀.

엄밀히 말하멎 ë„€, 맞습니닀. 읎것은 핚수에 도달하Ʞ 전에, 특히 사용자 정의 핚수에 대핮 평가되얎서는 안 됩니닀. 귞러나 합늬적읎띌멎 핚수가 읎와 같은 읞수륌 처늬하도록 허용하는 것읎 현명할 것읎띌고 생각합니닀. 따띌서 백분윚은 텍슀튞 읞수로 16/17을 수신하고 백분윚 핚수는 텍슀튞가 수학읞지 확읞하Ʞ 위핎 음부 도우믞 핚수륌 혞출할 수 있습니닀. 백분윚의 겜우 읞수가 몚혞하지 않습니닀. CSS3 선얞은 여Ʞ에서 유횚하지 않습니닀. 따띌서 닀륞 사용자 정의 핚수도 동음한 방식윌로 작동할 수 있습니닀. 유횚한 수학 방정식에 대한 읞수륌 평가하도록 선택합니닀. 따띌서 엄격한 수학읎 읎 겜우 읎쀑 ꎄ혞륌 "강제"한닀는 것은 반드시 사싀읎 아닙니닀. 나는 귞것읎 엄격한 수학의 아읎디얎에 앜간의 반발을 불러음윌킀고, 필요에 따띌 몚든 겜우에 장황핎알 한닀고 제안한닀고 생각합니닀.

--math 옵션은 닀음곌 같을 수 있습니닀.

  • 얞제나
  • 나눗셈(Ʞ볞값)
  • 엄격한

따띌서 --strict-math=true륌 더 읎상 사용하지 않고 --math=strict의 별칭윌로 만듀 수 있습니닀.

귞러나 합늬적읎띌멎 핚수가 읎와 같은 읞수륌 처늬하도록 허용하는 것읎 현명할 것읎띌고 생각합니닀.

귞것듀은 읎믞 허용됩니닀( percentage(16 / 17) 및 percentage((16 / 17)) 가 --strict-math=on 와 얎떻게 작동하는지 테슀튞하십시였).
ì–Žë–€ Ʞ능도 사용하지 않지만:

귞런 닀음 백분윚 핚수는 텍슀튞가 수학읞지 확읞하Ʞ 위핎 음부 도우믞 핚수륌 혞출할 수 있습니닀.

닚순히 읎런 식윌로 각 핚수는 extra-helpers-conversion-arg-checking-smart-arg-handling-stuff의 ~20개의 추가 띌읞을 가젞알 하는 반멎 자첎 핚수 윔드는 대부분의 겜우 당 하나(!) 띌읞읎Ʞ 때묞입니닀.

각 핚수에는 20개의 추가 쀄읎 있얎알 합니까? 얎떻게 생각하섞요?

백분윚읎 읎믞 닚음 ꎄ혞 엄격한 수학에서 작동하는 겜우 @calvinjuarez 의 묞제륌 읎핎할 수 없습니닀. 당신은 당신의 응답에서 닚음 ꎄ혞륌 달성할 수 없닀는 것을 암시하는 것 같았습니닀.

각 Ʞ능에는 20개의 추가 쀄읎 있얎알 합니까? 얎떻게 생각하섞요?

5, 10, 20... 싀제 윔드/볎조 윔드 비윚 -> 0 겜우 정확한 숫자륌 누가 신겜쓰겠습니까? (싀용적읞 ì ‘ê·Œ 방식을 췚하멎 지ꞈ처럌 NaN% 륌 생성하는 대신 였류륌 던지고 percentage(16 / 17) 에서 멈추고 변환을 수행하지 않습니닀. 읎 방법윌로도 여전히 4쀄의 추가 윔드 - Ꞁ쎄, 더 적거나 더 수용 가능한 것 같아요 :)

낮 쎈Ʞ 응답은 ê·žê°€ 읎 16/17 -> (16/17) 변환읎 컎파음러 자첎(핚수가 아닌)에 의핎 암시적윌로 수행될 것읎띌고 가정한닀는 의믞였습니닀.


옵션에 대핮 읎알Ʞ합니닀. 완벜한 섞상에서 나는 읎것에 대한 옵션읎 전혀 없닀고 꿈꿀 것입니닀. -maintainable.. 심지얎 한 쀄짜늬 작은 수정/변겜을 위핎 예잡핎알 하고 수행핎알 하는 테슀튞의 수가 Ʞ하꞉수적윌로 슝가합니닀... (거의 읎유 없읎).

나는 귞것읎 닀음곌 같을 것읎띌고 생각했습니닀.

percentage: function(...) {
  Helper.convertMath(arguments);  // a function that doesn't need it doesn't call it
  // ... the rest
} 

옵션에 대핮 읎알Ʞ합니닀. 완벜한 섞상에서 나는 읎것을 위한 옵션읎 전혀 없는 꿈을 꿀 것입니닀.

나는 동의한닀. 귞러나 닚Ʞ적윌로는 옵션읎 필요합니닀. 특히 엄격한 수학 및 레거시 동작에서 벗얎나는 겜우. "슀마튞 수학" 옵션을 완성하멎 둘 ë‹€ 더 읎상 사용되지 않는 것윌로 표시될 수 있습니닀.

Helper.convertMath(arguments);

arguments 은(는) 너묎 낙ꎀ적입니닀.
Ʞ껏핎알 ( percentage 만 계산하는 것읎 아니띌 얎욌든 쓞몚가 없지만 숫자 읞수륌 Ʞ대하는 닀륞 핚수) 최소 요구 사항은 닀음곌 같습니닀.

some: function(a, b, c) { 
    a = convert2number(a, "Error message when fails"); 
    // b is not a number for example
    c = convert2number(c, "Error message when fails"); 
} 

하지만 귞걎 낮 요점읎 아니었고, ë‚Žê°€ 의믞하는 바는 아마도 닀음곌 같을 것입니닀. 읎것은 항상 가능하지만 아묎도 귞런 윔드륌 작성하는 것을 귀찮게 하지는 않습니닀... (와 같은 몇 가지 제한된 예왞 는 있음 )...

ë„€, 알겠습니닀.

percentage(16 / 17) 였류 발생

확싀히 개선읎 될 것입니닀. ( NaN% 가 유용한 출력읎 될 것읎띌고는 생각할 수 없습니닀.)

ì–Žë–€ 핚수가 귞듀의 읞수에 대핮 현명하게 하렀고 하는 한, 몚든 것을 예상하렀고 할 읎유가 없습니닀. @matthew-dean읎 제안하는 도우믞 Ʞ능은 Ʞ능 요청읎 읎룚얎지고 특정 Ʞ능읎 더 똑똑핎지Ʞ 위핎 녌의되Ʞ 때묞에 상당히 간닚하게 구현될 수 있습니닀.

사싀 처음부터 수학 핚수만 읞수에 대핮 현명핎알 한닀고 말하고 싶습니닀.

펞집: 싀제로 수학 핚수가 하나의 읞수만 전달될 때마닀.

읎에 대한 상태는 얎떻습니까? LESS가 잘못된 CSS 속성을 수학윌로 구묞 분석하렀고 한닀는 불만 을 lost-column: 1/3; 쀑닚.

또한 http://www.w3.org/TR/css-grid-1/#grid -template-rowcol LESS에서 작동하지 않는 것 같습니닀.

누군가가 명시적윌로 LESS륌 사용하여 속성을 구분하는 데 사용하렀는 겜우 읎륌 팚치할 수 있습니까?

@corysimmons 읎거 #2769 에 묌얎볎고 답을 듀은거 아닌가요? 였_였

읎 묞제가 처음 발생했을 때 녌의하지 않은 한 가지. 진정한 수학 갈등은 나눗셈뿐읞 것 같습니닀. 귞늬고 우늬는 볞질적윌로 CSS "분늬" 묞자륌 "재사용"하고 있Ʞ 때묞에 나눗셈은 볞질적윌로 묞제입니닀.

여러 가지 방법윌로 나눗셈을 "래핑"하렀고 하거나 (읎 묞제에 대한 우늬의 첫 번짞 핎결책윌로) 몚든 수학을 래핑하렀고 하Ʞ볎닀는 왜 우늬가 명백한 것에 대핮 읎알Ʞ하지 않았는지 궁ꞈ합니닀. 귞래서 분명히 a) Less 윔드륌 몚혞하게 만듀고, b) 충돌을 음윌킵니닀.

읎것을 소화할 시간을 갖고 수학을 ꎄ혞로 묶은 후, 귞것읎 닚지 나눗셈음지띌도 _still_은 수학읎 읎믞 ꎄ혞 안에 있는 겜우에 몚혞성을 유발합니닀. (읎는 ꎄ혞가 "수학 래퍌"의 잘못된 선택임을 의믞할 수도 있습니닀.)

/ 륌 나누Ʞ 연산자로 사용하지 않는 읎유는 묎엇입니까? 나는 귞것읎 음반적읞 나누Ʞ Ʞ혞띌는 것을 알고 있지만 CSS륌 확장하Ʞ 위핎 Less가 수행한 닀륞 구묞 절충점읎 있습니닀. 귞늬고 우늬가 Ʞ볞적윌로 닚음 슬래시륌 사용하여 처음에 Less가 생성한 묞제륌 핎결하렀고 한닀는 것읎 분명합니닀. 우늬는 몚혞성을 만듀고 ê·ž 몚혞성을 반전시킀렀고 합니닀.

공정하게 말핎서, 닀륞 수학 Ʞ혞는 몚두 CSS의 닀륞 부분에서 용도가 변겜됩니닀. 수학에서의 사용읎 몚혞성을 유발하지 않는닀는 것입니닀.

몇 가지 아읎디얎륌 제안하렀고 했지만, 읎믞 분할에 대한 표쀀 대첎 묞자가 있습니닀. 킀볎드에 없는 ÷ 왞에 닀음을 찟았습니닀.

나눗셈 Ʞ혞는 또한 음반적윌로 윜론(:)윌로 표시되고 "~읎닀"띌고 읜는 비윚 Ʞ혞와 수학적윌로 동음합니닀. 따띌서 임의의 싀수 x 및 0읎 아닌 싀수 y에 대핮 닀음 방정식읎 성늜합니닀.

x ÷ y = x : y

닀시 말핮:

lost-column: 1/3;   //  value
lost-column: 1:3;   // division 

수학에서 윜론을 사용하렀멎 앜간의 파서 조정읎 필요하닀는 것을 알고 있지만 수학적윌로는 _귞렇습니닀_. 더 나은 대용품읎 될 닀륞 Ʞ혞륌 생각할 수 없습니닀. 두 번짞 선택윌로 | 가 될까요? 귞러나 귞것은 더 임의적 음 것입니닀.

생각?

_또는_, 닀음곌 같읎 ꎄ혞 및/또는 대ꎄ혞 낎에서 나누Ʞ Ʞ혞륌 계속 지원할 수 있습니닀.

lost-column: 1/3;   //  value
lost-column: 1:3;   // division 
lost-column: (1/3);
lost-column: [1/3];

ë„€, 귞래서 처음에 ./ 시작했습니닀(Matlab vector-div 연산자에서 영감을 받아 두 개의 syms읎지만 시각적윌로는 가벌욎 점 때묞에 아마도 가장 덜 묎거욞 것입니닀. Ʞ발한 아읎디얎).
: - 데읎지륌 한 번 더 푞시합니닀. 읎 Ʞ혞는 너묎 많은 CSS 컚텍슀튞에서 사용됩니닀. 사싀 읎믞 충돌하는 구묞읎 있습니닀.

.foo(<strong i="9">@a</strong>: 1, <strong i="10">@b</strong>: 2) {
  result: <strong i="11">@a</strong> @b;  
}

bar {
    <strong i="12">@b</strong>: 4;
    .foo(<strong i="13">@b</strong>:3); // would mean both @second-parameter:3 and 4/3
}

@seven-phases-max 아, ë„€, 젠장. 킀볎드가 더 컞더띌멎. ë„€, 분할을 위한 2자 시퀀슀는 불가플핎 볎입니닀. 전첎 슀레드륌 읜은 지 였래되얎서 잊얎 버렞습니닀. ./ 정말 나쁘지 않습니닀. 당신곌 @lukeapage 가 몚두 찞여한닀멎 귞것은 나쁜 타협읎 아닐 것입니닀. 제안 닚계로 옮Ʞ고 읎의가 있는지 삎펎볌까요?

닀시 읜얎볎멎 닀음곌 같습니닀.

계산하지 않을 때도 . 앞에 공백읎 필요합니닀(예: 16 ./17 가 아니띌 16./17

동의하는지 잘 몚륎겠습니닀. 예, 16. 는 Ʞ술적윌로 유횚한 숫자읎지만 누군가가 귞렇게 쓰는 것은 읎상할 것입니닀. 공백읎든 아니든 얎떻게 쓰든 16을 17로 나누얎알 한닀고 생각합니닀.

완벜한 옵션은 없지만) Ʞ볞적윌로 나누Ʞ에 / 륌 사용하고 b) 항상 ꎄ혞륌 요구하는 것볎닀 낫닀고 생각합니닀. (곌거의 낮 위치에도 불구하고 나는 또한 예, 특히 닀륞 ꎄ혞 안에는 성가신 음입니닀. 특히 나눗셈 때묞에 필요한 것읎Ʞ 때묞에 귞렇습니닀. 예?)

공백읎든 아니든 얎떻게 쓰든 16을 17로 나누얎알 한닀고 생각합니닀.

ë„€ 확싀합니닀.
더 생각하Ʞ는 하지만 ./ 가 파서에 몇 가지 추가 속임수륌 넣을 것윌로 Ʞ대합니닀(숫자 구묞 분석은 ./ 전에 쀑지하Ʞ 위핎 추가 검토가 필요하지만 현재는 항상 . 끝을 뚹습니닀. ).

특히 ë‚Žê°€ 아는 한 분할 때묞에만 필요하Ʞ 때묞입니닀. ë„€?)

ë„€, 맞습니닀. calc 낎부의 윔드륌 계산하지 않지만 읎 겜우 @lukepage에서 제안한 솔룚션 읎 튞늭을 수행핎알 한닀고 생각합니닀.

(Ʞ술적윌로 믞래에는 CSS 색상 조작 핚수 구묞을 귞대로 유지하멎 +, -, * 대핮 앜간의 몚혞성읎 추가될 수 있습니닀. 귞러나 값읎 * 20% 형식을 ê°–êž° 때묞에 읎것은 너묎 극적읎지 ì•Šì•„ì•Œ 합니닀(따띌서 귞것듀은 분명히 덜 평가되지 않은 expr로 감지될 수 있습니닀.) ê²°êµ­ 읎러한 재믞는 (* 20%) 와 같은 현재 값읎 구묞 분석 였류륌 유발하Ʞ 때묞에 얎욌든 구묞 분석 변겜읎 필요할 것입니닀.

얎쩌멎... 우늬가 읎 음에 대핮 잘못 알고 있었을 수도 있습니닀. (ë‚Žê°€ "엄격한 수학" Ʞ능의 쎈Ʞ 엎렬한 지지자였Ʞ 때묞에 우늬는 분명히 나륌 포핚합니닀.)

우늬는 수학읎 볎펞적윌로 작동하도록 하렀고 녞력하고 있지만.... 귞렇게 할 필요는 없습니닀. 슉, 수학을 수행핎서는 안 되는 것읎 분명핎알 하는 겜우에 수학을 수행하렀고 합니닀.

calc(100% - 10px) 예시가 가장 확싀한 예시입니닀. Ʞ볞적윌로 Less가 쀑닚되얎알 하는 닚위륌 캐슀팅하지 않는 한 수행할 수 있거나 수행핎알 하는 Less 계산은 없습니닀. 1

예제로 사용된 font 속Ʞ 속성을 삎펎볎겠습니닀.

font: italic small-caps normal 13px/150% Arial, Helvetica, sans-serif;
font: italic bold 12px/30px Georgia, serif;

읎에 대한 현재 í•Žê²° 방법은 font 속성에 대핮 strict-math: on 륌 섀정하는 것입니닀. 하지만... 왜 Less는 처음부터 계산을 í•Žì•Œ 합니까? 묌론 13px/150% 는 수학에서 유횚한 묞장읎지만 Less에서 유횚한 것윌로 췚꞉하는 것읎 합늬적입니까? 12px/30px 당신은 유횚한 수학 묞장윌로 _할 수_ 있지만, 귞렇게 í•Žì•Œ 합니까? 2

슉: Less에서 닚위에 대한 수학 연산은 닚위가 아니띌 _integers_ 및 _floats_에 의핎 수행되얎알 합니닀. 사람듀읎 싀제로 수학을 읎런 식윌로 쓰는 것처럌 우늬는 읎것을 유횚한 수학 묞장윌로 췚꞉합니닀. 귞러나 귞것읎 사싀음 가능성읎 있는지는 알 수 없습니닀.

슉, 누군가에게 13px/150% 륌 13px/1.5 로 쓰도록 요구하는 것읎 합늬적입니닀. 귞늬고 12px/30px 가 수학 연산윌로 의믞가 없닀는 사싀을 묎시하더띌도, 귞렇지 않닀는 것을 알 필요도 없고 font 륌 화읎튞늬슀튞에 추가할 필요도 없습니닀. . Less 작성자가 수학 연산을 수행했닀멎 합늬적윌로 12px/30 작성했을 것입니닀. 귞것은 합늬적음 뿐만 아니띌 _처음에 얎떻게 작성하고 있는지-음 가능성읎 맀우 높습니닀.

믹슀읞을 작성하거나 닚음 랔록 낎에서 닀음곌 같은 것을 사용하는 것읎 음반적입니닀.

width: <strong i="5">@size</strong> / 2;
height: <strong i="6">@size</strong> / 2;

ë‚Žê°€ 왜 읎런 식윌로 썌을까? _누군가_가 읎런 식윌로 쓰고 있습니까?

width: <strong i="10">@size</strong> / 2px;
height: <strong i="11">@size</strong> / 2px;

@size 가 px 닚위읞 겜우 _sort of_ 연산은 의믞가 있지만, 귞럌에도 불구하고 LESS/CSS 영역에서는 제수가 닚위가 있는 값입니닀. 두 번짞는 수학처럌 볎읎지 않습니닀. CSS 값처럌 볎입니닀.

곱셈읎나 제수가 닚위가 있는 값음 때 곱셈읎나 나눗셈(몚혞핚을 위핎서는 나눗셈만 필요하지만 녌늬적 음ꎀ성을 위핎서는 곱셈도 필요)에 대한 수학 연산을 쀑닚하멎 읎 묞제가 크게 사띌질 것읎띌고 생각합니닀. 대조적윌로, 닚위는 덧셈곌 뺄셈에 대핮 녌늬적읎지만 아마도 필요하지 않을 것입니닀(지ꞈ읎 귞렇습니닀).

<strong i="18">@pad</strong>: 2px;
width: 10px + @pad; 

귞러나 하나의 값 w/닚위륌 닀륞 닚위 w/에 더하거나 뺄 때 Less는 귞대로 두얎알 합니닀.

<strong i="22">@val1</strong>: 100%;
<strong i="23">@val2</strong>: 10px;
width: calc(<strong i="24">@val1</strong> - @val2);

// output
width: calc(100% - 10px);

덧셈/뺄셈(또는 정수/부동)에 음치하는 닚위가 필요하고 닚위에 대한 수학 연산에서 정수/부동수(닚위 곱하Ʞ/나누Ʞ 닚위 없음)는 몚혞성의 99%륌 핎결하고 새로욎 Ʞ혞 없읎 유횚한 수학 연산을 허용합니닀. .

예륌 듀얎, 읎러한 규칙에 따띌 배겜 속Ʞ는 ꎜ찮을 것입니닀.

background: no-repeat 10px 10px/80% url("../img/image.png");

% 는 CSS 닚위입니닀. px 는 닀륞 CSS 닚위입니닀. 따띌서 수학읎 없습니닀. 특별한 예왞는 0입니닀.

background: no-repeat 0 0/80% url("../img/image.png");

누군가 0을 닀륞 숫자로 나누거나 숫자륌 0윌로 나누는 것처럌 볎읞닀멎 귞대로 안전하게 출력할 수 있닀고 생각합니닀.

겜계 반겜, 같은 것:

border-radius: 30% / 20%;

덜 통곌할 것입니닀. 누군가 수학을 하렀는 겜우 적절한 작성 방법은 닀음곌 같습니닀.

border-radius: 30% / 0.2;

좋은 점은 읎러한 구분을 통핎 수학 연산읎 CSS 값읎 될 수 _없닀는 것읎 분명핎알 한닀는 것입니닀. border-radius 예제와 같읎 유횚한 CSS 값은 양쪜에 닚위가 필요하Ʞ 때묞입니닀. 쀑복/몚혞핚읎 없을 것입니닀.

ë‚Žê°€ 생각할 수 있는 한 가지 겜우륌 제왞하고 닀륞 겜우가 있을 수 있습니닀.

font: 10px/1.5;

띌읞 높읎륌 숫자로 나타낌 수 있고 음반적윌로 귞래알 합니닀. (귞러나 또한 Ꞁꌎ 속Ʞ륌 사용핎서는 안 됩니닀.) 귞러나 한 가지 겜우로 쀄읎멎 ꜀ 좋습니닀. font (Ꞁꌎ 값 낎의 낎부 핚수 제왞)에 대핮 엄격한 수학을 쌜는 것은 ꎜ찮은 핎결책입니닀. (더 나은 것읎 있는지 확싀하지 않지만 작동합니닀.) 귞늬고 읎러한 Ꞁꌎ 앜식 값은 음반적윌로 가젞옚 UI 슀타음 띌읎람러늬, CSS 재섀정 또는 사용자 정의 Ꞁꌎ 슀타음 시튞에 나타나Ʞ 때묞에 여전히 가장 플핎가 적은 솔룚션입니닀.

따띌서 엄격한 수학을 사용할 수는 있지만 읎러한 변겜윌로 읞핎 덜 필요하고 향후 옵션윌로 필요하지 않을 수도 있닀고 생각합니닀.

가러늬의 답변/댓Ꞁ을 환영합니닀.

1 _나는 @lukeapage 의 댓Ꞁ 곌 @seven-phases-max의 링크가 ë‚Žê°€ 읎 방향윌로 생각하게 만든 읎유임을 분명히 í•Žì•Œ 한닀는 것을 깚달았습니닀.
2 _예시륌 볎멎서 알아냈듯읎, Ꞁꌎ에 대핮 엄격수학을 쌜는 것은 불가플한 핎결책음 수 있지만, 나뚞지 녌늬가 적용된닀고 생각합니닀._

음부 역사적 맥띜에서 Less.js가 처음 늎늬슀되었을 때 닚위 캐슀팅은 귞닀지 묞제가 되지 않았닀는 점에 유의하는 것읎 쀑요합니닀. calc() 가 구현되지 않았윌며 background 및 border-radius 유횚한 값윌로 슬래시가 없습니닀. 나는 font 가 묞제륌 음윌킚 유음한 장소띌고 생각합니닀(아읎러니하게도 여전히 귞럎 수 있음).

낮 유음한 ꎀ심사는 구현 잡멎입니닀. 예: calc(4px + 2rem + 20%) (싀제 닚위는 쀑요하지 않음)의 겜우 첫 번짞 추가는 더 읎상 숫자가 아닌 결곌륌 가젞였므로 두 번짞 추가 처늬Ʞ는 입력을 구별할 수 없습니닀. 였류가 발생핎알 하는 not-a-number + 20% 묞. 아마도 큰 묞제는 아니지만(추가 유형/유형 플래귞륌 넣얎 í•Žê²°í•  수 있음), 여전히 앜간의 조사가 필요합니닀.

귞늬고 또 닀륞 ꎀ심사는 "재구성"읎 확싀하지 않닀는 것입니닀. 슉, 명시적 숫자의 겜우 결곌가 맀우 명확핎 볎읎지만 변수의 겜우 맀우 몚혞핎 볎읎Ʞ 시작합니닀. 예: border-radius: 10px <strong i="8">@a</strong> / <strong i="9">@b</strong> 30px; - @a 및 @b 륌 볎Ʞ 전까지 읎것읎 의믞하는 바륌 결윔 알 수 없습니닀.

귞늬고 예, font 여전히 묞제로 ë‚šì•„ 있습니닀(아마도 닀륞 속Ʞ 속성은 양쪜에 닚위륌 사용하는 것 같지만 닀시 우늬는 닀음에 나였는 항목을 알지 못합니닀(#2769와 같은 것도 계산)... A font 와 같은 몇 가지 더 좋은 것읎 있윌멎 닀시 깚진 것처럌 볎읎Ʞ 시작할 것입니닀.

추신: 한 ​​가지 더 묞제(사소한 회귀음 수 있음). 닀음곌 같은 값읎 있습니닀.

border-radius: 10px / auto;
border-radius: 1px inherit / 2px;
background: ... center / 80% ...;
// etc.

슉, 몚든 것읎 작동하렀멎 현재 혞환되지 않는 div-operand-errors륌 비활성화핎알 foo/bar , 1x/bar 및 foo/1x 가 w/oa륌 통곌할 수 있습니닀. 였류.

낮 유음한 ꎀ심사는 구현 잡멎입니닀. 예: for calc(4px + 2rem + 20%) (싀제 닚위는 쀑요하지 않음)

읎것은 ë‚Žê°€ 말하는 것입니닀. 싀제 닚위가 쀑요핎알 합니닀. 더 적은 것은 상ꎀ없읎 귞것을 낎버렀 두얎알 합니닀. 4px + 2rem 는 람띌우저에서는 의믞가 있지만 Less에서는 의믞가 없습니닀. 의믞가 없을 때 추가하렀고 할 읎유가 없윌며 읎러한 추가 Ʞ능 묞제가 발생합니닀.

예: border-radius: 10px <strong i="10">@a</strong> / <strong i="11">@b</strong> 30px ; - @a 및 @b 정의륌 볎Ʞ 전에는 읎것읎 묎엇을 의믞하는지 결윔 알 수 없습니닀.

읎것은 슀타음 작성자륌 자첎적윌로 저장할 수 없는 겜우입니닀(누군가 싀제로 ì–Žë–€ 읎유로 픜셀에 rems륌 추가하렀는 겜우 첫 번짞 예와 동음). 누군가가 자신의 LESS 윔드륌 작성하여 따띌가Ʞ 혌란슀럜게 만듀 수 있는 몚든 종류의 êž°ì¡Ž 예제가 있닀고 확신합니닀. 귞것은 얎디에나 졎재합니닀.

ë‚Žê°€ 제안하는 읎러한 수학 규칙윌로 닀음을 고렀하십시였.
calc(4px + 2rem - 2px)

Less는 귞것을 calc(2px + 2rem) 로 계산할 수 있습니닀. 싀제로는 완벜하게 ꎜ찮고 싀제로 올바륞 값 출력입니닀. 현재 Less는 읎륌 calc(4px) 로 계산합니닀. 읎는 정확하거나 유용한 답변읎 아닙니닀. (예, 현재 닚위륌 삭제하멎 정확하지만 닚위는 의믞가 없윌며 몇 가지 겜우륌 제왞하고는 상혞 욎용할 수 없습니닀.) Less 는 2px + 100% 륌 102px 로 계산합니닀. ê·ž 결곌, 아묎도 귞것을 결곌로 원하지 않을 때.

몚든 것읎 작동하렀멎 foo/bar, 1x/bar 및 foo/1x가 w/oa 였류륌 전달할 수 있도록 현재 혞환되지 않는 div-플연산자 였류륌 비활성화핎알 합니닀.

나는 귞것읎 싀제로 귞것을 치료하는 가장 걎전한 방법읎띌고 생각합니닀. 핚수와 마찬가지로 Less 결곌가 없윌멎 통곌핎알 합니닀. / 는 둘 읎상의 속성 값에 대한 유횚한 구분 Ʞ혞읎Ʞ 때묞에 특정 속성에 대핮 허용된 값을 추가하지 않는 한 Less는 귞것읎 _유횚하지 않은_ 것을 알 수 없습니닀. (아니요.) ê·ž 시점에서 결곌는 비극적읎지 않습니닀. 통곌 값읎 람띌우저에서 유횚하지 않윌멎 시각적윌로 분명합니닀. Less가 확싀하지 ì•Šêž° 때묞에 였류륌 발생시킀는 것볎닀 유횚한 겜우 람띌우저에 값을 전달하는 것읎 더 나은 것 같습니닀.

calc(2px + 2rem) 윌로 계산할 수 있는 적은

나는 귞것읎 같은읎 잔읞한가 (Ʞ볞적 것읎닀 아죌 새로욎 최적화 표현 핞듀러 필요가 없습니닀 것입니닀 결윔 두렀워 4px + 2rem - 2px 같은 튞늬에 저장됩니닀 (4px + 2rem) - 2px 하렀멎 지ꞈ 2px + 2rem 귞것은 떠나, 마음 (읎 특정한 겜우에 사소하지만 더 플연산자 / 욎영자 맀우 복잡핎지고) 몚든 유횚한 셔플을 시도하지 않는닀. 귞러나 결윔 할 재정렬 엔진읎얎알한닀 4px + 2rem - 2px 믞섞 (후는 귞대로입니닀 4px - 2px + 2rem 하멎 몚두 최적화됩니닀).

귞러나 ë‚Žê°€ ê·ž 말에서 싀제로 의믞한 것은 닀음곌 유사한 것입니닀.

foo/bar, 1x/bar 및 foo/1x가 w/oa 였류륌 전달할 수 있도록 합니닀.

expr.evaluator의 (4px + 2rem) - 2px 는 foo + 2px 와 유사하므로 작동하렀멎 귞런 종류의 였류도 생성하지 ì•Šì•„ì•Œ 합니닀.
사싀, 나는 foo/bar, 1x/bar, foo/1x 테슀튞했고 귞듀은 읎믞 w/o 였류륌 통곌했지만(읎상하게도 던진닀고 생각했습니닀), 귞러나 닀륞 연산자는 몚든 종류의 읎상한 결곌륌 쎈래합니닀(정말 쀑요한 것은 아니지만 각 겜우륌 수정하는 묞제음 뿐입니닀. 하나씩).

나는 읎것읎 곌잉읎 될 완전히 새로욎 최적화 표현식 핞듀러가 필요하Ʞ 때묞에 결윔 귞렇지 않을 것읎띌고 생각합니닀. 몚든 유횚한 셔플링을 시도하는 재정렬 엔진읎 됩니닀(읎 특별한 겜우에는 사소하지만 더 많은 플연산자/연산자에게는 상당히 복잡핎짐).

왜 셔플? 동음한 우선 순위 수쀀에서 연산자륌 평멎화하고(튞늬가 Sum(4px, 2rem, -2px) 읎므로) 혾환 가능한 닚위로 용얎륌 수집하고(아마도 믞늬 닚위륌 정규화하여) 각 부분을 닚순화합니닀. 닚위가 독늜 변수로 췚꞉되는 Ʞ혞 대수학입니닀.

직접 작성하고 싶지만 더 잘 테슀튞되고 완성될 가능성읎 더 높은 띌읎람러늬 가

요점은 읎것읎 핎결하Ʞ 쉬욎 묞제는 아니지만 더 음반적읞 묞제는 읎믞 ꜀ 잘 핎결되었윌며 읎러한 하위 시슀템은 닀륞 방식윌로 Less.js에 유용할 수 있닀는 것입니닀.

동음한 우선 순위 수쀀에서 연산자륌 병합합니닀(튞늬는 Sum(4px, 2rem, -2px)임).

귞늬고 ì–Žë–€ 표현식 튞늬가 싀제로 평멎화될 수 있닀고 생각하도록 윔드륌 만드는 것은 정확히 묎엇입니까? (따띌서 낮 "suffling"은 특정 공제 알고늬슘에 ꎀ한 것읎 아니띌 "flatten"을 포핚하여 "몚두 시도"에 대한 지늄Ꞟ입니닀.)

귞러나 더 잘 테슀튞되고 완성될 가능성읎 더 높은 띌읎람러늬가 많읎 있습니닀.

당신읎 진심읞지 잘 몚륎겠습니닀. 귞래서 Less 튞늬륌 왞부 lib 튞늬로 변환하고 ê·ž 반대로 변환하는 몚든 윔드(JS libs 쀑 CSS 닚위륌 처늬할 수 있는 것은 제왞)가 싀제로 최적화할 특정 4px + 2rem - 2p 가치가 있닀고 생각하십니까? 흠...

따띌서 전혀 묞제가 되지 않습니닀(나는 귞것읎 결윔 가치가 없을 것읎띌고 불가능하닀고 말하지는 않았습니닀) - 시도하고 PR을 환영합니닀.
(또한 하위 표현식 최적화가 읎 티쌓의 목표가 아니며 상위 3위 안에도 포핚되지 않는닀는 점에 유의핎알 할 겜우륌 대비하여).

귞늬고 ì–Žë–€ 표현식 튞늬가 싀제로 평멎화될 수 있닀고 생각하도록 윔드륌 만드는 것은 정확히 묎엇입니까? (따띌서 낮 "suffling"은 특정 공제 알고늬슘에 ꎀ한 것읎 아니띌 "flatten"을 포핚하여 "몚두 시도"에 대한 지늄Ꞟ입니닀.)

구묞 분석Ʞ는 컚텍슀튞가 "Ꞟ읎"읞지 여부와 하위 튞늬가 "Ꞟ읎"로 핎석될 수 있는지 여부륌 결정합니닀.

당신읎 진심읞지 잘 몚륎겠습니닀. 귞래서 당신은 Less 튞늬륌 왞부 lib 튞늬로 변환하는 몚든 윔드가

구묞 튞늬로 구묞 분석핎알 합니닀. 거Ʞ에서 대수식을 나타낮는 묞자엎을 출력하는 것은 비교적 간닚합니닀. 되돌아가Ʞ가 더 얎렀욞 수 있습니닀. 묞자엎에서 닀시 구묞 분석핎알 할 수도 있고, 왞부 띌읎람러늬의 튞늬륌 가젞와알 할 수도 있습니닀. 난읎도는 선택한 띌읎람러늬에 따띌 닀늅니닀.

(읎 JS 띌읎람러늬 쀑 얎느 것도 CSS 닚위륌 처늬할 수 없음을 계산하지 않음)

닚위륌 대수적 변수로 변환하멎 됩니닀. 표현식읎 Ʞ혞 형식읞 동안에도 대첎(예: mm -> px )륌 수행할 수 있습니닀.

특정 4px + 2rem - 2p 쌀읎슀륌 최적화할 가치가 싀제로 있습니까?

나는 덜 얎렵고(Less의 자첎 윔드가 í•Žê²°í•Žì•Œ 하는 알고늬슘 묞제로서) 당신읎 필요하닀고 말한 것볎닀 더 음반적윌로 유용한 표현 최적화에 대한 대안을 제안하고 있습니닀.

대수 닚순화는 ꎄ혞로 묶읞 하위 표현식윌로 묞제륌 í•Žê²°í•  수 있윌며 Less가 더 많은 수학 Ʞ능을 추가할 수 있도록 합니닀.

시도하고 PR을 환영합니닀.

나는 녞력할 것읎닀. 였늘에서알 Less륌 삎펎볎Ʞ 시작했고 프로젝튞륌 완료하는 데 묞제가 있얎서 PR을 받지 못할 수도 있음을 읞정합니닀.

또한 하위 표현식 최적화가 읎 티쌓의 목표도 아니고 상위 3위 안에도 포핚되지 않는닀는 점에 유의핎알 할 겜우륌 대비하여

알아요. 나는 읎유 쀑 하나 때묞에 여Ʞ에 있었닀. 왜 귞런 묌늰가?

왜 귞런 묌늰가?

Ꞁ쎄요, 아마도... 귞렇닀멎 - 죄송합니닀 (누군가가 Ʞ졎에 졎재하지 않는 calc(4px + 2rem - 2px) 묞제륌 핎결하Ʞ 위핎 헌신할 쀀비가 되얎 있는 것 같습니닀. 아마도 우늬는 맀우 닀륞 개념을 가지고 있는 것 같습니닀. 가벌움).

Less가 더 많은 수학 Ʞ능을 추가하도록 허용합니닀.

몇 가지 읎늄을 말씀핎 죌시겠습니까?

거의 졎재하지 않는 calc(4px + 2rem - 2px) 묞제륌 핎결하Ʞ 위핎

뭐? 덜 처늬할 수 없습니닀. [나뚞지 섀명을 잘못 읎핎하여 삭제됚]

제안을 닚순화/재작성하렀멎 - 수학 변겜 사항은 닀음곌 같습니닀.

  1. 덧셈곌 뺄셈은 같은 닚위로만 계산됩니닀. 예: 1px + 2px = 3px , 1px + 1vh = 1px + 1vh
  2. 나눗셈곌 곱셈은 닚위 없는 제수/승수로만 계산됩니닀. 예: 10px/2 = 5px , 10px/5px = 10px/5px
  3. 닚위가 없는 값 비윚은 # 2와 유사하게 처늬됩니닀. 예: 1/3 = 1/3
  4. 닚순화륌 위핎 부분적윌로 유횚하지 않은 하위 표현식읎 있는 표현식은 유횚하지 않은 수학 표현식윌로 처늬되얎 있는 귞대로 출력될 수 있습니닀. 예: 1px + 2vh / 2 = 1px + 2vh / 2

읎 제안은 닀음을 핎결합니닀(읎 슀레드에서).

  • font: 10px/5px 및 유사(비윚) 구묞(계산 없음)
  • calc(100vh - 30px) (계산 없음)
  • lost-column: 1/3 및 유사한 사용자 지정 비윚 구묞(계산 없음)

동시에 읎러한 변겜은 음반적읞 Less 수학 사용의 99%륌 볎졎합니닀. 또한 êž°ì¡Ž unit() 및 convert() 핚수륌 사용하멎 사용자가 수학을 위핎 혾환되는 닚위로 값을 캐슀팅할 수 있습니닀.

덜 처늬할 수 없습니닀.

당신은 저와 @leewz 가 위에서 말한 것을 읜지 않았을 뿐입니닀. calc(100vh - 30px) 와 아묎 ꎀ렚읎 없습니닀. 귞늬고 "졎재하지 않는 묞제륌 거의 핎결하Ʞ 위핎"는 " calc 에서 산술 표현식 최적화"에만 전념합니닀.

@seven-phases-max 였였 귞렇군요. 죄송합니닀. 아니요, 최적화할 필요가 없습니닀. 수학을 할 때륌 알아낎십시였.

읎 묞제는 최귌 활동읎 없었Ʞ 때묞에 자동윌로 였래된 것윌로 표시되었습니닀. 더 읎상 활동읎 없윌멎 폐쇄됩니닀. 귀하의 Ʞ여에 감사드늜니닀.

묞제가 있Ʞ 때묞에 슬레읎튞 레읎랔을 제거하는 것은 여전히 ​​쀑요하며 CSS가 발전핚에 따띌 점점 더 악화되고 있습니닀.

@matthew-dean
여Ʞ서 잠시 악마의 변혞읞 역할을 하렀고 합니닀...

12px/30px 당신은 유횚한 수학 묞장윌로 _할 수_ 있지만, 귞렇게 í•Žì•Œ 합니까?

ë„€; 당신은핎알합니닀. 두 크Ʞ 간의 비윚을 나타낮는 슀칌띌 값을 계산하고 em 닚위로 변환할 때 맀우 유용할 수 있습니닀.

알렀진 Ʞ볞 Ꞁꌎ 크Ʞ가 16px읎고 알렀진 제목 크Ʞ가 24px읎고 둘 ë‹€ 변수에 숚겚젞 있고 올바륞 Ꞁꌎ 크Ʞ로 특정 제목 유형을 지정하고 싶지만 em 닚위띌고 가정핎 볎겠습니닀.

@fontsize-body    : 16px;
@fontsize-heading : 24px;

// ( ... and then somewhere else ... )

.heading {
  font-size : unit(@fontsize-body/@fontsize-heading, em);

  // Or if dividing compatible unit values is produces a unit-less scalar
  // value ( as it really _should_ -- mind you... ),  you could prefer:
  font-size : @fontsize-body/@fontsize-heading * 1em;
}

귞늬고 혾환 가능한 닚위의 분할을 수학 표현식윌로 지원핎알 하는 겜우 각 사례의 절반을 닀룚Ʞ 위핎 늬터럎 CSS륌 Less 수학 표현식에서 명확하게 구분하는 방법을 계속 지원핎알 합니닀.

읎제는 ꎄ혞륌 사용하여 수학 표현식을 강제 싀행하고 Ʞ볞적윌로 CSS 늬터럎을 사용하는 것읎 허용됩니닀. 귞러나 귞것은 잘못되고 였류가 발생하Ʞ 쉬욎 것 같습니닀. border-radius 및 font 속Ʞ에서와 같읎 믞늬 조늬된 많은 특수 사례가 필요하며 Less가 읎에 대핮 지속적윌로 최신 상태륌 유지핎알 합니닀. (나누Ʞ Ʞ혞에 대핮 동음한 묞제륌 발생시킀는 음부 새로욎 귞늬드 속성윌로 섀명된 바와 같습니닀.)

귞래서...

왜 당신의 추론을 뒀집지 않습니까? ì–Žë–€ 것읎 수학 표현식처럌 볎읎고 혾환 가능한 닚위 가 있는 겜우 Ʞ볞적윌로 수학 표현식윌로 처늬됩니닀. 귞늬고 당신읎 귞런 음읎 음얎나는 것을 원하지 않는닀멎 ... Ꞁ쎄; 귞런 닀음 ~"..." 탈출 핎치륌 사용하십시였. 귞것읎 정확히 묎엇을 위핎 졎재하는지, ê²°êµ­...

제안에 대한 나의 현재 비전:

  • / 륌 닚위와 옵션에 ꎀ계없읎 얎디서나 나눗셈윌로 췚꞉하지 마섞요(선택적윌로 - -sm=on곌 같은 쀑복 ꎄ혞로 묶읞 겜우 제왞).
    따띌서 1anything./3whatever 및 (선택 사항) (1anything/3whatever) 만 Less에서 평가됩니닀.
  • + , - 및 * 변겜되지 않음
  • calc 하위 묞제는 산술을 평가 하지 않음윌로썚 핎결됩니닀. calc(...) 낎부의 표현식(하지만 닀시 쀑복 ꎄ혞도 영향을 믞칠 수 있음).

@seven-phases-max

귞것의 묞제는 / 가 나눗셈 연산자로 믿을 수 없을 정도로 뿌늬 깊게 박혀 있닀는 것입니닀. 닀륞 Ʞ혞륌 사용하는 것은 사용자에게 힘든 판맀가 될 것입니닀. 당신은 음반적읞 사용 사례륌 췚하고 거의 아묎도 사용하지 않는 예왞적 사용 사례(CSS 속Ʞ에서 / )륌 위핎 귞것을 버늬고 있습니닀.

@rjgotten

귞것의 묞제는 / 읎 나눗셈 연산자로 믿을 수 없을 정도로 뿌늬 깊게 박혀 있닀는 것입니닀.

CSS에는 없습니닀.

거의 아묎도 사용하지 않는 예왞적읞 사용 사례(/ CSS 앜칭)륌 위핎.

지ꞈ쯀읎멎 / 가 읎믞 많읎 사용되고 / 볎닀 훚씬 더 예왞적입니닀(몇 년 전 CSS / 와 달늬 font 에서만 찟을 수 있습니닀.

@seven-phases-max 최신 정볎륌 제공핎 죌셔서 감사합니닀. 묞제륌 ꎀ늬하는 데 도움읎 되도록 Stale 뎇을 추가하고 였래된 것윌로 표시하는 데 상당한 시간을 할애했습니닀. 또한 "버귞"와 "업포용"읎띌는 두 개의 레읎랔도 멎제했습니닀. 화읎튞늬슀튞에 추가할 닀륞 레읎랔곌 같은 제안 사항을 환영합니닀. 파음은 여Ʞ: https://github.com/less/less.js/blob/3.x/.github/stale.yml

묞제 슀레드로 돌아가Ʞ...

@rjgotten
귀하의 사용 사례는 임의의 묞제륌 생성합니닀. 유용하닀는 죌장입니닀. 귞러나 귞런 식윌로 변수륌 구성하멎 @seven-phases-max가 지적한 것처럌 몚혞한 구묞윌로 플할 수 있는 묞제가 발생합니닀.

CSS륌 Less 원칙의 지칚윌로 삌아 ì•¡ë©Ž 귞대로 가젞도 계산상 12px륌 30px로 나눌 수 없습니닀. Less에서 귞렇게 하멎 몚혞성 묞제가 발생할 뿐만 아니띌 (역사적읞 겜우가 아닌) 정당한 읎유 없읎 몚덞에서 분늬됩니닀. 아마도 Less에서 누띜된 것 쀑 하나는 닚위 값의 숫자 값을 추출하여 Less가 나눗셈에 대핮 읎 수학 마술을 할 필요가 없도록 하는 방법음 것입니닀.

따띌서 ê°„ë‹ší•œ 대답은 귀하의 예가 닀음곌 같을 것읎띌는 것입니닀.

font-size : @fontsize-body/number(@fontsize-heading) * 1em

하지만 @seven-phases-max의 제안도 ꎜ찮습니닀. calc() 에서 _vars_ 는 여전히 평가할 수 있지만 수학은 평가할 수 없습니닀. 귞늬고 ꎄ혞 밖에서 나누Ʞ륌 평가하지 마십시였. 좋은 타협점읎띌고 생각합니닀. 귞늬고 아마도 닚위륌 닚위로 나누는 마법 나눗셈 수학을 유지하고 닚위륌 유지하고 싶닀멎(여전히 읎상하지만 ꎜ찮습니닀), ꎄ혞 안에서 음얎날 수 있습니닀.

Less에서 수학 죌제에 대핮 몇 가지 닀륞 선혞도가 있닀는 것을 알고 있지만, 가장 적은 부작용을 음윌킀고 큰 유지 볎수륌 음윌킀지 않고 가장 쉜게 추론할 수 있는 것에 대핮 합의에 도달할 수 있닀멎 정말 좋을 것읎띌고 생각합니닀. 또는 개발 부닎.

Less에서 수학에 대한 현재(Ʞ볞값) ì ‘ê·Œ 방식읎 깚진 것곌 같은 페읎지에 있닀고 생각합니닀. 귞늬고 몚든 것을 Ʞ볞값윌로 두는 것읎 추론하Ʞ는 쉜지만 부닎슀럜닀는 플드백을 받았습니닀. 귞래서 나는 우늬가 곧 Ʞ볞값윌로 넣을 수 있는 좋은 쀑간 지점을 Ʞ대하고 있습니닀(아마 4.0에서?)

아마도 Less에서 누띜된 것 쀑 하나는 닚위 값의 숫자 값을 추출하는 방법음 뿐입니닀.

unit 핚수는 두 번짞 맀개변수륌 지정하지 않윌멎 싀제로 귞렇게 합니닀. 귞러나 귞것은 슀칌띌가 현재 정의된 닚위가 없는 Dimension 녾드 유형윌로 구현되얎 있닀는 사싀의 부작용입니닀.

부여 된; 귞것은 뚌 Ꞟ을 가지만 혾환되는 닚위가 있는 찚원을 나누는 것을 _정말로_ 플하고 싶닀멎 닚위륌 떌얎낎는 것읎 횚곌가 있습니닀.

나는 또한 읎 특정 맥띜에서 "혾환되는 닚위" 추잡(예 a/b 은 나눗셈윌로 유지하고 b/c 은 귞렇지 않음)에 대핮 강력하게 반대합니닀.
닚순히 닀음곌 같은 읎유로:

  • 예왞적읞 처늬는 몚든 악의 귌원입니닀(예: #3047 - 아래 ì°žì¡°, http://stackoverflow.com/questions/19705791- 나는 싀제로 몚든 쀄을 ë‹€ 밟을 때까지 SO 묞제의 원읞을 찟을 수 없었닀는 것을 Ʞ억합니닀. 디버거에서 ꎀ렚된 Less 윔드).
  • 귞늬고 가장 쀑요한 것은 믞래에 대비할 수 없닀는 것입니닀. 슉, 죌요 변겜 사항읎 불가플한 겜우 한 번만(읎상적윌로는 영원히) 만드는 것읎 좋습니닀... a/b 와 ꎀ렚된 새로욎 CSS Ʞ능을 추가하는 것곌는

따띌서 나에게 "혾환 가능한 닚위" 항목은 완전히 ꎀ렚읎 없고 직교하는 것곌 같습니닀( -su 가 있거나 없는 결곌 닚위에 대핮 앜간의 토론읎 있을 수 있지만 귞걎 닀륞 읎알Ʞ입니닀).


(죌제륌 ë²—ì–Ž:)
귞늬고 btw., 위의 예에 대핮 말하멎:
닀음읎 있는 겜우

@fontsize-body/@fontsize-heading * 1em; 

윔드 얎딘가에 있고 두 변수 쀑 하나는 싀제로 버귞륌 사용하는 px :)
적절한 윔드는 닀음곌 같습니닀.

1em * @fontsize-body/@fontsize-heading;

읎는 항상 http://lesscss.org/features/#features -overview-feature-operations에 따띌 잘 정의된 닚위륌 생성합니닀(수정핎알 할 #3047을 계산하멎 버귞는 닀시 한 번 너묎 많읎 생성된 버귞의 예입니닀. 윔드 베읎슀의 "혾환 가능한 닚위"에 대한 추잡 윔드). --su , number , unit bla-bla... 현재 -su 동작읎 필요하지 않습니닀. "혞환되지 않는 장치가 볎읎멎 였류륌 던지십시였." , 슉 ê°„ë‹ší•œ 유횚성 검사는 (나에게는) 좋은 것 읎상입니닀. 1px/2px->.5 및 1px*2px->2px^2 mambo-jambo 곌잉 엔지니얎링읎 필요하지 않습니닀. 귞러나 읎것은 또 닀륞 ꎀ렚 없는 읎알Ʞ입니닀).

@seven-phases-max

싀제로 버귞륌 사용하여

음.. ë„€; 당신 말읎 맞아요. 욎 좋게도 싀제로 프로덕션 환겜에는 핎당 윔드가 없습니닀. 요점을 섀명하Ʞ 위핎 핚께 던진 ê°„ë‹ší•œ 예음 뿐입니닀.

나는 또한 읎 특정 맥띜에서 "혾환되는 닚위" 추잡(a/b는 나눗셈윌로 유지하고 b/c는 귞렇지 않음)에 대핮 강력하게 반대한닀고 덧붙입니닀.

나는 알몞의 제수륌 원하는 사람듀에게 올늬람 가지로서 더 많읎 선상에 있었닀고 생각합니닀. 하지만 [ 여Ʞ ] 귀하의 의견읎 가장 싀행 가능한 제안읎띌고 생각합니닀. 몚혞성을 제거하는 것읎 "엄격한 수학"의 원래 의도였습니닀. 나는 우렀가 믹슀읞 낎의 연산곌 ꎄ혞 낎의 몚든 종류의 ꎄ혞로 읎얎지는 핚수 혞출읎 되었닀고 생각합니닀. 귞러나 음반적윌로 나는 Less에서 수학을 쉜게 하렀는 녞력읎 아읎러니하게도 슝가된 몚혞성 때묞에 귞것을 맀우 얎렵게 만듀었닀는 점에 동의합니닀.

또한 나쀑에 font: 10px/3 가 유횚한 속Ʞ임을 깚달았습니닀. 따띌서 싀제로 도움읎 될 수 있는 알고늬슘 솔룚션은 없습니닀.

질묞윌로 돌아가렀멎 @rjgotten...

왜 당신의 추론을 뒀집지 않습니까? ì–Žë–€ 것읎 수학 표현식처럌 볎읎고 혾환 가능한 닚위가 있는 겜우 Ʞ볞적윌로 수학 표현식윌로 처늬됩니닀. 귞늬고 당신읎 귞런 음읎 음얎나는 것을 원하지 않는닀멎 ... Ꞁ쎄; 귞런 닀음 ~"..." 탈출 핎치륌 사용하십시였. 귞것읎 정확히 묎엇을 위핎 졎재하는지, ê²°êµ­...

Less to CSS의 아읎디얎/ꎀ계는 TypeScript에서 JavaScript와 유사합니닀. 슉, 유횚한 .css 을 .less 하고 Less Ʞ능을 추가할 수 있습니닀. .js 을 .ts 하고 TypeScript Ʞ능 추가륌 시작하는 방법곌 유사합니닀. 아묎 것도 추가하지 않윌멎 ì–žì–Žê°€ Ʞ볞 얞얎의 상위 집합읎Ʞ 때묞에 동음한 유횚한 Less / JavaScript가 출력되얎알 합니닀.

귞러나 CSS의 읎러한 비윚 또는 Ʞ타 / 제수의 겜우 Less는 Ʞ볞적윌로 읎믞 게읎튞에서 바로 싀팚합니닀. 아묎 것도 변겜하지 않았더띌도 음반 CSS는 임의적윌로 닀륞 결곌륌 가진 Less 수학 표현식읎 됩니닀. 귞것은 얞얎의 계앜을 위반합니닀. .less 륌 완전히 닀륞 Less 표현식윌로 변겜하여 시작한 원래 CSS륌 되돌멮 수 있닀는 것은 요점을 놓치는 것입니닀. ê·ž 작업은 절대 필요하지 않습니닀. Less는 처음에 가지고 있던 유횚한 CSS륌 닀시 얻Ʞ 위핎 유횚한 CSS륌 혾환 가능한 Less 표현식윌로 변겜하도록 요구핎서는 안 됩니닀. 고장난 몚덞음 뿐입니닀.

calc() 에도 동음한 녌늬가 적용됩니닀. 예, 표현식을 묞자엎로 읎슀쌀읎프할 수 있지만 귞렇게 핎서는 안 됩니닀. .css 로 읎늄읎 변겜된 .less 는 동음한 횚곌적읞 CSS륌 생성핎알 합니닀. 읎것은 원래 슀타음시튞륌 간섭/덮얎쓰Ʞ/곌도하게 핎석하지 않는 것읎 프로젝튞의 Ʞ볞 목표여알 합니닀. 닀륞 몚든 것은 처음에 파서/얞얎륌 사용하는 것 왞에 닀륞 죄로 읞핎 개발자에게 묞제륌 푞시하렀고 합니닀.

예, 표현식을 묞자엎로 읎슀쌀읎프할 수 있지만 귞렇게 핎서는 안 됩니닀. .less로 읎늄읎 변겜된 .css는 동음한 횚곌적읞 CSS륌 생성핎알 합니닀. 읎것은 원래 슀타음시튞륌 간섭/덮얎쓰Ʞ/곌도하게 핎석하지 않는 것읎 프로젝튞의 Ʞ볞 목표여알 합니닀. 닀륞 몚든 것은 처음에 파서/얞얎륌 사용하는 것 왞에 닀륞 죄로 읞핎 개발자에게 묞제륌 푞시하렀고 합니닀.

저것.

LESS는 / 가 허용되는 위치와 CSS에서 허용되지 않는 위치륌 알고 있습니닀. 귞렇지 않지만 얎욌든 나타나는 겜우 수학읎 완료되얎알 한닀고 가정핎알 합니닀. 또한 수학읎 둥귌 ꎄ혞로 둘러싞여 있는 겜우 CSS에서 둥귌 ꎄ혞가 허용되지 않는 겜우 LESS로 핎석핎알 합니닀.

닀시 말핎서, LESS는 유횚한 CSS에 도달하Ʞ 위핎 가능한 한 적은 수의 수학을 핎석하렀고 녞력핎알 합니닀. 출력읎 유횚하멎 더 읎상 수학 싀행을 쀑지하십시였.

@thany

컎파음러가 알고 있는 것에 대한 가정읎 너묎 많습니닀(음부는 닚순히 틀늜니닀).
얎느 쪜읎든 "둥귌 대ꎄ혞" 몚드는 --sm=on 가 하는 것곌 거의 같윌므로 읎륌 사용하고 읎 슀레드는 잊얎버늬십시였(대부분 calc 왞에 프로젝튞에서 수학을 사용하지 않을 가능성읎 높습니닀 Less가 섀계된 지 몇 년 후) 귞래서 추가 ꎄ혞가 얌마나 짜슝나는지 알 수 없습니닀. 하지만 닀륞 사람듀은 귞렇습니닀.)


나뚞지는 https://github.com/less/less.js/issues/1880#issuecomment -345194431을 ì°žì¡°

@seven-phases-max / 는 background 및 border-radius 속Ʞ, 귞늬고 아마도 지ꞈ 생각하지 않는 닀륞 것듀에도 의믞가 있닀는 것을 잊지 마십시였. LESS는 귞것듀을 하나의 부서로 Ʞ쁘게 생각합니닀. 엄격한 수학 몚드가 있든 없든 LESS는 자첎적읞 작은 수학을 "멈춰알 할 때륌 알아알" 합니닀.

@thany
LESS는 자신의 작은 수학을 "멈춰알 할 때륌 알아알" 합니닀.

아니, 귞러멎 안 된닀. 분할 슬래시가 있는 믞래 CSS 앜얎가 얎디에 나타날지 알 수 있는 방법읎 없습니닀. Less 컎파음러가 읎에 대핮 '알게' 하는 것은 귌볞적윌로 결핚읎 있는 ì ‘ê·Œ 방식읎며 읎 토론에서 솔룚션을 찟윌렀고 시도하는 바로 ê·ž 것입니닀.

지ꞈ까지 나누Ʞ 연산자로 / 대핮 제정신읎고 예잡 가능한 두 가지 선택읎 있습니닀.

  • 항상 귞렇게 처늬하고 닀륞 용도로 명시적윌로 읎슀쌀읎프핎알 합니닀.
    읎것은 Less 구묞읎 CSS 구묞의 엄격한 상위 집합읞 동작을 쀑닚합니닀.
  • 알렀진 수학 컚텍슀튞에 속하지 않는 한 __만_나누Ʞ 연산자로 췚꞉하지 마십시였.
    알렀진 수학 컚텍슀튞는 현재 --strict-math=on 동작에서와 같읎 결정될 수/있을 수 있습니닀.

(또한 Less 읎늄의 철자가 더 읎상 대묞자로 표시되지 않습니닀.)

/ 또한 background와 border-radius 속Ʞ에서 의믞가 있닀는 것을 잊지 마십시였.

읎것은 Ʞ볞적윌로 읎 슀레드가 시작하는 것입니닀.
귞늬고 https://github.com/less/less.js/issues/1880#issuecomment -345194431에서 제안된 변겜 사항의 요앜을 찞조하십시였(컎파음러가 알아알 하거나 알아알 하는 가정 없음).

아니, 귞러멎 안 된닀. 분할 슬래시가 있는 믞래 CSS 앜얎가 얎디에 나타날지 알 수 있는 방법읎 없습니닀. Less 컎파음러가 읎에 대핮 '알게' 하는 것은 귌볞적윌로 결핚읎 있는 ì ‘ê·Œ 방식읎며 읎 토론에서 솔룚션을 찟윌렀고 시도하는 바로 ê·ž 것입니닀.

나는 읎것에 완전히 동의합니닀. @thany 당신은 ë‚Žê°€ ì“Ž 것을 읞용한 것에 동의하지만 ë‚Žê°€ 낮며 결론곌 닀륞 결론에 도달하고 있습니닀. 적게는 "수학을 쀑닚"í•Žì•Œ 할 때와 알 수 없습니닀. ë‚Žê°€ 말하고 싶은 것은 람레읎킹 첎읞지가 뚌저 수학을 시작하는 것에 대핮 Less가 더 볎수적읎얎알 한닀는 것입니닀(믞국/캐나닀죌의륌 사용하Ʞ 위핎).

@rjgotten

알렀진 수학 컚텍슀튞 낎에 있지 않는 한 나누Ʞ 연산자로 췚꞉하지 마십시였.
알렀진 수학 컚텍슀튞가 현재 --strict-math=on 동작에서와 같읎 결정될 수 있거나 결정될 겜우.

명확히하Ʞ 위핎읎 부분 (나는 동의합니닀) :

알렀진 수학 컚텍슀튞 낎에 있지 않는 한 나누Ʞ 연산자로 췚꞉하지 마십시였.

싀제로 4 가지 가능한 솔룚션읎 있습니닀. 알고 있지만 슀레드에 대핮 닀시 요앜하멎 닀음곌 같습니닀.

  1. 몚든 수학은 ꎄ혞 안에만 수행하십시였 . 읎것은 분명히 컀뚌슈에 의핎 거부되었윌며, 읎는 여전히 선택적 토Ꞁ( strictMath )로 사용할 수 있지만 ꎜ찮습니닀.
  2. 몚든 수학을 몚든 곳에서 수행하되 ꎄ혞로만 나눕니닀.
  3. 몚든 수학을 몚든 곳에서 수행하되 ꎄ혞로만 나눕니닀. 나누Ʞ 연산자가 ./ 로 읞쇄되지 않는 한
  4. 몚든 수학을 몚든 곳에서 수행하되 12px/4px 읞핎 나눗셈읎 발생하지 않도록 수학을 수정하십시였. (곱셈곌 나눗셈은 닚위가 없는 값만 사용합니닀.) 슉, 몚든 곳에서 나눗셈을 수행하지만 훚씬 더 볎수적읞 규칙을 따늅니닀. 묞제가 핎결되지 않윌멎 닀시 탈출에 의지하십시였. 따띌서 완전한 솔룚션은 아니지만 현재 상황에 대한 (녌슝의 여지가 있는) 개선 사항입니닀.

사용성 ꎀ점에서 저는 #4 에서와 같읎 수학을 "더 똑똑하게" 만드는 것을 좋아합니닀. 엔지니얎링 및 유지 ꎀ늬 ꎀ점에서, 귞늬고 향후 CSS 변겜윌로부터 볎혞하Ʞ 위핎 저는 #3 가 가장 강력한 솔룚션윌로 마음에 듭니닀.

귞러나 싀제로는 calc() 륌 수정하Ʞ 위핎 #3 AND #4 륌 100vh - 12px 는 Less(ꎄ혞 여부)에 의핎 걎드렀서는 안 됩니닀. 귞러나 IMO도 12px/4px (ꎄ혞 여부)륌 사용핎서는 안 되지만 저는 ê·ž 부분에서 소수음 수 있습니닀.

귞래서 저는 읎것을 "CSS 구묞곌 충돌하는 수학" 묞제로 볎지 않고, Less가 처음부터 수학 방정식을 조Ʞ에 핎결하는 데 지나치게 공격적읎띌고 생각합니닀.

닚위가 없는 값윌로만 ​​곱셈곌 나눗셈을 수행합니닀.

닀음곌 같은 것듀읎 있Ʞ 때묞에 튞늭을 수행하지 않을 것입니닀.

font: small-caps bold 24px/3 ...;
lost-column: 1/3;
// etc.

귞늬고 귞듀은 div가 아닙니닀.

귞러나 싀제로는 calc() 륌 수정하렀멎 #3 및 #4 륌

calc() 는 고통입니닀. 아읎러니하게도 귞것은 _아마도_ 싀제 Less 핚수로 구현핚윌로썚 가장 잘 핎결되며, 읎상적윌로는 구묞 분석된 표현식 튞늬륌 췚하고 표현식을 닚순화하렀고 시도할 것입니닀. 슉: 4px + 12px (또는 @a 에 픜셀 값읎 있는 것윌로 알렀진 겜우 4px + @a 와 같은 혾환 가능한 구성 요소륌 믞늬 계산하고 ê²°í•©í•Žì•Œ 하지만 혞환되지 않는 구성 요소는 귞대로 둡니닀. 혞환되지 않는 유닛곌 핚께, 닚독윌로.

예

<strong i="17">@a</strong> : 4px;
<strong i="18">@b</strong> : 2;
width : calc(100%/<strong i="19">@b</strong> - 10px + @a);

ê²°êµ­ 렌더링핎알

width : calc(50% - 6px);

(https://github.com/less/less.js/issues/1880#issuecomment-345345735에서 반복)
귞늬고 calc 낎부의 표현식을 최적화하Ʞ 위핎 컎파음러륌 곌도하게 엔지니얎링하는 것의 읎점을 볎지 못했습니닀. calc 륌 작성하고 있닀멎 람띌우저에서 ꞎ 표현식읎 묎엇읎든 상ꎀ없읎 작업을 수행할 수 있습니닀. 귞래서 위에서 읎믞 얞꞉했듯읎 저는 " calc 낎부의 아묎 것도 걎드늬지 마십시였"(= 싀제로 필요한 것볎닀 더 똑똑하렀고 시도하지 마십시였). 람띌우저( 또는 css-minifier 읎후 , ë‚Žê°€ 올바륎게 Ʞ억한닀멎, ê·žë“€ 쀑 음부는 읎믞 calc 하위 표현식 최적화에 ꜀ 좋은 음을 하고 있습니닀.


"smart unit behavior mamabo-jambo"는 min/max ꎎ묌을 떠올늬게 합니닀(유지할 수 없고 한 번도 사용 하지 않은 윔드의 부풀렀진 슀택) - 당시 "units mambo"에 대핮 비명을 지륎지 않은 것을 얌마나 후회하는지 , 였 (귞래서 나는 "플연산자 닚위에 따띌 닀륞 연산자 의믞"띌는 아읎디얎가 완전히 사띌질 때까지 여Ʞ에서 계속 징징거늎 것입니닀 :P).


추신 calc 가 산술 평가가 아닌 표현식을 수신하는 핚수가 되자 마자(얎욌든 귞래알 할 것입니닀) 플러귞읞을 작성하고 원하는 최적화로 읎륌 대첎할 수 있습니닀.

@rjgotten
Less 컎파음러가 읎에 대핮 '알게' 하는 것은 귌볞적윌로 결핚읎 있는 ì ‘ê·Œ 방식입니닀.

귌볞적윌로 옳은 접귌읎띌고 생각합니닀. LESS는 CSS에 대한 컎파음러읎므로 LESS가 컎파음 대상에 대핮 알고 있닀는 것은 섞상 몚든 의믞가 있습니닀.

@matthew-dean
적게는 "수학을 쀑닚"í•Žì•Œ 할 때와 알 수 없습니닀. ë‚Žê°€ 말하고 싶은 것은 람레읎킹 첎읞지가 뚌저 수학을 시작하는 것에 대핮 Less가 더 볎수적읎얎알 한닀는 것입니닀(믞국/캐나닀죌의륌 사용하Ʞ 위핎).

말하자멎 닀륞 쪜에서 생각하는 것읎 흥믞롭습니닀. 제가 제안하는 낎용은 닀음곌 같습니닀.

background: url(...) no-repeat 50% 50% / 40px + 10px 40px;

여Ʞ서 LESS가 í•Žì•Œ 할 음은 나에게 분명합니닀.

background: url(...) no-repeat 50% 50% / (40px + 10px) 40px;

륌 알Ʞ하는:

background: url(...) no-repeat 50% 50% / 50px 40px;

여Ʞ서 50% / 50px 부분을 ​​계산핎서는 안 됩니닀. (1) 혞환되지 않는 닚위 때묞에 불가능하고 (2) background 값에 대핮 읎믞 충분하Ʞ 때묞입니닀. . 여Ʞ에서 "수학을 쀑닚"할 것입니닀.

귞것읎 ë‚Žê°€ "멈춰알 할 때륌 아는 것"읎 ​​의믞하는 바입니닀.

닀음곌 같은 닀륞 속성읎었습니까?

padding-left: 50% / 10px + 5px;

였류(혞환되지 않는 닚위)와 핚께 쀑닚되얎알 합니닀. 가능한 출력 쀑 하나는 읎 속성에 대핮 유횚하지 않은 50% / 15px 입니닀. 또 닀륞 결곌는 현재 수행할 5% 수 있윌며 읎는 몚든 방향에서 잘못된 것입니닀.
귞늬고:

padding-left: 50px / 10px + 5px;

결곌:

padding-left: 10px;

예상대로. 따띌서 읎 겜우 / 는 padding-left 대핮 유횚하지 않윌며 LESS 로 가젞와서 수학을 수행합니닀.

@matthew-dean
싀제로 4 가지 가능한 솔룚션읎 있습니닀. 알고 있지만 슀레드에 대핮 닀시 요앜하멎 닀음곌 같습니닀.

하나 더:
5) LESS의 나눗셈에는 \ 연산자륌 사용하고 / 사용하여 더 읎상 사용하지 않습니닀. MATLAB에는 읎와 유사한 것읎 있윌며 BASIC의 특정 맛은 정수 나누Ʞ륌 강제로 사용하는 데 사용했습니닀. 따띌서 백슬래시륌 사용하는 것읎 완전히 듀얎볞 적읎 없는 것은 아닙니닀.

/펞집하닀
또한 킀볎드에 ÷ 킀륌 포핚하도록 로비하고 읎륌 나눗셈 연산자로 사용할 수도 있습니닀. 쎈등학교 때 배웠던 낎용읎에요 :)

귀하가 제안한 낎용은 읎믞 여러 번 녌의되었습니닀(여Ʞ에 찞조된 슀레드륌 죌저하지 마십시였). 귞래서 여Ʞ에 앜간 게윌륞 의견읎 있습니닀.

LESS의 나눗셈에 \ 연산자륌 사용하고 / 사용하여 더 읎상 사용하지 않습니닀.

https://github.com/less/less.js/issues/1872#issuecomment -35245890

background 충분합니닀 ... padding-left 에는 유횚하지 않습니닀

"여러분, 제 람띌우저/폎늬필/ fnord 속성에 대한 지원읎 추가/업데읎튞/확장된 몚든 것, 저륌 위핎 새로욎 Less 버전을 출시핎 죌시겠습니까?"륌 만나볎십시였. 묞제.
font 묞제륌 만나볎섞요.
등 등
Ꞁ쎄요, @rjgotten은 읎믞 위에서 왜 귞런 종류의 "지식"읎 아묎데도 가지 않는 Ꞟ읎띌고 얞꞉했습니닀.

@seven-phases-max
백슬래시는 제안에 불곌했습니닀. 나누Ʞ에 ? 륌 사용할 수도 있습니닀. 귞것은 정말 쀑요하지 않습니닀. ë‚Žê°€ 제안하는 것은 맀우 닀륎고 몚혞한 의믞륌 가진 하나의 묞자( / )륌 사용 하지 않는 것입니닀.

"여러분, 낮 람띌우저/폎늬필/ fnord 속성에 대한 지원읎 추가/업데읎튞/확장된 몚든 것, 저륌 위핎 새로욎 Less 버전을 출시핎 죌시겠습니까?"륌 만나볎십시였. 묞제.

CSS는 잘 정의된 표쀀입니닀. 표쀀 읎왞의 것을 지원핎서는 안됩니닀. 귞것읎 당신의 묞제입니닀. fnord 속성은 표쀀의 음부가 아니므로 지원핎서는 안 됩니닀. 읎 새로욎 지정되지 않은 속성읎 발생하멎 LESS는 Ʞ볞 동작윌로 폎백할 수 있습니닀. 현재 동작읎거나, ꎄ혞가 필요하거나, 몚혞하지 않은 한 묎엇읎든 됩니닀.

Ꞁꌎ 묞제륌 만나볎섞요.

Ꞁꌎ 묞제는 LESS의 절대적읞 시작부터 / 묞제가 졎재했음을 슝명합니닀. background 에 background-size 값을 포핚할 수 있는 Ʞ능읎 있거나 border-radius 가 발생했을 때 뿐만읎 아닙니닀. Tbh, Ꞁꌎ 묞제륌 얞꞉핚윌로썚 당신은 당신 자신에 대핮 가장 좋은 죌장을 펌쳀습니닀. :)

Tbh, Ꞁꌎ 묞제륌 얞꞉핚윌로썚 당신은 당신 자신에 대핮 가장 좋은 죌장을 펌쳀습니닀. :)

나는 당신읎 뭔가륌 잘못 읎핎하고 있닀고 생각합니닀. 처음에 / 륌 div 연산자로 완전히 제거하자고 제안한 사람은 저 였습니닀. 따띌서 나뚞지 항목에 대핎서는 귀하가 응답한 낎용에 죌의륌 Ʞ욞읎지 않는 것곌 동음한 묞제띌고 생각합니닀.

CSS는 잘 정의된 표쀀입니닀.

TR 수쀀에서 완전히 성숙핎진 사양 부품을 고수하렀는 겜우 귞럎 수도 있습니닀.
귞렇지 않윌멎? 아니요. 새로욎 CSS '몚듈'의 위성 사양곌 맀죌는 아니더띌도 새로 추가된 êž°ì¡Ž 몚듈의 수정 버전읎 표시됩니닀.

@seven-phases-max

닀음곌 같은 것듀읎 있Ʞ 때묞에 튞늭을 수행하지 않을 것입니닀. font: small-caps bold 24px/3 ...

아니, 알겠얎. 낮 요점은 바로 닀음곌 같습니닀. unit-less only div/multiplication은 묞제륌 쀄읎지만 묞제륌 핎결하지는 못합니닀.

귞늬고 음반적윌로 몚든 부묞에 대한 ./ 의 제안은 여전히 ​​맀우 녌늬적윌로 볎입니닀.

@thany 몚든 구첎적읞 예에 ​​응답하Ʞ 볎닀는 음반적윌로 Less Math륌 더 똑똑하게 만듀렀는 녞력읎 공을 닀륞 알드 띌읞윌로

귞늬고 calc 낎부의 표현식을 최적화하Ʞ 위핎 컎파음러륌 곌도하게 엔지니얎링하는 것의 읎점을 볎지 못했습니닀. calc륌 작성하고 있닀멎 람띌우저에서 ꞎ 표현식읎 묎엇읎든 상ꎀ없읎 작업을 수행할 수 있습니닀. 귞래서 위에서 읎믞 얞꞉했듯읎 나는 "calc 낎부에 아묎 것도 만지지 마십시였"(= 싀제로 필요한 것볎닀 더 똑똑핎지렀고 시도하지 않음)하고 람띌우저륌 위핎 낚겚두었습니닀(또는 ë‚Žê°€ 올바륎게 Ʞ억한닀멎 css-minifier륌 위핎 , ê·žë“€ 쀑 음부는 읎믞 calc 하위 표현식 최적화에 ꜀ 좋은 음을 하고 있습니닀.

나는 읎것에 전적윌로 동의합니닀. calc() 허용 목록에 추가하멎 새로욎 수학 ꎀ렚 묞제의 99%륌 제거할 수 있습니닀. Less가 calc() 묞제륌 플하Ʞ 위핎 수학을 더 현명하게 수행할 수 있는 몇 가지 방법을 제안했지만(당연히 귞래알 할 수도 있음) 읎것읎 읎 아읎디얎에 대한 녌쟁윌로 핎석되었닀멎 사곌드늜니닀. 저도 읎것을 지지합니닀.

유음한 죌의 사항(여Ʞ/닀륞 곳에서 녌의됚)은 개발자가 필연적윌로 calc() 변수륌 사용하Ʞ륌 원할 것읎므로 vars륌 계속 교첎하도록 죌의핎알 하지만 하지 마십시였. 수학. 얌마나 얎렀욎 음읞지 몚늅니닀. 귞렇게 할 수 있닀멎 였늘 calc() 처늬 변겜을 지원하겠습니닀.

@thany

Ꞁꌎ 묞제는 LESS의 절대적읞 시작부터 / 묞제가 졎재했음을 슝명합니닀.

읎것은 사싀음 수 있고 정당한 지적읎지만 많은 적절한 í•Žê²° 방법읎 있었고 font 속성 앜식을 사용하는 것읎 반드시 표쀀 ꎀ행은 아니었습니닀. Less가 시작된 후 여러 배겜곌 calc() 가 도착했Ʞ 때묞에 읎것읎 더 묞제가 되었습니닀. 읎제 CSS Grid 구묞은 읎제 음상적읞 싀제 용얎에서 처음에는 졎재하지 않았던 많은 충돌읎 있음을 의믞합니닀.

덧붙여서, 읎것읎 Sass가 묞제륌 핎결하는 방법읎며 읎 예에서 섀명합니닀.

p {
  font: 10px/8px;             // Plain CSS, no division
  $width: 1000px;
  width: $width/2;            // Uses a variable, does division
  width: round(1.5)/2;        // Uses a function, does division
  height: (500px/2);          // Uses parentheses, does division
  margin-left: 5px + 8px/2px; // Uses +, does division
  font: (italic bold 10px/8px); // In a list, parentheses don't count
}

Less 핚수에 대한 읞수 낎에서 (현재) 수학을 할 수 있고 Less 핚수는 픜셀 값을 반환할 수 있Ʞ 때묞에 font: print10px()/8px 아닙니닀. ì–Žë–€ 종류의 제안읎 아니띌 섀명을 위핎 붙여넣는 것뿐입니닀. 귞듀읎 얎떻게 묞제에 접귌했는지 흥믞롭습니닀.

개읞적윌로, 나는 개발자듀읎 마법 표현식의 졎재륌 Ʞ반윌로 수학읎 ì–Žë–€ 겜우에 발생하는지 Ʞ억하도록 만드는 것은 음종의 믞친 짓읎띌고 생각하지만(예: + ?) .

개읞적윌로, 나는 개발자듀읎 마법 표현의 졎재륌 Ʞ반윌로 수학읎 ì–Žë–€ 겜우에 발생하는지 Ʞ억하게 만드는 것은 음종의 믞친 짓읎띌고 생각합니닀.

+1


"솔룚션"읎 lessc --sm 가 읎믞 수행하는 것 왞에 여Ʞ에서 녌의된 묞제 쀑 얎느 것도 í•Žê²° 귞늬고 1/2 와 $var/2 대한 닀륞 결곌는 정말 놀랍습니닀 ... ~바볎 ~ "슐거욎 디버깅, 팚자!"

@matthew-dean
덧붙여서, 읎것읎 Sass가 묞제륌 핎결하는 방법읎며 읎 예에서 섀명합니닀.

읎는 닀륞 욎영자에게 의지하지 않고도 훌륭한 솔룚션입니닀.
표현식읎 유횚한 CSS음 겜우 귞대로 두십시였.

개읞적윌로, 나는 개발자듀읎 마법 표현의 졎재륌 Ʞ반윌로 수학읎 ì–Žë–€ 겜우에 발생하는지 Ʞ억하게 만드는 것은 음종의 믞친 짓읎띌고 생각합니닀.

동의하지 않는닀. 읎것은 닚순한 규칙 집합윌로, Ʞ억핎알 하는 닀륞 규칙 집합곌 닀륎지 않습니닀.

수학읎 의믞 없읎 발생하는 몇 가지 극닚적읞 겜우가 있지만 ꎄ혞만 적용하멎 끝입니닀.

"솔룚션"읎 lessc --sm읎 읎믞 하는 것 읎상윌로 여Ʞ에서 녌의된 묞제 쀑 얎느 것도 핎결하지 못한닀는 것을 계산하지도 않습니닀. ë‚Žê°€ 원하는 것읎 나눗셈음 때 (1/2) 대신 0 + 1/2륌 쓰는 읎유는 묎엇입니까? 귞늬고 1/2와 $var/2에 대한 닀륞 결곌는 겜읎적윌로 훌륭합니닀... 얎늬석음 "핎플 디버깅, 팚자!" 메섞지.

하, 예, 읎것입니닀.

@thany

읎는 닀륞 욎영자에게 의지하지 않고도 훌륭한 솔룚션입니닀.
표현식읎 유횚한 CSS음 겜우 귞대로 두십시였.

잡쎈에 빠지지는 않지만 구묞상의 읎유와 ì–žì–Ž 음ꎀ성 때묞에 Less에서는 작동하지 않습니닀. 귞것은 녌쟁의 여지가 있닀고 말할 수 있는 Sass에게는 훌륭할 수 있지만 디자읞 ꎀ점에서 개읞적윌로 ê·ž 프로젝튞에 ꎀ여하지 않윌므로 누가 말할 수 있습니닀. ë‚Žê°€ 아는 것은 테읎랔에 있는 옵션읎 시작하Ʞ에 가장 좋은 장소띌는 것입니닀. 읎 묞제와 ꎀ렚된 메시지 슀레드륌 삎펎볎고 얞얎에 대핮 많은 시간을 할애했닀멎 같은 결론에.

우늬가 플할 수 없는 한 가지 ꎀ찰: 유횚한 바닐띌 CSS륌 가젞였멎 출력읎 Ʞ능적윌로 동음핎알 합니닀. 따띌서 ë‚Žê°€ 귞늎 수 있는 유음한 결론은 LESS가 읎믞 유횚한 CSS음 가능성읎 있는 표현식을 걎드렀서는 안 된닀는 것입니닀. 읎 작업을 수행하는 방법은 나에게 달렀 있지 않습니닀. 귞러나 바닐띌 CSS륌 가젞였는 것은 신뢰할 수 없닀는 사싀읎 ë‚šì•„ 있습니닀. 대부분 LESS가 분할을 너묎 엎성적윌로 싀행하Ʞ 때묞입니닀.

Sass에서 바닐띌 CSS륌 가젞였는 것은 사싀상 완벜하게 작동합니닀. 말했듯읎 Sass는 몇 가지 ê°„ë‹ší•œ 구묞 규칙에 따띌 컎파음러에게 가서 작업을 수행하도록 지시하지 않는 겜우 / 연산자륌 귞대로 둡니닀. 읎 구묞 규칙은 유횚한 바닐띌 CSS에서 발생할 수 없는 분할을 강제하는 방법을 섀명하며 읎것읎 ë›°ì–Žë‚œ 읎유입니닀.

당신은 여전히 ​​자신의 상상읎 아니띌 귞듀읎 말하는 것곌 녌쟁합니닀. ê°„ë‹ší•œ 질묞에 대답 : "얎떻게 0 + 1/2 아마도볎닀 더 잘 할 수 있습니닀 (1/2) ?". 100%-CSS 혞환성읎 ꎀ심 있는 유음한 겜우 -sm 하고 읎 슀레드는 잊얎버늬십시였.

우늬가 플할 수 없는 한 가지 ꎀ찰: 유횚한 바닐띌 CSS륌 가젞였멎 출력읎 Ʞ능적윌로 동음핎알 합니닀. 따띌서 ë‚Žê°€ 귞늎 수 있는 유음한 결론은 LESS가 읎믞 유횚한 CSS음 가능성읎 있는 표현식을 걎드렀서는 안 된닀는 것입니닀. 읎 작업을 수행하는 방법은 나에게 달렀 있지 않습니닀. 귞러나 바닐띌 CSS륌 가젞였는 것은 신뢰할 수 없닀는 사싀읎 ë‚šì•„ 있습니닀. 대부분 LESS가 분할을 너묎 엎성적윌로 싀행하Ʞ 때묞입니닀.

읎 부분은 ë‚Žê°€ 볞질적윌로 동의하고, 읎 슀레드에서 ê·ž 점에 대핮 많은 동의륌 찟을 것읎띌고 생각합니닀. 대부분의 불음치는 솔룚션에 ꎀ한 것읎며 각 솔룚션에는 닀양한 부작용읎 있습니닀.

저는 닀음곌 같은 죌요 변겜 사항을 우선적윌로 적용할 것입니닀.

  1. 필요로하는 수학 왞부 ꎄ혞 ./ 대신 나첎의 / . 12px./10px 여전히 조ꞈ 읎상핎 볎입니닀.

@seven-phases-max - 백슬래시륌 닀시 ì°Ÿê³  싶습니닀. 읎와 ꎀ렚하여 https://github.com/less/less.js/issues/1872#issuecomment -35245890에 대핮 얞꞉한 것윌로 알고 있습니닀. 수학 표현의 음부. 아니멎 ë‚Žê°€ 틀렞습니까? 읎늄의 음부로 읎슀쌀읎프 묞자가 포핚된 핚수 읎늄곌 같은 읎론적읞 겜우륌 생각핎낌 수 있닀고 생각하지만 싀제 사례볎닀 지적읞 연습에 더 가깝습니닀. 읎슀쌀읎프된 선택자는 여러 가지 읎유로 음반적윌로 사용되지만 속성 값에서는 귞럎 가능성읎 거의 없는 것처럌 볎읎거나 극닚적읞 겜우 역사적(읎 텍슀튞륌 읎슀쌀읎프 처늬) í•Žê²° 방법윌로 쀑닚/핎결하는 것읎 좋습니닀.

나눗셈에 닚음 백슬래시륌 사용하멎 싀제 충돌읎 발생할 수 있닀는 점을 조ꞈ 더 삎펎볌까요? 낮 볞능는 점읎닀 \ 죌변의 현재 상황볎닀 묞제가 / , 귞늬고 더 dev에 친화적 읞 읎상입니닀 ./ . 우늬가 조사륌 하고 귞것읎 가능하닀는 것을 발견했닀멎, ꎄ혞 안에 / 륌 허용하는 컚텍슀튞 전환 대신 몚든 곳에서 사용하도록 죌요 변겜을 할 수 있습니닀. 귞런 닀음 레거시 슀위치로 / 륌 지원할 수 있습니닀.

  1. (두 번짞 우선 순위) calc() 는 변수 교첎륌 수행할 수 있지만 수학 표현식을 평가하지 않도록 특수 쌀읎슀입니닀.

나눗셈에 닚음 백슬래시륌 사용하멎 싀제 충돌읎 발생할 수 있닀는 점을 조ꞈ 더 삎펎볌까요?

Ꞁ쎄, \anycharacter 가 유횚한 CSS읎고 나늄의 의믞가 있닀는 묞제. 묌론 싀제 프로젝튞에서는 귞런 윔드륌 거의 찟을 수 없습니닀(예: \9 같은 핎킹 제왞). 하지만... 우늬가 ê·ž 사자에게 뚹읎륌 죌고 싶습니까? "ì–Ž-였, 낮 100% 유횚한 CSS가 컎파음되지 않음"을 수정하여 동음한 소늬의 닀륞 "ì–Ž-였"륌 도입하여 앜간 읎상하게 듀늜니닀. :)

calc ꎀ핎서는 우늬가 처음부터 합의가 있었던 것 같습니닀. 따띌서 Ʞ볞적윌로 자원 뎉사자가 귞것을 구현하Ʞ륌 Ʞ닀늬는 것뿐입니닀. 읎것은 정말로 용감한 사람에 ꎀ한 것입니닀 - 사소한 구현 섞부 사항은 닀륌 수 있지만 프로섞슀에서 결정하는 것읎 좋닀고 생각합니닀.

음, \anycharacter가 유횚한 CSS읎고 고유한 의믞가 있닀는 묞제입니닀. 묌론 싀제 프로젝튞에서는 귞런 윔드륌 거의 찟을 수 없습니닀(예: \9와 같은 핎킹 제왞). 하지만... 우늬가 ê·ž 사자에게 뚹읎륌 죌고 싶습니까? "ì–Ž-였, 낮 100% 유횚한 CSS가 컎파음되지 않음"을 수정하여 동음한 소늬의 닀륞 "ì–Ž-였"륌 도입하여 앜간 읎상하게 듀늜니닀. :)

듀얎볎니 튞레읎드 였프 가능성읎 있습니닀. 귞늬고 예, \anycharacter 가 유횚한 CSS띌는 것을 알고 있습니닀. 나는 귞것읎 더 나은 튞레읎드 였프 섞튞읞지 궁ꞈ합니닀. 닚지 12px./10px 썌을 때 묞법적윌로 읎상하게 느껎졌을 뿐입니닀. Less는 충돌을 음윌킀지 않고 가능한 한 CSS의 용도륌 변겜하렀고 시도한 것 같습니닀.

예륌 듀얎 ./ 는 구묞 명확성을 제공하고 충돌을 완전히 방지하지만 수학에 대한 몚든 곳에서 ꎄ혞륌 적용했Ʞ 때묞에 지원했지만 반발읎 있었고 여Ʞ에서 걱정됩니닀. 귞렇닀멎 \10 륌 탈출하렀는 개발자의 의도로 10px\10 륌 였읞하는 합법적읞 겜우가 있습니까? 나는 귞것읎 얎렀욎 읎론읎띌는 것을 알고 있고, 당신의 요점은 아마도 우늬가 정말로 몚륞닀는 것입니닀.....귞것은 복잡한 질묞읎고, 새로욎 구묞을 추가하는 것은 항상 얎렀욎 음입니닀. 특히 우늬가 몚든 CSS륌 알지 못하Ʞ 때묞에 Less륌 사용하는 겜우 알생 또는 믞래 CSS.

계산에 ꎀ핎서는 우늬가 처음부터 합의가 있었던 것 같습니닀. 따띌서 Ʞ볞적윌로 자원 뎉사자가 귞것을 구현하Ʞ륌 Ʞ닀늬는 것뿐입니닀. 용감한 사람 - 사소한 구현 섞부 사항은 닀륌 수 있지만 프로섞슀에서 결정하는 것읎 좋닀고 생각합니닀.

좋은! 가시성을 높읎Ʞ 위핎 별도로 추적핎알 합니까?

@seven-phases-max:

묌론 싀제 프로젝튞에서는 귞런 윔드륌 거의 찟을 수 없습니닀(예: \9 같은 핎킹 제왞).

맞아 . 였, ê·ž 거친 "서양읞"... :)

@seven-phases-max
"얎떻게 0 + 1/2가 (1/2)볎닀 더 나을 수 있습니까?"띌는 ê°„ë‹ší•œ 질묞에 답하십시였.

나는 당신읎 귞것을 가지고 얎디로 가는지 볌 수 없습니닀. (1/2) 는 유횚한 CSS가 아닐 수 있윌므로 LESS로 싀행핎알 하므로 LESS로 의믞핎알 합니닀. 0 + 1/2 는 1/2 가 되얎알 합니닀. 여Ʞ서 LESS는 0 + 1 부분을 ​​싀행합니닀. 왜냐하멎 귞것읎 유횚한 CSS가 될 수 없는 부분읎Ʞ 때묞입니닀. 1/2 부분 은 유횚

@thany
좋아, 읎제 (1/2) 읎 Less와 Sass에서 몚두 예상대로 작동한닀는 것을 깚닫습니닀.
귞늬고 0 + 1/2 (및 1 * 1/2 등)은 위에서 bright띌고 부륎는 솔룚션의 음부읎며 "brilliant soution" 결곌는 0.5 입니닀.
여Ʞ에서 묎슚 음읎 음얎나고 있는지 아직 몚륎십니까?
위의 몚든 ë‚Žìš©(첫 번짞 게시묌부터 시작)을 닀시 한 번 읜고 "ë‚Žê°€ 정확히 묎엇에 대핮 불평하고 있는 겁니까?"띌고 슀슀로에게 답핎 볎섞요.

@seven-phases-max
귞늬고 0 + 1/2(1 * 1/2 등도 포핚)는 위에서 bright띌고 부륎는 솔룚션의 음부읎며 "brilliant soution" 결곌는 0.5입니닀.

아니,읎 솔룚션은 것 1/2 하지 0.5 , 읎후 1/2 유횚한 CSS 수 있습니닀. 슬래시가 ì–žì œ 유횚한지 LESS가 알Ʞ륌 원하지 않는 것 같윌므로 항상 귞럎 수 있닀고 가정하십시였. 따띌서 1/2 가 유음한 녌늬적 결곌입니닀. 같은 방식윌로 2 * 1/2 는 2/2 * 가 됩니닀. 귞렇지 않윌멎

여Ʞ에서 묎슚 음읎 음얎나고 있는지 아직 몚륎십니까?

나는 여Ʞ서 묎슚 음읎 음얎나고 있는지 완벜하게 분명합니닀. LESS는 수학 나눗셈을 엎심히 싀행하고 맹목적윌로 닚위륌 묎시합니닀.

위의 몚든 ë‚Žìš©(첫 번짞 게시묌부터 시작)을 닀시 한 번 읜고 "ë‚Žê°€ 정확히 묎엇에 대핮 불평하고 있는 겁니까?"띌고 슀슀로에게 답핎 볎섞요.

읞신공격은 필요없습니닀.

LESS는 수학 나눗셈을 엎심히 싀행하고 맹목적윌로 닚위륌 묎시합니닀.

읎것은 당신읎 였륞쪜에 대하여 신고 할 것입니닀 귞래서?

읞신공격은 필요없습니닀.

귞럌 대신 얎떻게 í•Žì•Œ 할까요? 원래 두 개의 게시묌 을 계속핎서(귞늬고 닀시) 반복합니까? 명확핎질 때까지:
@컀뮀니티 :

-sm 옵션 사용

@thany :

귞러멎 Ʞ볞적윌로 쌜젞 있얎알 합니닀.

@seven-phases-max:

수 많은 프로젝튞가 슉시 쀑닚될 것읎Ʞ 때묞에 불가능합니닀. 따띌서 Ʞ볞 동작을 묞제로 췚꞉하는 겜우 묞서화된 옵션을 섀정하Ʞ만 하멎 됩니닀.


귞래서 "í•Žì•Œ 한닀", "í•Žì•Œ 한닀", "í•Žì•Œ 한닀"륌 반복하멎서 묎엇을 Ʞ대하고 있습니까? 당신읎 제안한 것읎 작동하지 않거나 음반적윌로 말읎 되지 않는 읎유에 대핮 자섞히 섀명하는 데 시간을 낭비하는 대신 "아니요, 핎서는 안 됩니닀"띌고 대답하는 것읎 더 쉜습니닀. 읎핎하거나 닚순히 할 수 없음).


읎 슀레드의 낎용은 묎엇입니까? " -sm 와 같은 행동을 Ʞ볞값윌로 만드는 궁극적읞 죌요 변겜은 플할 수 없지만 우늬는 묎서욎 것 왞에 더 펞안한 산술을 위한 시섀을 제공핎알 한닀는 것을 깚닫는 것입니닀. margin: (1/2) (3/4) (5/6) (7/8); 산술을 많읎 사용하십시였."
여Ʞ에 게시하는 것은 읎믞 졎재하는 -sm 행동볎닀 낫지 않은(또는 완전히 똑같은 행동을 하는) 묎얞가륌 제안하거나 처음부터 의묞의 여지가 없는 것에 대핮 녌쟁합니닀( ê±°êž° 처럌). 슉, 임의의 녞읎슈 .

@seven-phases-max @thany 옚도륌 한 닚계

나는 대부분의 사람듀읎 읎 두 가지에 대핮 같은 페읎지에 있닀고 생각합니닀. Less는 수학 표현식윌로 읎상적윌로 핎석하지 않습니닀.

font: 12px/10px;
width: calc(100% - 20px);

따띌서 읎러한 점에 대핎서는 대부분 동의가 있윌며 대부분의 죌장은 가능한 솔룚션에 ꎀ한 것입니닀. calc() 묞제는 앞윌로 나아갈 수 있는 충분한 합의가 있는 것 같습니닀. Ʞ볞적윌로: calc륌 걎드늬지 말고 calc() vars륌 묞자엎 볎간곌 같읎 췚꞉하십시였. calc() 의 볎간 구묞읎 필요하ꞎ 하지만 Sass가 수행하는 방식곌 비슷합니닀. 필요하지 않닀고 생각합니닀.

font 부분에 대한 솔룚션은 훚씬 더 복잡핎졌윌며 죌요 솔룚션은 닀음곌 같습니닀.

  1. Ʞ볞적윌로 몚든 것에 ꎄ혞가 필요핚(첫 번짞 시도 - 거의 구현되었지만 컀뮀니티에서 거부됚)
  2. strictMath 슀위치(Ʞ볞값윌로 만드는 대신 추가되었윌며 @seven-phases-max의 제안)륌 뒀집은 닀음 명시적윌로 몚든 계산을 수행합니닀. Ʞ술적윌로 현재 대부분의 사람듀에게 가능한 솔룚션읎지만....묞제가 너묎 자죌 발생하고 심늬적윌로 ì–Žë–€ 시슀템을 처음 접하는 사람도 Ʞ볞값을 유지할 가능성읎 있닀는 것을 알고 있윌므로 묞제가 됩니닀. 또한 몚든 개발자가 특히 팀에서 빌드 섀정을 변겜할 수 있는 것은 아닙니닀.
  3. Ʞ볞적윌로 Less에서 나누Ʞ 연산자륌 변겜합니닀. 슀레드의 선두 겜쟁자는 ./ 로 작동하지만 볎Ʞ에는 조ꞈ 읎상합니닀. \ 는 연구 없읎 현재로서는 알 수 없습니닀. 작동할 수 있고 읎슀쌀읎프와 알 수 없는 충돌을 음윌킬 수 있습니닀. (잠재적읎지만 알렀지지 않은) 더 높은 위험에서 더 깚끗한 구묞입니닀. 누군가가 시간을 ë‚Žì–Ž 읎것읎 충돌을 음윌킀지 않을 것읎띌는 것을 시연한닀멎, 슉 파서가 둘을 명확하게 구별할 수 있는 방식윌로 혌합된 탈출곌 수학의 예륌 제공한닀멎, 여전히 가능성읎 있습니닀. 따띌서 작업읎 필요합니닀. @thany , 당신읎나 닀륞 누군가가 읎것의 팬읎띌멎 읎것읎 필요한 작업입니닀. 마지막윌로 원하는 것은 휎식 시간을 닀륞 곳윌로 옮Ʞ는 것입니닀.

읎 슀레드륌 닚순화하렀멎 여Ʞ에서 #3 에만 집쀑핎알 한닀고 생각합니닀. 나는 대부분 혞Ʞ심윌로 Sass 예제륌 게시했지만 읎러한 솔룚션읎 훌륭하거나 묞제륌 완전히 핎결한닀고 생각하지 않윌며 개념적윌로 Less와 혞환되지 않습니닀. 0 + 1/2 요구의 타당성에 대핮 녌쟁하는 것은 우늬륌 아묎데도 얻지 못할 것입니닀.

따띌서 테읎랔에 calc() 에 대한 좋은 솔룚션읎 있얎 대부분의 게시된 묞제에 대핮 50%의 Ʞ회륌 얻을 수 있윌므로 닚Ʞ적윌로 읎 질묞에만 집쀑하는 것읎 좋습니닀.

Less 나눗셈 연산자륌 변겜핎알 하는 겜우 묎엇윌로 변겜핎알 합니까?

  • ./ - 읎것읎 ë‚Žê°€ 느끌는 것처럌 얎색합니까, 아니멎 사람듀읎 ꎜ찮닀고 생각합니까?
  • \ - 연구와 슝명, 따띌알 할 파서륌 위한 의사 윔드 없읎는 앞윌로 나아갈 수 없습니닀. 나는 개읞적윌로 귞것읎 안전하닀고 입슝될 수 있닀멎 귞것을 선혞한닀.
  • 닀륞 대첎품?

솔직히 calc() 륌 변겜하고 / 변겜하멎 Less에서 수학 죌변의 소음을 99% 쀄음 수 있닀고 생각합니닀.

안녕하섞요, calc() - https://github.com/less/less.js/pull/3162

많은 추가 윔드 없읎도 작동하는 솔룚션을 찟았을 때 나는 닀소 놀랐습니닀. Ʞ볞적윌로, 우늬는 읎믞 strictMath 슀위치에 대한 윔드륌 가지고 있었고, ꎄ혞 밖에 있는 겜우 수학을 평가하지 않도록 표현식을 첎크읞하므로 calc() 륌 평가하는 동안 수학을 끄는 혞출에 추가 슀위치륌 추가했습니닀

https://github.com/less/less.js/pull/3162/files#diff -a94aaffd78b1d3c5eda7a42d5be1ca0d 및 https://github.com/less/less.js/pull/3162/files#diff -4e6969271823c91을 확읞

테슀튞가 충분합니까?

@matthew-dean :컀플:

테슀튞가 충분합니까?

PR의 의견에 따띌 닀음곌 같은 테슀튞륌 추가하십시였.

foo: 1 + 2 calc(3 + 4) 5 + 6; // expected result: 3 calc(3 + 4) 11;

귞늬고 사소한 섀명: 읎 수정은 분명히 #1627에서와 동음한 묞제륌 소개합니닀. 슉,

<strong i="13">@a</strong>: floor(1.1);
<strong i="14">@b</strong>: floor(1 + .1);

div {
    foo: calc(<strong i="15">@a</strong> + 20%); // ok
    bar: calc(<strong i="16">@b</strong> + 20%); // error: invalid floor arguments
    baz: @b;             // ok
}

하지만 calc 겜우 ꎜ찮습니닀(게윌륞 평가 개념을 닀시 싀행 하지 않고 묞제륌 í•Žê²°í•  수 있는 닀륞 ê°„ë‹ší•œ 방법은 calc 낎에서 vars륌 사용할 때 lazy-eval을 엌두에 두도록 묞서에 알늌을 넣는 묞제띌고 생각합니닀.

귞늬고 사소한 섀명: 읎 수정은 분명히 #1627에서와 동음한 묞제륌 소개합니닀.

좋은 캐치!

혞출당 컚텍슀튞 mathOn 속성을 전환하멎 PR의 귀하의 의견곌 유사하게 읎 묞제가 핎결됩니닀. 통곌하는 float(1 + .1) 에 대한 테슀튞륌 추가했습니닀!

혞출당 컚텍슀튞 mathOn 속성을 전환하멎 PR의 죌석곌 유사하게 읎 묞제가 핎결됩니닀. 나는 > 통곌하는 float(1 + .1) 테슀튞륌 추가했습니닀!

:) 아니요, -sm: off 음 때 "바닥" 였류가 있얎알 합니닀 . PR에서 낮 최신 의견을 찞조하십시였.
복원은 1 + 2 calc(3 + 4) 5 + 6 같은 것듀만 처늬합니닀.

:) 아니요, -sm: off음 때 "floor" 였류가 있얎알 합니닀.

왜요? calc() 낎부의 몚든 핚수는 Less 핚수여알 합니닀. 귞렇지 않은 겜우에도 calc() 낎부에는 원시 수학 표현식을 사용할 수 있는 CSS 넀읎티람 핚수가 없습니닀. 예상되는 결곌는 vars 및 Less 핚수륌 평가하는 것읎지만 calc() 낎부의 원시 핚수는 귞대로 두십시였.

ì°žê³  사항: Less에서 나눗셈 연산자로 / 륌 \ 로 전환하는 분Ʞ 싀험을 했습니닀. 읎슀쌀읎프에 대한 테슀튞가 읎믞 많읎 있윌며(죌소: #3160에 더 추가했습니닀), 몚두 여전히 잘 작동하고 연산자륌 전환핎도 수학읎 잘 작동합니닀. 나는 볞질적읞 갈등을 볎지 못했습니닀. 분Ʞ는 여Ʞ 낮 포크에 있습니닀: https://github.com/matthew-dean/less.js/commit/509d34fff7e234846afa150b099cd259755a39d0

Re: 쀑첩 핚수

읎륌 위핎:

div {
    bar: calc(floor(1 + .1) + 20%);
}

개발자로서 예상되는 결곌는 닀음곌 같아알 합니닀.

div {
    bar: calc(1 + 20%);
}

귞것읎 바로 지ꞈ 음얎나는 음입니닀(읎러한 변겜 사항윌로). 였류가 발생하지 ì•Šì•„ì•Œ 합니닀.

@matthew-dean
아니요, 당신읎 ì“Ž 방법은 닀음곌 같습니닀.

foo: unit(1/2, px);

-sm:on 륌 사용하멎 닀음곌 같읎 컎파음됩니닀.

foo: .5px;

^- 틀렞습니닀.
쀑첩 핚수도 마찬가지입니닀. 또한 대부분의 핚수가 음반적윌로 산술 표현식을 읞수로 사용할 수 없닀는 사싀읎 -sm: on 위반 읎유가 아닙니닀.
따띌서 -sm: on 두 쀄:

foo: floor(1 + .1);
bar: calc(floor(1 + .1) + 20%);`

였류가 발생핎알 합니닀(읎것읎 컀밋에서 쀑닚됚).

묎슚 얘Ʞ륌하는 걎가요?

unit(1/2, px) -sm:on :

ERROR: error evaluating function `unit`: the first argument to unit must be a number. Have you forgotten parenthesis?

calc(floor(1 + .1) + 20%) -sm:on

ERROR: error evaluating function `floor`: argument must be a number

지점을 확읞하섞요. 시도핎볎십시였.

윔드 검토에 더 도움읎 될 수 있는 한 가지는 잘못된 출력을 생성할지 확신읎 서지 않는 겜우 확읞하십시였. 또는 특정 입력을 시도하여 예상대로 작동하는지 확읞하도록 요청하십시였. 또는 작동 방식/읎유가 확싀하지 않은 겜우 질묞하십시였. 도움읎 되지 않는지 몚륞 채 잘못 부륎는 것입니닀.

죄송합니닀. 읎 부분 의 간접적읞 통제륌 놓친 것 같닀.

지점을 확읞하섞요. 사용핎볎Ʞ

죄송합니닀.

죄송합니닀. 읎 부분에 대한 간접적읞 통제륌 놓친 것 같아요.

걱정 마. 읎 묞제가 핎결되멎 예상한 대로 작동하는 것처럌 볎입니까?

읎 묞제가 핎결되멎 예상한 대로 작동하는 것처럌 볎입니까?

예, 지ꞈ까지 귞곳에서 닀륞 수상한 것은 상상할 수 없습니닀.

@matthew-dean
Ʞ볞적윌로 Less에서 나누Ʞ 연산자륌 변겜합니닀. 슀레드의 선두 겜쟁자는 ./로 작동하지만 볎Ʞ에는 조ꞈ 읎상합니닀. \ 은(는) 연구 없읎 현재로서는 알 수 없습니닀 [...] @thany , 귀하 또는 닀륞 누군가가 읎것의 팬읎띌멎 읎것읎 필요한 작업입니닀. 마지막윌로 원하는 것은 휎식 시간을 닀륞 곳윌로 옮Ʞ는 것입니닀.

싀제로는 전혀 아닙니닀. 나는 \ 연산자륌 통곌하지 못한 후 최후의 수닚윌로 제안했습니닀. LESS가 자첎 수학 만 하도록 하렀고 했습니닀. 새로욎 나눗셈 연산자가 필요한 것읎띌멎... 음, calc() 도 덧셈, 뺄셈, 곱셈을 할 수 있습니닀. 새로욎 연산자? 비현싀적읎띌고 생각합니닀. 새로욎 나누Ʞ 연산자는 Ꞁꌎ, 배겜 및 테두늬 반겜곌 같은 것에 대한 솔룚션음 수 있지만 CSS 수학에 대한 솔룚션은 아닙니닀.

나는 여전히 진정한 핎결책은 LESS가 컚텍슀튞에 대핮 아는 것읎띌고 생각합니닀. (예, 여Ʞ서 닀시 "~í•Žì•Œ 합니닀"로 읎동합니닀. 닀륞 닚얎륌 사용핎알 하나요?...) calc() 는 CSS 핚수읎며 CSS가 수행할 수 없는 수학만 평가핎알 합니닀. . 귞러나 floor() 는 CSS에 졎재하지 않윌므로 유횚하지 않은 CSS륌 분출하지 않도록 (완전히) 평가핎알 합니닀. 나는 읎것읎 읎전에 닀륞 표현윌로 얞꞉되었닀고 생각합니닀.

나는 여전히 진정한 핎결책은 LESS가 컚텍슀튞에 대핮 아는 것읎띌고 생각합니닀. (예, 여Ʞ서 닀시 "~í•Žì•Œ 합니닀", ì–Žë–€ 닚얎륌 사용핎알 할까요?...) calc()가 CSS 핚수읎고 CSS가 할 수 없는 수학만 평가핎알 한닀는 것을 알아알 합니닀. 귞러나 floor()는 CSS에 졎재하지 않윌므로 유횚하지 않은 CSS륌 분출하지 않도록 (완전히) 평가핎알 합니닀. 나는 읎것읎 읎전에 닀륞 표현윌로 얞꞉되었닀고 생각합니닀.

공정하게 닀시: \ , 귞러나 컚텍슀튞에 ꎀ한 한 귀하의 닀륞 게시묌을 Ʞ반윌로 하멎 귀하가 생각하는 것볎닀 훚씬 더 복잡한 묞제임을 볎장할 수 있습니닀. 정말 닀음곌 같읎 쀄여알 합니닀.

12px/10px  // Is this division, or not?
10px/1.5 // is this division, or not? 

당신은 확싀히 낚겚 둡니닀 / 몚방에, 나누Ʞ 연산자로 calc() , 귞늬고 당신읎 절대적윌로 있는지 확읞핎알합니닀, 귞것은 몚혞 할읎 / 에 ꎄ혞( calc() 예왞 제왞). 읎는 예잡 가능한 컚텍슀튞륌 제공합니닀.

읎 슀레드의 시작 부분에 있는 ê·ž 제안도 여전히 가능성읎 있윌며 강력한 지원을 받았습니닀. Ʞ볞적윌로 Ʞ볞 섀정은 몚든 수학 부묞을 제왞하고 왞부 ꎄ혞륌 지원 (닀시 제왞되는 것읎 calc() 입니닀 3.0 읎상에서 지ꞈ의 겜우). 얎쩌멎 귞것읎 갈 Ꞟ입니닀. 귞러멎 닀음읎 가능합니닀.

font: 10px/1.5;   // not division
font: (10px/10);  // division, result is 1px
font: 10px+15px/1.5;   // addition but not division, result is 25px/1.5
font: (10px+15px/1.5);  // result is 20px

묞제는 10px+15px/1.5 대한 결곌가 ꎄ혞 안에 있지 않는 한 "절반 평가"되는 것처럌 볎읎는 표현식을 사용하여 개발자가 여전히 ꎎ로워하Ʞ 얎렀욞 수 있닀는 것입니닀. Ʞ볞적윌로 엄격한 수학을 섀정했닀멎 ꎜ찮았을 것입니닀. 덜 몚혞합니닀. [shrug] 얎느 쪜읎든, ì–Žë–€ 종류의 컚텍슀튞에서 수학을 래핑하는 것은 몚혞성을 제거하는 방법읎며, 나누Ʞ 연산자륌 변겜하는 것 왞에는 나눗셈을 위한 유음한 방법입니닀.

컀뮀니티는 볞질적윌로 방향을 ê²°ì •í•Žì•Œ 합니닀. 읎 슀레드에는 싀행 가능한 옵션읎 있습니닀. 각각 닚점읎 있습니닀. 각각의 고통점읎 있습니닀. 얎느 누구도 완전한 합의륌 얻지 못할 것입니닀. 귞러나 IMO는 현재 시나늬였볎닀 더 좋습니닀. ê·ž 알앜을 삌킀멎 됩니닀.

결정을 위한 마지막 요청

귞래서 불가능한 음을 하Ʞ 위한 녞력의 음환윌로 저는 읎것을 제안하고 싶습니닀(3년 전의 의견 을 닀시 ì°žì¡°).

--strict-math 3개 섀정 제공

  1. 끄닀
  2. 분할
  3. 엄격핚(읎전 버전곌의 별칭 on )

녌쟁을 핎결하렀멎 --strict-math=division 슀위치가 닀음을 수행하도록 허용하십시였.

  1. ꎄ혞 밖에서 / 묞자만윌로 나누지 마십시였. 예: border-radius: 55px / 25px; --> 수학 없음(예, 유횚한 CSS입니닀)
  2. 두 가지 닀륞 방법윌로 나누Ʞ륌 허용합니닀.
    ㅏ. . 접두사 - border-radius: 55px ./ 25px;
    비. ꎄ혞 - border-radius: (55px / 25px);
  3. 두 형식 몚두 ꎄ혞 안에 유횚합니닀. 예륌 듀얎 border-radius: (55px ./ 25px); 가 유횚합니닀.

따띌서 개발자로서 한 버전읎 선혞하지 않는닀고 생각되멎 닀륞 버전을 사용할 수 있습니닀. 음부는 ꎄ혞륌 사용하지 않는 것을 선혞할 수 있습니닀. 음부는 수정된 나눗셈 연산자륌 사용하지 않는 것을 선혞할 수 있습니닀. 몚두륌위한 묎얞가. 귞늬고 / 가 font , background , border-radius 에서 사용되는 CSS에서 현재 널늬 사용되는 구묞을 사용하는 Less륌 처음 사용하는 사람듀에게는 더 읎상 불쟌한 놀띌움읎 없습니닀 @media 쿌늬, CSS Grid 속성, 귞늬고 아마도 앞윌로 더 많을 것입니닀.

닀음 닚계

나는 읎것을 옵션윌로 PR에 넣은 닀음 녌의한 대로 향후 죌요 버전의 Ʞ볞값윌로 전환하는 것읎 좋습니닀.

@matthew-dean

슉 마칚표는 읎슀쌀읎프 시퀀슀의 역곌 같은 역할을 합니까?
나쁜 생각읎 아니알, 정말로...

귞늬고 몚든 것을 고렀했을 때 _아마도_ 가장 깚끗한 가능한 솔룚션 쀑 하나입니닀.

@rjgotten 여Ʞ서 시작: https://github.com/matthew-dean/less.js/tree/strict-math-division

테슀튞 쀑 하나에서 여전히 읎상한 였류가 발생합니닀. 여Ʞ에서 찚원 녾드 쀑 하나륌 작업 녞드로 바꟞는 것 같습니닀(귞런 닀음 작업 녞드에서 작업을 수행할 수 없Ʞ 때묞에 였류가 발생합니닀. strictMath: division 에서 싀행되지 않는 닀륞 테슀튞가 제대로 작동하Ʞ 때묞에 구묞 분석 묞제읞 것 같습니닀. 확읞핎볎고 도움을 쀄 수 있는지 확읞하시겠습니까?

ë‚Žê°€ 하고 싶은 것은 읎 묞제륌 닫고 나뚞지 수학 묞제륌 처늬하는 새 묞제륌 만드는 것입니닀. 구첎적윌로:

  1. 분할 처늬 및 strictMath: 'division' Ʞ능.
  2. 혌합 닚위의 수학 처늬. ì°žì¡°: https://github.com/less/less.js/issues/3047
읎 페읎지가 도움읎 되었나요?
0 / 5 - 0 등꞉