๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CSS

[CSS] ์• ๋‹ˆ๋ฉ”์ด์…˜04 : ์›จ์ด๋ธŒ~~์›จ์ด๋ธŒ~~

by _ํ† ๋งคํ†  2022. 9. 19.
728x90

CSS : ์• ๋‹ˆ๋ฉ”๋‹ˆ์…˜ ๋งŒ๋“ค๊ธฐ : ๋ฌผ๊ฒฐ ์›จ~์ด๋ถ€~~~ ๐ŸŒŠ ๐ŸŒŠ

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” CSS ์‹ค์Šต์œผ๋กœ ์›๋“ค์ด ํ›Œ๋ž„๋ผ ํ•˜๋Š” ๋“ฏํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜„
์˜ค๋Š˜ ์‹ค์Šต์˜ ํฌ์ธํŠธ๋Š” ํผ๊ทธ์™€ SCSS ๊ทธ๋ฆฌ๊ณ  ๋ฐ˜๋ณต๋ฌธ์ž…๋‹ˆ๋‹ค~!


#1. PUG

๋‹ค์Œ์€ PUG ์ฝ”๋“œ์™€ ์ปดํŒŒ์ผํ•œ HTML ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค!

๐Ÿถ PUG

div.circle-wrap
  - for (var x =1; x <= 12; x++)
    div.row
      - for (var y = 1; y <= 12; y++)
        div.circle
๐Ÿ’ฟ HTML ์ปดํŒŒ์ผ ver
<div class="circle-wrap">
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
  <div class="row">
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
    <div class="circle"></div>
  </div>
</div>

#2. SCSS

๋‹ค์Œ์€ SCSS ์ฝ”๋“œ์™€ ์ปดํŒŒ์ผํ•œ CSS ์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค!
์˜ค๋Š˜์˜ ํฌ์ธํŠธ๋Š” mixin์ž…๋‹ˆ๋‹ค. SCSS๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

๐Ÿงธ SCSS

@mixin center {
  display : flex;
  align-items: center;
  justify-content: center;
}
body {
  @include center;
  height: 100vh;
  background-image: linear-gradient(45deg, #00DBDE 0%, #FC00FF 100%);
}
.row {
  display: flex;
  .circle {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin: 5px 10px;
    background: #fff;
    transform-origin : top center;
    animation : spin 1s linear infinite;
  }
  @keyframes spin {
    0% {transform : scale(1.1) rotate(0deg);}
    50% {transform : scale(0.2) rotate(180deg);}
    100% {transform : scale(1.1) rotate(360deg);}
  }
}
@for $i from 1 through 12 {
    .row:nth-child(#{$i}) .circle {animation-delay : 100ms * $i;}
}
๐ŸŽ€ CSS ์ปดํŒŒ์ผ ver
body {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background-image: linear-gradient(45deg, #00DBDE 0%, #FC00FF 100%);
}

.row {
  display: flex;
}
.row .circle {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin: 5px 10px;
  background: #fff;
  transform-origin: top center;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  0% {
    transform: scale(1.1) rotate(0deg);
  }
  50% {
    transform: scale(0.2) rotate(180deg);
  }
  100% {
    transform: scale(1.1) rotate(360deg);
  }
}

.row:nth-child(1) .circle {
  animation-delay: 100ms;
}

.row:nth-child(2) .circle {
  animation-delay: 200ms;
}

.row:nth-child(3) .circle {
  animation-delay: 300ms;
}

.row:nth-child(4) .circle {
  animation-delay: 400ms;
}

.row:nth-child(5) .circle {
  animation-delay: 500ms;
}

.row:nth-child(6) .circle {
  animation-delay: 600ms;
}

.row:nth-child(7) .circle {
  animation-delay: 700ms;
}

.row:nth-child(8) .circle {
  animation-delay: 800ms;
}

.row:nth-child(9) .circle {
  animation-delay: 900ms;
}

.row:nth-child(10) .circle {
  animation-delay: 1000ms;
}

.row:nth-child(11) .circle {
  animation-delay: 1100ms;
}

.row:nth-child(12) .circle {
  animation-delay: 1200ms;
}

728x90

๋Œ“๊ธ€


Lucky Charms Rainbow
js
html
css