๊ด€๋ฆฌ ๋ฉ”๋‰ด

Bin's Blog

[์œ ๋ฐ๋ฏธx์Šค๋‚˜์ดํผํŒฉํ† ๋ฆฌ] 10์ฃผ ์™„์„ฑ ํ”„๋กœ์ ํŠธ ์บ ํ”„ 9์ผ์ฐจ - CSS ํ™œ์šฉ ๋ณธ๋ฌธ

ํ•™์Šต์ผ์ง€

[์œ ๋ฐ๋ฏธx์Šค๋‚˜์ดํผํŒฉํ† ๋ฆฌ] 10์ฃผ ์™„์„ฑ ํ”„๋กœ์ ํŠธ ์บ ํ”„ 9์ผ์ฐจ - CSS ํ™œ์šฉ

hotIce 2023. 6. 15. 00:27
728x90

๐Ÿค” CSS๋ž€? 

๐Ÿ‘‰ CSS๋Š” Cascading Style Sheets์˜ ์•ฝ์ž์ด๋‹ค.

๐Ÿ‘‰ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ์›น ํŽ˜์ด์ง€์˜ ๋ ˆ์ด์•„์›ƒ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ‘‰ ์™ธ๋ถ€ ์Šคํƒ€์ผ์‹œํŠธ๋Š” CSS ํŒŒ์ผ์— ์ €์žฅ๋œ๋‹ค. 

๐Ÿ‘‰ Cascading: ์—ฐ์†ํ™” => CSS์—์„œ ์Šคํƒ€์ผ์ด ์ ์šฉ๋  ๋•Œ๋Š”, ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ  ์ ์šฉ๋œ๋‹ค. ์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ ์šฉ๋˜๋Š” ๊ณผ์ •์ด ๋งˆ์น˜ ํญํฌ์ฒ˜๋Ÿผ ์œ„์—์„œ ์•„๋ž˜๋กœ ๋–จ์–ด์ง€๋Š” ๋ชจ์–‘์ด๊ธฐ ๋•Œ๋ฌธ์— Cascade๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋ถ™๋Š”๋‹ค.

 

1๏ธโƒฃ CSS Selector

๐Ÿ‘‰  css ์„ ํƒ๊ธฐ๋Š” ์Šคํƒ€์ผ์„ ์ง€์ •ํ•  HTML ์š”์†Œ๋ฅผ "์ฐพ๋Š”"(๋˜๋Š” ์„ ํƒํ•˜๋Š”)๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. 

<!--์š”์†Œ ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ HTML ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค-->
p {
  text-align: center;
  color: red;
}

<!--id ์„ ํƒ์ž๋Š” HTML ์š”์†Œ์˜ id ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ •์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค.-->
#para1 {
  text-align: center;
  color: red;
}

<!-- ํด๋ž˜์Šค ์„ ํƒ๊ธฐ๋Š” ํŠน์ • ํด๋ž˜์Šค ์†์„ฑ์„ ๊ฐ€์ง„ HTML ์š”์†Œ๋ฅผ ์„ ํƒํ•œ๋‹ค-->
.center {
  text-align: center;
  color: red;
}

๐Ÿ‘‰   ์ฝ”๋“œ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ ค๋ฉด ์„ ํƒ๊ธฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

h1, h2, p {
   text-align: center;
   color: red;
}

 

2๏ธโƒฃ CSS ์‚ฝ์ž…ํ•˜๋Š” ๋ฒ•

<!-- 1.๋‚ด๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ-->
<head>
<style>
body {
    background-color: red;
}

h1 {
    color: maroon;
    margin-left: 40px;
}
<style>
</head>



<!-- 2.์™ธ๋ถ€ ์Šคํƒ€์ผ ์‹œํŠธ๋ฅผ import ํ•˜์—ฌ ์‚ฌ์šฉ-->
<link rel="stylesheet" type="text/css" href="mystyle.css">
<link rel="stylesheet" type="text/css" href="http://cdn.site.com/css/mystyle.css">


<!-- 3.์ธ๋ผ์ธ ์Šคํƒ€์ผ ์‹œํŠธ: html ํŒŒ์ผ์—์„œ ์Šคํƒ€์ผ ์ง์ ‘ ์ง€์ • -->
<h1 style="color:blue; margin-left:30px;">This is a heading</h1>

 

