Less.js: ν˜Όν•© λ‹¨μœ„ μˆ˜ν•™μ„ μ²˜λ¦¬ν•˜λŠ” 방법

에 λ§Œλ“  2017λ…„ 04μ›” 09일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: less/less.js

div {
    <strong i="5">@value</strong>: 1px;
    a: <strong i="6">@value</strong> * 1rem;       // 1px  - ok
    b: <strong i="7">@value</strong> * 1px * 1rem; // 1px  - ok
    d: <strong i="8">@value</strong> / 1px;        // 1px  - ok
    c: <strong i="9">@value</strong> / 1px * 1rem; // 1rem - unexpected
    e: <strong i="10">@value</strong> / 1px + 0rem; // 1rem - unexpected
}

c 및 d κ²°κ³ΌλŠ” http://lesscss.org/features/#features -overview-feature-operations κ²°κ³Όκ°€ ν‘œν˜„μ‹μ˜ 맨 μ™Όμͺ½ λ‹¨μœ„λ₯Ό κ°€μ Έμ•Ό ν•œλ‹€κ³  λͺ…μ‹œν•œ 1px )λ₯Ό 생성해야 ν•©λ‹ˆλ‹€. ν…ŒμŠ€νŠΈλŠ” μ‹€μˆ˜λ‘œ μ˜ˆμƒ κ²°κ³Όλ₯Ό μƒμ„±ν•˜λŠ” a / b / c ν‘œν˜„μ‹λ§Œ λ‹€λ£Ήλ‹ˆλ‹€.
#2418 및 #2472 κ΄€λ ¨.

bug needs decision

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ†”μ§νžˆ, λ‚˜λŠ” Lessμ—μ„œ μœ λ‹›μ„ ν˜Όν•©ν•  수 μžˆλŠ” 팬이 된 적이 μ—†μŠ΅λ‹ˆλ‹€. 그것은 μˆ˜ν•™μ  κ΄€μ μ—μ„œ μ˜λ―Έκ°€ μ—†μœΌλ©° μ§€μ ν•œ 바와 같이 λͺ¨λ‘ 평가 μˆœμ„œλ₯Ό 기반으둜 ν•©λ‹ˆλ‹€.... μ—­μ‹œ μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ strictUnits μ½”λ“œλ₯Ό λ³΄λ‹ˆ 그것도 이해가 λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 그것도 λ‚΄κ°€ μƒκ°ν–ˆλ˜ λŒ€λ‘œ λ˜μ§€ μ•ŠλŠ” 것 κ°™λ‹€.

κ·Έλž˜μ„œ, 예, 그것은 μ΄μƒν•˜μ§€λ§Œ μˆ˜μ •λ˜λŠ” 것을 보고 싢지 μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” ν˜Όν•© λ‹¨μœ„ μˆ˜ν•™μ΄ μ‚¬λΌμ§€λŠ” 것을 λ³΄λŠ” κ²½ν–₯이 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 그건 λ‚˜λΏμ΄μ•Ό. 의 결과와 λ§ˆμ°¬κ°€μ§€λ‘œ 1px * 1px ν•΄μ•Ό 1px^2 (μœ μš©ν•˜μ§€λ§Œ, 사싀이 μ•„λ‹ˆλ‹€). 그리고 κ²°κ³Ό 1px / 1px λ˜μ–΄μ•Όν•©λ‹ˆλ‹€ 1 . SassλŠ” μ–΄λ–€ μ’…λ₯˜μ˜ μˆ˜ν•™μ— λŒ€ν•΄ μ§€λ‚˜μΉ˜κ²Œ λ³΅μž‘ν•˜μ§€λ§Œ κΈ°λ³Έ μˆ˜ν•™ 원리λ₯Ό μ‚¬μš©ν•˜μ—¬ 믹슀 μœ λ‹›μ˜ λ‹¨μœ„ μ „ν™˜κ³Ό 같은 μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄.

