Style Sheet/Sass

[SCSS] πŸ’Ž μ—°μ‚°μž (Operations) 정리

인파_ 2021. 10. 11. 02:50

scss-μ—°μ‚°μž

Operators (μ—°μ‚°μž)

Sass μ—μ„œλŠ” μˆ˜ν•™ μ—°μ‚°μžλ“€μ„ μ‚¬μš© ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

​

μ‚°μˆ  μ—°μ‚°μž

+ λ”ν•˜κΈ°  
- λΉΌκΈ°  
* κ³±ν•˜κΈ° ν•˜λ‚˜ μ΄μƒμ˜ 값이 λ°˜λ“œμ‹œ 숫자(Number)
/ λ‚˜λˆ„κΈ° 였λ₯Έμͺ½ 값이 λ°˜λ“œμ‹œ 숫자(Number)
% λ‚˜λ¨Έμ§€  

 

비ꡐ μ—°μ‚°μž

== 동등
!= λΆ€λ“±
< λŒ€μ†Œ / 보닀 μž‘μ€
> λŒ€μ†Œ / 보닀 큰
<= λŒ€μ†Œ 및 동등 / 보닀 μž‘κ±°λ‚˜ 같은
>= λŒ€μ†Œ 및 동등 / 보닀 ν¬κ±°λ‚˜ 같은

 

논리(뢈린, Boolean) μ—°μ‚°μž

and 그리고
or λ˜λŠ”
not λΆ€μ •

숫자(Numbers)

 

μƒλŒ€μ  λ‹¨μœ„ μ—°μ‚°

일반적으둠 μ ˆλŒ“κ°’μ„ λ‚˜νƒ€λ‚΄λŠ” px λ‹¨μœ„λ‘œ 연산을 ν•©λ‹ˆλ‹€λ§Œ, μƒλŒ€μ  λ‹¨μœ„(%, em, vw λ“±)의 μ—°μ‚°μ˜ 경우 CSS calc()둜 μ—°μ‚°ν•΄μ•Ό ν•©λ‹ˆλ‹€.

width: 50% - 20px;  /* λ‹¨μœ„ λͺ¨μˆœ μ—λŸ¬(Incompatible units error) */
width: calc(50% - 20px);  /* μ—°μ‚° κ°€λŠ₯ */

 

λ‚˜λˆ„κΈ° μ—°μ‚°μ˜ μ£Όμ˜μ‚¬ν•­

μ•„λž˜ 예제λ₯Ό 보면 λ‚˜λˆ„κΈ° μ—°μ‚°μžλ§Œ μ—°μ‚° λ˜μ§€ μ•Šκ³  κ·ΈλŒ€λ‘œ μ»΄νŒŒμΌλ©λ‹ˆλ‹€.

 

Sass

div {
  width: 20px + 20px;  // λ”ν•˜κΈ°
  height: 40px - 10px;  // λΉΌκΈ°
  font-size: 10px * 2;  // κ³±ν•˜κΈ°
  margin: 30px / 2;  // λ‚˜λˆ„κΈ°
}

CSS

div {
  width: 40px;  /* OK */
  height: 30px;  /* OK */
  font-size: 20px;  /* OK */
  margin: 30px / 2;  /* ?? */
}

 

λ”°λΌμ„œ /λ₯Ό λ‚˜λˆ„κΈ° μ—°μ‚° κΈ°λŠ₯으둜 μ‚¬μš©ν•˜λ €λ©΄ λ‹€μŒκ³Ό 같은 쑰건을 μΆ©μ‘±ν•΄μ•Ό ν•©λ‹ˆλ‹€.

  • κ°’ λ˜λŠ” κ·Έ 일뢀가 λ³€μˆ˜μ— μ €μž₯λ˜κ±°λ‚˜ ν•¨μˆ˜μ— μ˜ν•΄ λ°˜ν™˜λ˜λŠ” 경우
  • 값이 ()둜 λ¬Άμ—¬μžˆλŠ” 경우
  • 값이 λ‹€λ₯Έ μ‚°μˆ  ν‘œν˜„μ‹μ˜ μΌλΆ€λ‘œ μ‚¬μš©λ˜λŠ” 경우

Sass

div {
  $x: 100px;
  width: $x / 2;  /* λ³€μˆ˜μ— μ €μž₯된 값을 λ‚˜λˆ„κΈ° */
  height: (100px / 2);  /* κ΄„ν˜Έλ‘œ λ¬Άμ–΄μ„œ λ‚˜λˆ„κΈ° */
  font-size: 10px + 12px / 3;  /* λ”ν•˜κΈ° μ—°μ‚°κ³Ό 같이 μ‚¬μš© */
}

CSS

div {
  width: 50px;
  height: 50px;
  font-size: 14px;
}

 

 

문자(Strings)

문자 μ—°μ‚°μ˜ κ²°κ³ΌλŠ” 첫 번째 ν”Όμ—°μ‚°μžλ₯Ό κΈ°μ€€μœΌλ‘œ ν•©λ‹ˆλ‹€.
첫 번째 ν”Όμ—°μ‚°μžμ— λ”°μ˜΄ν‘œκ°€ λΆ™μ–΄μžˆλ‹€λ©΄ μ—°μ‚° κ²°κ³Όλ₯Ό λ”°μ˜΄ν‘œλ‘œ λ¬ΆμŠ΅λ‹ˆλ‹€.
λ°˜λŒ€λ‘œ 첫 번째 ν”Όμ—°μ‚°μžμ— λ”°μ˜΄ν‘œκ°€ λΆ™μ–΄μžˆμ§€ μ•Šλ‹€λ©΄ μ—°μ‚° 결과도 λ”°μ˜΄ν‘œλ₯Ό μ²˜λ¦¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

 

Sass

div::after {
  content: "Hello " + World;
  flex-flow: row + "-reverse" + " " + wrap
}

CSS

div::after {
  content: "Hello World";
  flex-flow: row-reverse wrap;
}

Reference

https://heropy.blog/2018/01/31/sass/