3๏ธโƒฃ CSS ์šฐ์„  ์ ์šฉ ์ˆœ์œ„

๐Ÿ‘‰ ์šฐ์„ ์ˆœ์œ„ 1: ์†์„ฑ๊ฐ’ ๋’ค์— !important๊ฐ€ ๋ถ™์–ด ์žˆ๋Š” ์†์„ฑ

๐Ÿ‘‰ ์šฐ์„ ์ˆœ์œ„ 2: ์ธ๋ผ์ธ ์Šคํƒ€์ผ๋กœ ์ ์šฉ๋˜์–ด ์žˆ๋Š” ์†์„ฑ

๐Ÿ‘‰ ์šฐ์„ ์ˆœ์œ„ 3: ์„ ํƒ์ž์— id๊ฐ€ ์“ฐ์ธ ์†์„ฑ

๐Ÿ‘‰ ์šฐ์„ ์ˆœ์œ„ 4: class, attribute, pseudo-class๋กœ ์ง€์ •ํ•œ ์†์„ฑ

๐Ÿ‘‰ ์šฐ์„ ์ˆœ์œ„ 5: ํƒœ๊ทธ ์ด๋ฆ„์œผ๋กœ ์ง€์ •ํ•œ ์†์„ฑ

๐Ÿ‘‰ ์šฐ์„ ์ˆœ์œ„ 6: ๋ถ€๋ชจ ์š”์†Œ์— ์˜ํ•ด ์ƒ์†๋œ ์†์„ฑ

 

4๏ธโƒฃ ๊ธฐ๋ณธ ๋””์ž์ธ ์š”์†Œ

์†์„ฑ๋ช… ์˜๋ฏธ ์†์„ฑ๋ช… ์˜๋ฏธ
background-color ๋ฐฐ๊ฒฝ์ƒ‰ margin ๋ฐ”๊นฅ ์—ฌ๋ฐฑ ์„ค์ •
background-image ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€ ์ •์˜ padding ์•ˆ์ชฝ ์—ฌ๋ฐฑ ์„ค์ •
border ๊ฒฝ๊ณ„์„  ์Šคํƒ€์ผ ์ •์˜ color ๊ธ€์ž์ƒ‰์„ ๋ณ€๊ฒฝ
border-radius ํ…Œ๋‘๋ฆฌ ๋‘ฅ๊ธ€๊ฒŒ ์ฒ˜๋ฆฌ text-align ๊ธ€์ž ์ˆ˜ํ‰ ์ค‘์•™ ์ •๋ ฌ
letter-spacing text ์ž๊ฐ„ ์„ค์ • display none: ํ•ด๋‹น ๋ถ€๋ถ„์„ ์ˆจ๊น€
block: ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋ณด์ž„

 

5๏ธโƒฃ CSS ํ…Œ๋‘๋ฆฌ ์Šคํƒ€์ผ

๐Ÿ‘‰ auto - ๊ธฐ๋ณธ๊ฐ’์ด๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋†’์ด์™€ ๋„ˆ๋น„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

๐Ÿ‘‰ length - ๋†’์ด/๋„ˆ๋น„๋ฅผ px, cm ๋“ฑ์œผ๋กœ ์ •์˜ํ•œ๋‹ค.

๐Ÿ‘‰ % - ์ปจํ…Œ์ด๋‹ ๋ธ”๋ก์˜ ๋ฐฑ๋ถ„์œจ๋กœ ๋†’์ด/๋„ˆ๋น„๋ฅผ ์ •์˜ํ•œ๋‹ค.

๐Ÿ‘‰ initial - ๋†’์ด/๋„ˆ๋น„๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

๐Ÿ‘‰ inherit - ๋†’์ด/๋„ˆ๋น„๋Š” ๋ถ€๋ชจ ๊ฐ’์—์„œ ์ƒ์†๋œ๋‹ค.

 

6๏ธโƒฃ ์•„์ด์ฝ˜ & ๊ธ€๊ผด

<!-- ์•„์ด์ฝ˜ -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>fontawesome</title>
  </head>
  <body>
    <script src="https://kit.fontawesome.com/cd8d608180.js" crossorigin="anonymous"></script>

    <!-- https://fontawesome.com/search?s=light&f=sharp&o=r -->
    <i class="fa-sharp fa-solid fa-house"></i>
    <i class="fa-sharp fa-solid fa-paperclip"></i>
    <i class="fa-sharp fa-solid fa-bomb"></i>
    </div>
  </body>
