SCSS
λ Sassy CSSμ μ½μλ‘, κΈ°λ³ΈCSS
λ¬Έλ²μ κΈ°λ°μΌλ‘ λ³μ, μ€μ²© κ·μΉ, λ―Ήμ€μΈMixin
,import
λ±μ κΈ°λ₯μ μ 곡νμ¬CSS
λ₯Ό λ λͺ¨λννκ³ μ μ§λ³΄μνκΈ° μ½κ² λ§λ€μ΄ μ€λλ€.
$primary-color: #fff; body { background: $primary-color; }
SCSS
μμ λ³μλ $
κΈ°νΈλ‘ μμνλ©°, λ³μ μ΄λ¦ λ€μλ μ ν¨ν CSS
μλ³μκ° μ¬ μ μμ΅λλ€.
ul{ li{ display: inline-block; margin-right: 10px; a{ text-decoration: none; color: $primary-color; } } }
CSS
μ νμλ₯Ό μ€μ²©νμ¬ μ½λλ₯Ό λ κ°λ
μ± μκ² μμ±ν μ μλ κΈ°λ₯μ
λλ€.
$tablet:1023px; @mixin tablet(){ @media (max-width:$tablet) { @content; } } @include tablet{ flex-direction: column; padding: 0; height: auto; }
SCSS
μμ μ½λλ₯Ό μ¬μ¬μ©νκΈ° μν κΈ°λ₯ μ€ νλμ
λλ€. λ―Ήμ€μΈμ μ¬μ¬μ© κ°λ₯ν μ½λλ₯Ό μ μνκ³ νμν λλ§λ€ ν΄λΉ μ½λλ₯Ό λΆλ¬μ μ¬μ©ν μ μκ² ν©λλ€.
*Mixin
μ μ¬μ©νμ¬ λ³Έ νλ‘μ νΈμ Media Query
λ₯Ό μμ±νμμ΅λλ€.
@import './layout/header'; @import './layout/nav'; @import './layout/footer'; @import './page/main';
@import
λ SCSS
μμ μΈλΆ νμΌμ κ°μ Έμμ νμ¬ νμΌμ ν¬ν¨μν€λ κΈ°λ₯μ μ 곡ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ½λλ₯Ό λͺ¨λννκ³ μ¬λ¬ νμΌ κ°μ μ€νμΌμ μ½κ² 곡μ ν μ μμ΅λλ€.
@import './util/var'; @import './util/mixin'; @import './vendors/swiper-bundle'; @import './base/fonts'; @import './base/reset'; @import './base/common'; @import './layout/header'; @import './layout/nav'; @import './layout/footer'; @import './page/main';
μ¬μ΄νΈ μ λ°μ κ±Έμ³μ μ¬μ¬μ©λλ μ€νμΌμ μ μν©λλ€. (λ³μ, Mixin
λ±)
νλ‘μ νΈμμ μ¬μ©νλ μΈλΆ μ€νμΌμ λ£μ΅λλ€. (Swiper
, λΆνΈμ€νΈλ© λ±)
μ¬μ΄νΈ μ λ°μ κ±Έμ³μ μ¬μ¬μ©λλ μ€νμΌμ μ μν©λλ€. (fonts
, reset
, common
λ±)
μ¬μ΄νΈ ꡬ쑰μ ν΄λΉνλ λ μ΄μμμ λ£μ΅λλ€. (header
, footer
, nav
)
λͺ¨λ νμ΄μ§κ° κ°μ μ€νμΌμ μ¬μ©ν μλ μκΈ° λλ¬Έμ κ° νμ΄μ§μμ μ¬μ©λ ꡬ체μ μΈ μ€νμΌμ μ¬κΈ°μ λ£μ΅λλ€. main
, _νμ΄μ§ μ΄λ¦.scss
@mixin unit($prop, $num1:0){ @if($prop=='font'){ font-size: ($num1*100)/1920+vw; } } @include unit(font,66);
unit
μ΄λΌλ μ΄λ¦μ λ―Ήμ€μΈμ μ μ. unit
μ λ κ°μ 맀κ°λ³μ $prop
(μ΄λ¦)κ³Ό $num1
(λ³νν μ«μ)μ λ°κ² λλ©° $num1
μ κΈ°λ³Έκ°μ 0μΌλ‘ μ€μ
λ§μ½ $prop
μ΄ font
μ κ°μλ μ€νν μ μλλ‘ μ‘°κ±΄λ¬Έ μ²λ¦¬
font-size
μ vw
κ³μ°μ μ¬μ© ($num1*100)/1920+vw
@include
λ₯Ό μ¬μ©νμ¬ px
vw
λ‘ λ³ν
auto-fill
μ 그리λ 컨ν μ΄λμ μ¬μ© κ°λ₯ν 곡κ°μ 그리λ μμ΄ν μ μ΅λν λ§μ΄ λ°°μΉν©λλ€. λΉ κ³΅κ°μ΄ μκΈ°λ©΄ ν΄λΉ 곡κ°μ΄ λΉ μνλ‘ μ μ§λλ©° 컨ν μ΄λμ λΉ κ³΅κ°μ΄ μμ μ μμ΅λλ€.
auto-fit
μauto-fill
κ³Ό λΉμ·νμ§λ§, 그리λ μμ΄ν μ ν¬κΈ°κ° μμμ λΉ κ³΅κ°μ΄ μκΈΈ λ ν΄λΉ λΆλΆμ΄ μ±μμ§λλ€. 컨ν μ΄λμ λΉ κ³΅κ°μ΄ κ±°μ μκ±°λ μ ν μμ μ μμ΅λλ€.
minmax()
ν¨μλCSS
그리λ λ μ΄μμμμ μ¬μ©λλ©° 그리λμ ν λλ μ΄μ ν¬κΈ°λ₯Ό λμ μΌλ‘ μ§μ νλ λ° νμ©λ©λλ€.
*μ£Όλ‘ λ°μν μΉ λμμΈμμ μ¬μ©
.partner-list{ display: grid; grid-template-columns: repeat(auto-fit,minmax(504px,1fr)); border-top: 1px solid #464646; }
그리λ μμ΄ν
μ ν¬κΈ°λ₯Ό μ΅μ 504px
μμ μ΅λ 1fr
λ‘ μ€μ νμ¬ μ΅μ ν¬κΈ°λ₯Ό μ μ§νλ©΄μ λ¨μ 곡κ°μ λ°λΌ ν¬κΈ°κ° λ°μνμΌλ‘ μ‘°μ λλλ‘ νμμ΅λλ€.
[data-number]
μμ±μ κ°μ§ λͺ¨λ μμλ₯Ό μ νν ν κ°κ°μ λν΄ ν¨μλ₯Ό μ€ν (each
λ°λ³΅λ¬Έ μ¬μ©)
κ°μ²΄ startCount
μ μμ± var
λ₯Ό 0μΌλ‘ μ΄κΈ°ν
νμ¬ μ²λ¦¬ μ€μΈ data-number
μμ± κ°μ κ°μ Έμ targetNum λ³μμ ν λΉνκΈ°
gsap.to
λ₯Ό μ¬μ©νμ¬ κ°μ²΄ startCount
μ var
μμ±μ targetNum
κ°μΌλ‘ λ³κ²½
onUpdate
λ₯Ό μ¬μ©νμ¬ μ λλ©μ΄μ
μ΄ μ
λ°μ΄νΈ λ λλ§λ€ ν¨μκ° μ€νλ μ μκ² νκΈ°
λ³μ strLength
(λ¬Έμμ΄ κΈΈμ΄) μ΄κΈ°ν
쑰건문μ μ¬μ©νμ¬ λ¬Έμμ΄μ μμμ μ΄ ν¬ν¨λμ΄ μλμ§ νμΈ
μμμ μ΄ μμλ λ¬Έμμ΄μ μμμ μ κΈ°μ€μΌλ‘ λλκ³ μμ λ·μ리 λΆλΆ strArr[1]
μ κΈΈμ΄λ₯Ό κ³μ°
innerHTML
μ μ¬μ©νμ¬ λ΄μ©μ μ λλ©μ΄μ
μ€μΈ κ°μΌλ‘ κ°±μ μν€κΈ° (toFixed
ν¨μμ μμμ λ·μ리 λΆλΆμ κΈΈμ΄ strLength
λ₯Ό λ£μ΄ μμμ λ·μ리 μλ₯Ό μ μ§νλλ‘ λ§λ€κΈ°)