<strong i="13">@value</strong> / 1px * 1rem
μ—¬κΈ°μ„œ μˆ˜ν•™μ€ 10px / 1px μž…λ‹ˆλ‹€. 이것은 1 생성해야 ν•©λ‹ˆλ‹€(Lessκ°€ μ•„λ‹ˆλΌ μ›μΉ™μ μœΌλ‘œ Sassμ—μ„œλ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€). 1 * 1rem = 1rem . 이 κΈ°λŠ₯의 기원에 λŒ€ν•΄ Alexisμ—κ²Œ λΆˆμΎŒκ°μ„ μ£ΌλŠ” 것은 μ•„λ‹ˆμ§€λ§Œ ν‘œν˜„μ‹μ˜ 첫 번째 λ‹¨μœ„λ₯Ό μ„ νƒν•˜λŠ” 것은 λ‹€μ†Œ μ΄μƒν•˜κ³  ν‰κ°€ν•˜κΈ° μ–΄λ €μš°λ©° μ΄λŸ¬ν•œ 버그가 μžˆλŠ” 엣지 μΌ€μ΄μŠ€λ‘œ μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄ $0.02.

λͺ¨λ“  6 λŒ“κΈ€

μ†”μ§νžˆ, λ‚˜λŠ” Lessμ—μ„œ μœ λ‹›μ„ ν˜Όν•©ν•  수 μžˆλŠ” 팬이 된 적이 μ—†μŠ΅λ‹ˆλ‹€. 그것은 μˆ˜ν•™μ  κ΄€μ μ—μ„œ μ˜λ―Έκ°€ μ—†μœΌλ©° μ§€μ ν•œ 바와 같이 λͺ¨λ‘ 평가 μˆœμ„œλ₯Ό 기반으둜 ν•©λ‹ˆλ‹€.... μ—­μ‹œ μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ strictUnits μ½”λ“œλ₯Ό λ³΄λ‹ˆ 그것도 이해가 λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 그것도 λ‚΄κ°€ μƒκ°ν–ˆλ˜ λŒ€λ‘œ λ˜μ§€ μ•ŠλŠ” 것 κ°™λ‹€.

κ·Έλž˜μ„œ, 예, 그것은 μ΄μƒν•˜μ§€λ§Œ μˆ˜μ •λ˜λŠ” 것을 보고 싢지 μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” ν˜Όν•© λ‹¨μœ„ μˆ˜ν•™μ΄ μ‚¬λΌμ§€λŠ” 것을 λ³΄λŠ” κ²½ν–₯이 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 그건 λ‚˜λΏμ΄μ•Ό. 의 결과와 λ§ˆμ°¬κ°€μ§€λ‘œ 1px * 1px ν•΄μ•Ό 1px^2 (μœ μš©ν•˜μ§€λ§Œ, 사싀이 μ•„λ‹ˆλ‹€). 그리고 κ²°κ³Ό 1px / 1px λ˜μ–΄μ•Όν•©λ‹ˆλ‹€ 1 . SassλŠ” μ–΄λ–€ μ’…λ₯˜μ˜ μˆ˜ν•™μ— λŒ€ν•΄ μ§€λ‚˜μΉ˜κ²Œ λ³΅μž‘ν•˜μ§€λ§Œ κΈ°λ³Έ μˆ˜ν•™ 원리λ₯Ό μ‚¬μš©ν•˜μ—¬ 믹슀 μœ λ‹›μ˜ λ‹¨μœ„ μ „ν™˜κ³Ό 같은 μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄.

<strong i="13">@value</strong> / 1px * 1rem
μ—¬κΈ°μ„œ μˆ˜ν•™μ€ 10px / 1px μž…λ‹ˆλ‹€. 이것은 1 생성해야 ν•©λ‹ˆλ‹€(Lessκ°€ μ•„λ‹ˆλΌ μ›μΉ™μ μœΌλ‘œ Sassμ—μ„œλ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€). 1 * 1rem = 1rem . 이 κΈ°λŠ₯의 기원에 λŒ€ν•΄ Alexisμ—κ²Œ λΆˆμΎŒκ°μ„ μ£ΌλŠ” 것은 μ•„λ‹ˆμ§€λ§Œ ν‘œν˜„μ‹μ˜ 첫 번째 λ‹¨μœ„λ₯Ό μ„ νƒν•˜λŠ” 것은 λ‹€μ†Œ μ΄μƒν•˜κ³  ν‰κ°€ν•˜κΈ° μ–΄λ €μš°λ©° μ΄λŸ¬ν•œ 버그가 μžˆλŠ” 엣지 μΌ€μ΄μŠ€λ‘œ μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄ $0.02.