</html>

<!-- ๊ธ€๊ผด -->
<head>
<link rel="stylsheet" href="https://fonts.googleapis.com/css?family-Sofia">
<style>
body {
  font-family: "Sofia", sans-serif;
}
</style>
</head>

 

7๏ธโƒฃ ์ž์ฃผ ์“ฐ๋Š” CSS Pseudo-class Selector

Selector ์˜ˆ์ œ ์„ค๋ช…
:active a:active ํ™œ์„ฑ ๋งํฌ๋ฅผ ์„ ํƒ
:hover a:hover ๋งˆ์šฐ์Šค ์˜ค๋ฒ„๊ฐ€ ๋˜๋Š” ๋งํฌ๋ฅผ ์„ ํƒ
:visited a:visited ๋ฐฉ๋ฌธํ•œ ๋ชจ๋“  ๋งํฌ ์„ ํƒ
:first-child p:first-child ๋ถ€๋ชจ์˜ ์ฒซ ๋ฒˆ์งธ ์ž์‹์ธ ๋ชจ๋“  <p> ์š”์†Œ๋ฅผ ์„ ํƒ
:nth-child(n) p:nth-child(2) ๋ถ€๋ชจ์˜ ๋‘ ๋ฒˆ์งธ ์ž์‹์ธ ๋ชจ๋“  <p> ์š”์†Œ๋ฅผ ์„ ํƒ

 

๐Ÿค” ๋‚ด๊ฐ€ ๋ชฐ๋ž๋˜ ๋ถ€๋ถ„๋“ค

1๏ธโƒฃ align-items vs align-content

๐Ÿ‘‰ align-items๋Š” ๋‹จ์ผ ๋ผ์ธ์—์„œ ์•„์ดํ…œ๋“ค์„ ์–ด๋–ป๊ฒŒ ์ •๋ ฌํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. ๋ฐ˜๋ฉด์— align-content๋Š” ์—ฌ๋Ÿฌ ๋ผ์ธ์˜ ์•„์ดํ…œ๋“ค ์‚ฌ์ด์˜ ๊ณต๊ฐ„์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ๋ถ„ํ• ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. 

 

