GiantStepDEV
article thumbnail

CSS ๋ณ€ํ™˜ ํšจ๊ณผ๋Š” ์š”์†Œ๋ฅผ ํšŒ์ „, ์ด๋™, ํฌ๊ธฐ, ๊ธฐ์šธ๊ธฐ ์กฐ์ ˆ ๋“ฑ์˜ ๋ณ€ํ™˜์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

transform ์†์„ฑ

2์ฐจ์› ์ขŒํ‘œ ์ด๋™ํ•˜๊ธฐ

๐Ÿ”ตtransform: translate() ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ ํ˜„์žฌ ์œ„์น˜์—์„œ ์ผ์ • ๊ฑฐ๋ฆฌ๋งŒํผ ์ด๋™ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ ํ•ฉ๋‹ˆ๋‹ค.

  • translate(x, y) : x์ถ•๊ณผ y์ถ•์„ ๋™์‹œ์— ์ด๋™ ํ•ฉ๋‹ˆ๋‹ค.
  • translateX() : x์ถ•์œผ๋กœ ์ด๋™ ํ•ฉ๋‹ˆ๋‹ค.
  • translateY() : y์ถ•์œผ๋กœ ์ด๋™ ํ•ฉ๋‹ˆ๋‹ค.
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .box {
      width: 100px;
      height: 100px;
      background-color: red;
    }
    .box:hover {
      transform: translate(100px, 200px);
    }
  </style>
</head>
<body>
  <div class="box"></div>
</body>
</html>

2์ฐจ์› ํ™•๋Œ€ ๋˜๋Š” ์ถ•์†Œํ•˜๊ธฐ

๐Ÿ”ตtransform: scale() ํ•จ์ˆ˜๋Š” ์š”์†Œ๋ฅผ ํ™•๋Œ€ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • transform: scaleX(n) : x์ถ• ๋ฐฉํ–ฅ์œผ๋กœ n๋ฐฐ ํ™•๋Œ€
  • transform: scaleY(n) : y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ n๋ฐฐ ํ™•๋Œ€
  • transform: scale(n, n) : x์ถ•, y์ถ• ๋ฐฉํ–ฅ์œผ๋กœ n๋ฐฐ ํ™•๋Œ€
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .box {
      position: absolute;
      left: 100px;
      top: 150px;
      width: 100px;
      height: 100px;
      background-color: red;
    }
    .box:hover {
      transform: scaleX(2);
    }
  </style>
</head>
<body>
  <div class="box"></div>
</body>
</html>

.box:hover {
      transform: scale(2,2);
    }

2์ฐจ์› ๊ธฐ์šธ์ด๊ธฐ

๐Ÿ”ต transform: skew(n deg, n deg); ๋Š” ์š”์†Œ๋ฅผ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .box {
      position: absolute;
      left: 100px;
      top: 150px;
      width: 100px;
      height: 100px;
      background-color: red;
    }
    .box:hover {
      transform: skew(30deg, 30deg);
    }
  </style>
</head>
<body>
  <div class="box"></div>
</body>
</html>

2์ฐจ์› ํšŒ์ „ํ•˜๊ธฐ

๐Ÿ”ต transform: rotate(n deg); ๋Š” ์š”์†Œ๋ฅผ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค.

๐Ÿ”ต ์ธ์ž๋กœ ๊ฐ๋„๋ฅผ ๋„ฃ๋Š”๋ฐ ์–‘์ˆ˜๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํšŒ์ „ํ•˜๊ณ , ์Œ์ˆ˜๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „ ํ•ฉ๋‹ˆ๋‹ค.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .box {
      position: absolute;
      left: 100px;
      top: 150px;
      width: 100px;
      height: 100px;
      background-color: red;
    }
    .box:hover {
      transform: rotate(45deg);
    }
  </style>
</head>
<body>
  <div class="box"></div>
</body>
</html>

transform-origin ์†์„ฑ

๐Ÿ”ต rotate() ํ•จ์ˆ˜๋Š” ์š”์†Œ๊ฐ€ ํšŒ์ „ํ•  ๋•Œ ์š”์†Œ์˜ ์ค‘์‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ํšŒ์ „ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”ต ๋ณ€ํ˜• ๊ด€๋ จ ์†์„ฑ๊ฐ’๋“ค์€ ํ•ญ์ƒ ๊ธฐ์ค€์ ์„ ๊ฐ€์ง€๊ณ  ๋ณ€ํ˜•์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”ต ๊ทธ๋ž˜์„œ ๊ธฐ์ค€์ ์„ ๋ฐ”๊พธ๋ฉด ๋ณ€ํ˜• ํšจ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์ ์šฉ ๋ฉ๋‹ˆ๋‹ค.

transform-origin: [x์ถ• ์œ„์น˜] [y์ถ• ์œ„์น˜];

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>๋ณ€ํ™˜ํšจ๊ณผ</title>
  <style>
    .container {
      border: 1px solid black;
      display: inline-block;
      margin: 20px;
    }
    .box {
      width: 100px;
      height: 100px;
      background-color: red;
    }
    .box:hover {
      transform: rotate(30deg); /* ์˜ค๋ฅธ์ชฝ์œผ๋กœ 30๋„ ํšŒ์ „ */
      transform-origin: top left; /* ์™ผ์ชฝ ์œ„ ๋ชจ์„œ๋ฆฌ ๊ธฐ์ค€์  ์ง€์ • */
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="box"></div>
  </div>
</body>
</html>

 

profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!