제 μƒκ°μ—λŠ” μˆ˜ν•™μ˜ λ³€κ²½κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ ν˜Όν•© λ‹¨μœ„κ°€ λ³€κ²½λ˜μ–΄ λ‘˜ 사이에 μ„Έ 번째 μ˜΅μ…˜μ΄ μžˆμ–΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

  1. strictUnits: false - μˆ˜ν•™ 및 κ°•μ œ λ‹¨μœ„ μ‹œλ„
  2. strictUnits: ? - 예: 1px / 1px // output 1 , 100vh - 10px // output 100vh - 10px 즉, ν˜Όν•© λ‹¨μœ„μ˜ 경우 ν‘œν˜„μ‹μ„ κ·ΈλŒ€λ‘œ 두고 좜λ ₯ - vars에 ν• λ‹Ήλ˜κ³  calc()μ—μ„œ μ‚¬μš©λ˜λŠ” ν•˜μœ„ ν‘œν˜„μ‹μ— 유용 - 미래의 λ””ν΄νŠΈ?
  3. strictUnits: true - 였λ₯˜ λ°œμƒ(이것이 μ–Όλ§ˆλ‚˜ μœ μš©ν•œμ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.)

이 λ¬Έμ œλŠ” λ‹¨μœ„/μ‚°μˆ  μ²˜λ¦¬μ— λŒ€ν•œ 개인적인 의견이 μ•„λ‹™λ‹ˆλ‹€. 자체 λ¬Έμ„œλ₯Ό λ”°λ₯΄μ§€ μ•ŠλŠ” μ»΄νŒŒμΌλŸ¬μ— κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€. (λ‚˜λ¨Έμ§€λŠ” 예λ₯Ό λ“€μ–΄ https://github.com/less/less.js/issues/1366#issuecomment-342361948 μ°Έμ‘°).

이 λ¬Έμ œλŠ” λ‹¨μœ„/μ‚°μˆ  μ²˜λ¦¬μ— λŒ€ν•œ 개인적인 의견이 μ•„λ‹™λ‹ˆλ‹€. 자체 λ¬Έμ„œλ₯Ό λ”°λ₯΄μ§€ μ•ŠλŠ” μ»΄νŒŒμΌλŸ¬μ— κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€.

λ„€, μ•Œκ² μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ꢁ극적으둜 μ–΄λ–»κ²Œ "κ³ μΉ " 것인가에 κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€. κ·Έλ ‡μ£ ? κ·Έλž˜μ„œ μ €λŠ” 이것이 κ³ μΉ  μ‹œκ°„μ΄ μ—†λ‹€κ³  μƒκ°ν•˜λ©° λŒ€μ‹  더 직관적인 λ™μž‘μ„ ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ„€, 그건 κ·Έλƒ₯ 제 μƒκ°μž…λ‹ˆλ‹€.

@seven-phases-max μ°Έκ³  사항: λŒ€λΆ€λΆ„μ˜ λ‹¨μœ„ μž‘λ™ 방법을 λ‹€μ‹œ μž‘μ„±ν–ˆμœΌλ©° μ‹€μ œλ‘œ μ΅œμ’… λ‹¨μœ„λ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•΄ μ΄μƒν•œ 곑예λ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μœ λ‹›μ„ κ°•μ œν•˜λŠ” 것이 μ˜΅μ…˜μ΄ 전달될 λ•Œ μ™Όμͺ½ μœ λ‹›μ΄ 이기면 훨씬 더 κ°„λ‹¨ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€.

(μ—„κ²©ν•œ λ‹¨μœ„ κ°œμ„  κ°€λŠ₯성에 λŒ€ν•΄ λ‹€λ₯Έ 의견이 μžˆλŠ” λͺ‡ 개의 μŠ€λ ˆλ“œκ°€ μžˆμ—ˆμ§€λ§Œ 그것이 트래컀 전체에 퍼쑌기 λ•Œλ¬Έμ—(λ˜λŠ” 적어도 μ „μš© μŠ€λ ˆλ“œλ₯Ό 빨리 찾을 수 μ—†μŒ) μ €λŠ” λ‹¨μˆœνžˆ 핡심 뢀뢄을 듀릴 것 κ°™μŠ΅λ‹ˆλ‹€.)
에 λŒ€ν•œ 개인적인 생각

μ—„κ²©ν•œ λ‹¨μœ„: ? - 예: 1px / 1px // 좜λ ₯ 1, 100vh - 10px // 좜λ ₯ 100vh - 10px

(κ²°κ³Ό/λ…Έλ ₯ λΉ„μœ¨ λ•Œλ¬Έμ—) κ°€μΉ˜κ°€ 없을 κ²ƒμž…λ‹ˆλ‹€. 즉, μ‹€μ œλ‘œ κ°œμ„ ν•  사항이 μ—†μŠ΅λ‹ˆλ‹€(μœ„μ™€ 같이 λͺ…λ°±ν•œ 버그λ₯Ό μˆ˜μ •ν•˜λŠ” 것 μ œμ™Έ).

(이것과 μ΅œμ†Œν•œμ˜ κ°’/μž‘μ—… νŒ¨ν„΄/예제λ₯Ό ν•˜λ“œμ½”λ”©ν•˜λŠ” 것에 λ°˜λŒ€ν•˜μ—¬) μ§„μ •μœΌλ‘œ μΌλ°˜ν™”ν•˜λ €λ©΄ λͺ¨λ“  일반적인 μ‚°μˆ  등식을 μ μ ˆν•˜κ²Œ μ²˜λ¦¬ν•΄μ•Ό ν•˜λ―€λ‘œ pxΒ² 와 같은 "ν—ˆμˆ˜" λ‹¨μœ„λ₯Ό λ„μž…ν•΄μ•Ό ν•©λ‹ˆλ‹€. λΉ„μŠ·ν•œ. 예 : a: 1px; b: 2px; c: 4px; 의 μ˜ˆμƒ κ²°κ³Ό a*b/c (λΆ„λͺ…νžˆ λ°›μ•„λ“€μ΄λŠ” (a*b)/c = a*(b/c) 것) .5px 의 κ²°κ³Ό 즉 a*b μžˆμ–΄μ•Όν•©λ‹ˆλ‹€ 2pxΒ² (적어도 λ‚΄λΆ€μ μœΌλ‘œλŠ”).

λ‹€λ₯Έ κ΅¬ν˜„ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€( 1/1hz = 1s λ“±κ³Ό 같은 것을 κ³„μ‚°ν•˜λŠ” 것도 μ΄μƒν•˜κ²Œ 보일 κ²ƒμ΄μ§€λ§Œ κ³΅μ‹μ μœΌλ‘œλŠ”...) μ„ΌνŠΈλ‘œ 계산: CSS Units κ°€ λ„ˆλ¬΄ 큰 곰이라고 λ§ν–ˆμŠ΅λ‹ˆλ‹€. 이유 없이 찌λ₯΄λ‹€(" 1px/1px = 1 와 같은 것이 μ§κ΄€μ μœΌλ‘œ 보이기 λ•Œλ¬Έμ— ").

strictUnits: true - 였λ₯˜ λ°œμƒ(이것이 μ–Όλ§ˆλ‚˜ μœ μš©ν•œμ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.)

기본적으둜 λ‹¨μœ„ μ „νŒŒ 및/λ˜λŠ” ν˜Όν•© λ‹¨μœ„κ°€ λ§ˆμŒμ— 듀지 μ•ŠμœΌλ©΄ μ΄λŸ¬ν•œ μ‚°μˆ μ„ ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” 더 μ—„κ²©ν•œ μ½”λ”© μŠ€νƒ€μΌμ„ λ„μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€(λ”°λΌμ„œ ν˜„μž¬ strictUnits: true λŠ” 기본적으둜 이 μ½”λ”© μŠ€νƒ€μΌμ„ κ°•μ œν•˜λŠ” μ˜΅μ…˜μž…λ‹ˆλ‹€).

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