2๏ธโƒฃ bootstrap์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ grid

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>2ํ–‰ 4์—ด ๊ทธ๋ฆฌ๋“œ</title>
    <style>
      .container {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: repeat(2, 1fr);
        grid-gap: 20px;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="item">๋‚ด์šฉ 1</div>
      <div class="item">๋‚ด์šฉ 2</div>
      <div class="item">๋‚ด์šฉ 3</div>
      <div class="item">๋‚ด์šฉ 4</div>
      <div class="item">๋‚ด์šฉ 5</div>
      <div class="item">๋‚ด์šฉ 6</div>
    </div>
  </body>
</html>

๐Ÿ‘‰ display: grid๋Š” ํ•ด๋‹น ์š”์†Œ๋ฅผ ๊ทธ๋ฆฌ๋“œ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งŒ๋“ ๋‹ค.

๐Ÿ‘‰ grid-template-columns: repeat(4, 1fr); ์ด ์†์„ฑ์€ ๊ทธ๋ฆฌ๋“œ์˜ ์—ด ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•œ๋‹ค. ๋„ค ๊ฐœ์˜ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์—ด์„ ๋งŒ๋“ค๊ณ   1fr์€ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ fraction์„ ์˜๋ฏธํ•œ๋‹ค. ์—ด์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ€๋กœ ๊ณต๊ฐ„์„ 4๋“ฑ๋ถ„ํ•œ๋‹ค.

๐Ÿ‘‰ grid-template-rows: repeat(2, 1fr); ์ด ์†์„ฑ์€ ๊ทธ๋ฆฌ๋“œ์˜ ํ–‰ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•œ๋‹ค. ๋‘ ๊ฐœ์˜ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ํ–‰์„ ๋งŒ๋“ค๊ณ   1fr์€ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ fraction์„ ์˜๋ฏธํ•œ๋‹ค. ํ–‰์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„ธ๋กœ ๊ณต๊ฐ„์„ 2๋“ฑ๋ถ„ํ•œ๋‹ค.

๐Ÿ‘‰ grid-gap:20px ์€ ๊ทธ๋ฆฌ๋“œ ์•„์ดํ…œ๋“ค ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์„ ์ •์˜ํ•œ๋‹ค. 

 

3๏ธโƒฃ transform๊ณผ animation

๐Ÿ‘‰ transform: ์ด ์†์„ฑ์€ ์š”์†Œ๋ฅผ ๋ณ€ํ˜•์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ๋ณ€ํ˜•์€ ์ด๋™(translate), ํ™•๋Œ€/์ถ•์†Œ(scale), ํšŒ์ „(rotate),๋“ฑ์„ ํฌํ•จํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์š”์†Œ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 50px, ์•„๋ž˜๋กœ 100px ์ด๋™์‹œํ‚ค๋ ค๋ฉด transform: translate(50px, 100px);๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์š”์†Œ๋ฅผ ๋‘ ๋ฐฐ๋กœ ํ™•๋Œ€ํ•˜๋ ค๋ฉด transform: scale(2);๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ , ์š”์†Œ๋ฅผ 45๋„ ํšŒ์ „์‹œํ‚ค๋ ค๋ฉด transform: rotate(45deg);๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ณ€ํ˜•์„ ๋™์‹œ์— ์ ์šฉํ•˜๋ ค๋ฉด ๊ทธ๋ƒฅ ํ•œ ์ค„์— ๋‚˜์—ดํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, transform: translate(50px, 100px) scale(2) rotate(45deg);.

๐Ÿ‘‰ animation :์ด ์†์„ฑ์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ํ‚ค ํ”„๋ ˆ์ž„(@keyframes)์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ํ‚ค ํ”„๋ ˆ์ž„์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ ๋‹จ๊ณ„์—์„œ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ์ •์˜ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์š”์†Œ์˜ ๋ฐฐ๊ฒฝ์ƒ‰์„ 2์ดˆ ๋™์•ˆ ๋นจ๊ฐ„์ƒ‰์—์„œ ํŒŒ๋ž€์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

@keyframes change-color {
  from {
    background-color: red;
  }
  to {
    background-color: blue;
  }
}

.my-element {
  animation: change-color 2s;
}

์ด ์ฝ”๋“œ์—์„œ change-color๋Š” ์—๋‹ˆ๋ฉ”์ด์…˜์˜ ์ด๋ฆ„์ด๊ณ , 2s๋Š” ์—๋‹ˆ๋ฉ”์ด์…˜์˜ ์ „์ฒด ์‹œ๊ฐ„์ด๋‹ค. from์€ ์—๋‹ˆ๋ฉ”์ด์…˜์˜ ์‹œ์ž‘ ์ƒํƒœ๋ฅผ, to๋Š” ์—๋‹ˆ๋ฉ”์ด์…˜์˜ ์ข…๋ฃŒ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

4๏ธโƒฃ ::before๊ณผ ::after ์ฐจ์ด

๐Ÿ‘‰ ::before์™€ ::after๋Š” ๊ฐ€์ƒ ์š”์†Œ๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์„ ํƒํ•œ ์š”์†Œ์˜ ๋‚ด์šฉ ์•ž์ด๋‚˜ ๋’ค์— ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.  

๐Ÿ‘‰ ::before: ์ด ๊ฐ€์ƒ ์š”์†Œ๋Š” ์„ ํƒํ•œ ์š”์†Œ์˜ ๋‚ด์šฉ ์•ž์— ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ ํ—ค๋”ฉ ์•ž์— ์ž๋™์œผ๋กœ ๋ณ„ํ‘œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค

h2::before {
  content: "* ";
}

๐Ÿ‘‰ ::after: ์ด ๊ฐ€์ƒ ์š”์†Œ๋Š” ์„ ํƒํ•œ ์š”์†Œ์˜ ๋‚ด์šฉ ๋’ค์— ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ ๋งํฌ ๋’ค์— ํ™”์‚ดํ‘œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

a::after {
  content: " →";
}

๐Ÿ‘‰ ๋‘˜ ๋‹ค ํ…์ŠคํŠธ๋‚˜ ์ธ๋ผ์ธ ์š”์†Œ์˜ ์•ž์ด๋‚˜ ๋’ค์—๋งŒ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ผญ content ์†์„ฑ์„ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค. ํ…์ŠคํŠธ๋‚˜, ์ด๋ฏธ์ง€ or ์•„๋ฌด๊ฒƒ๋„ ์—†์–ด์„œ "" ๊ณต๋ฐฑ๋งŒ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋‹ค. 

 

5๏ธโƒฃ transition

๐Ÿ‘‰ transition์€ CSS ์†์„ฑ์˜ ๋ณ€ํ™”๋ฅผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, ํ•œ ์ƒํƒœ์—์„œ ๋‹ค๋ฅธ ์ƒํƒœ๋กœ ์š”์†Œ๋ฅผ ์• ๋‹ˆ๋ฉ”์ด์…˜ํ™”ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฒ„ํŠผ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ ๋ฐฐ๊ฒฝ์ƒ‰์ด ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ณ€๊ฒฝ๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ‘‰ transition ์†์„ฑ์—๋Š” ์ตœ๋Œ€ ๋„ค ๊ฐ€์ง€ ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ransition-property: ๋ณ€ํ™”๋ฅผ ์ค„ CSS ์†์„ฑ์„ ์ง€์ •ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด background-color, height, width ๋“ฑ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“  ์†์„ฑ์— ๋Œ€ํ•ด ์ „ํ™˜์„ ์ ์šฉํ•˜๋ ค๋ฉด all์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. transition-duration: ์ „ํ™˜ ํšจ๊ณผ์˜ ์ง€์† ์‹œ๊ฐ„์„ ์ง€์ •ํ•œ๋‹ค. ์ด ๊ฐ’์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ดˆ(s)๋‚˜ ๋ฐ€๋ฆฌ์ดˆ(ms)๋กœ ํ‘œ์‹œ๋œ๋‹ค.
  3. transition-timing-function: ์†์„ฑ ๊ฐ’์˜ ์ค‘๊ฐ„ ์ƒํƒœ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•œ๋‹ค. ์ด๋Š” ์ „ํ™˜ ํšจ๊ณผ๊ฐ€ ์‹œ์ž‘๊ณผ ๋์—์„œ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•œ๋‹ค๋‹ค. ์ผ๋ฐ˜์ ์ธ ๊ฐ’์œผ๋กœ๋Š” linear, ease, ease-in, ease-out, ease-in-out ๋“ฑ์ด ์žˆ๋‹ค.
  4. transition-delay: ์ „ํ™˜ ํšจ๊ณผ๊ฐ€ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ง€์ •ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฐ๊ฒฝ์ƒ‰์ด 2์ดˆ ๋™์•ˆ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ํŒŒ๋ž€์ƒ‰์—์„œ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋„๋ก ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

div {
  background-color: blue;
  transition: background-color 2s;
}

div:hover {
  background-color: red;
}

 

โ—๏ธ๋Š๋‚€์ 

๐Ÿ‘‰ ์–ด์ œ html ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ css ์ˆ˜์—…์„ ๋“ค์œผ๋ฉด์„œ ๋‚ด๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ์ž˜ ์•Œ์ง€ ๋ชปํ•˜๊ณ  ๊ทธ๋ƒฅ ์“ฐ๊ณ  ์žˆ์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ๋“ค์„์ˆ˜๋ก ์ƒˆ๋กœ์šด ๋ถ€๋ถ„๋„ ๋งŽ๊ณ  ๋” ๊นŠ๊ฒŒ ์•Œ์•„๊ฐ€๋Š” ๊ณผ์ •์„ ๊ฐ€์ ธ์„œ ๋„ˆ๋ฌด ์ข‹๋‹ค. 

๐Ÿ‘‰ mdn ๋ฌธ์„œ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ๊ฒƒ์„ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ด์•ผ๊ฒ ๋‹ค.

 

 

๋ณธ ํ›„๊ธฐ๋Š” ์œ ๋ฐ๋ฏธ-์Šค๋‚˜์ดํผํŒฉํ† ๋ฆฌ 10์ฃผ ์™„์„ฑ ํ”„๋กœ์ ํŠธ์บ ํ”„ ํ•™์Šต ์ผ์ง€ ํ›„๊ธฐ๋กœ ์ž‘์„ฑ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

728x90