๐ŸŽจ Frontend/HTML & CSS

CSS โ‘ง ๋ฐ˜์‘ํ˜• ์›น๊ณผ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ

kongmi 2023. 3. 20. 19:54

๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ

  • ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ๋””๋ฐ”์ด์Šค์—์„œ ์ผ๊ด€๋œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋””์ž์ธ ๋ฐฉ๋ฒ•๋ก  ์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ, ํ”Œ๋ ‰์Šค ๋ฐ•์Šค, ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ๋“ฑ์˜ CSS ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ

  • ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋Š” ๋ฏธ๋””์–ด ํƒ€์ž…๊ณผ ํŠน์ง•, ํ•ด์ƒ๋„์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์Šคํƒ€์ผ ์†์„ฑ์„ ์ ์šฉํ•˜๋Š” ๊ธฐ์ˆ 

๋ทฐํฌํŠธ

  • ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณผ ๋•Œ, ์‹ค์ œ ํ™”๋ฉด์— ๋ณด์ด๋Š” ์˜์—ญ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ๋Š” ๋ทฐํฌํŠธ๊ฐ€ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋กœ ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์›น ํŽ˜์ด์ง€๊ฐ€ ๋‹ค์–‘ํ•œ ๋ทฐํฌํŠธ ํฌ๊ธฐ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ทฐํฌํŠธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๋ทฐํฌํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๋ทฐํฌํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
<meta name="viewport" content="width=device-width, initial-scale=1.0">

โœ… VS Code์—์„œ ๋งŒ๋“œ๋Š” ๊ธฐ๋ณธ ์„ค์ •์ด์ž ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํŠน์„ฑ ์ž…๋‹ˆ๋‹ค.

โœ… html ๋ฌธ์„œ์˜ ๋„ˆ๋น„๋ฅผ ๊ธฐ๊ธฐ์˜ ๋„ˆ๋น„๋กœ ์„ค์ •ํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋ฉฐ, ์ด ๊ฐ’ ๋Œ€๋ฌธ์— ์–ด๋–ค ๊ธฐ๊ธฐ๋กœ ์ ‘์†ํ•˜๋”๋ผ๋„ ๋ทฐํฌํŠธ๋Š” ์ ‘์†ํ•œ ๊ธฐ๊ธฐ์˜ ํ•ด์ƒ๋„๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ธ์‹ ํ•ฉ๋‹ˆ๋‹ค.

๋ทฐํฌํŠธ ๋‹จ์œ„

  • vw(viewport width) : ๋ทฐํฌํŠธ ๋„ˆ๋น„์˜ 1%
  • vh(viewport height) : ๋ทฐํฌํŠธ ๋†’์ด์˜ 1%
  • vmin(viewport minimum) : ๋ทฐํฌํŠธ ๋„ˆ๋น„์™€ ๋†’์ด ์ค‘ ์ž‘์€ ๊ฐ’์˜ 1%
  • vmax(viewport maximum) : ๋ทฐํฌํŠธ ๋„ˆ๋น„์™€ ๋†’์ด ์ค‘ ํฐ ๊ฐ’์˜ 1%

๋ทฐํฌํŠธ ํฌ๊ธฐ์— ๋”ฐ๋ผ ํฐํŠธ ์‚ฌ์ด์ฆˆ ๋ณ€๊ฒฝ

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>viewport units</title>
  <style>
    h1{
      font-size:5vw;      
      text-align:center;
    }
  </style>  
</head>
<body>
  <h1>์•ˆ๋…•ํ•˜์„ธ์š”?</h1>             
</body>
</html>

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

@media only screen and (min-width:360px) and (max-width:720px) {
    /* CSS ์ฝ”๋“œ */
}

not / only

  • not : ๋’ค์— ์˜ค๋Š” ๋ชจ๋“  ์กฐ๊ฑด์„ ๋ถ€์ •
  • only : ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ธฐ๊ธฐ๋งŒ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ํ•ด์„ํ•˜๋ผ๋Š” ์˜๋ฏธ

mediatype

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๊ฐ€ ์ ์šฉ๋  ๋ฏธ๋””์–ด ํƒ€์ž…์„ ๋ช…์‹œ, ์ƒ๋žตํ•˜๋ฉด all๋กœ ์ธ์‹ ํ•ฉ๋‹ˆ๋‹ค.

media feature

๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๊ฐ€ ์ ์šฉ๋  ๋ฏธ๋””์–ด ์กฐ๊ฑด์„ ์ ์Šต๋‹ˆ๋‹ค.

๋ทฐํฌํŠธ ์ ์šฉ

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      width: 100px;
      height: 100px;
      background-color: red;
    }
    @media only screen and (max-width: 500px) {
      div {
        background-color: blue;
      }
    }
  </style>
</head>
<body>
  <div></div>
</body>
</html>

์ขŒ : ๋„ˆ๋น„๊ฐ€ 500 ์ด์ƒ ์ผ ๋•Œ / ์šฐ : ๋„ˆ๋น„๊ฐ€ 500 ๋ฏธ๋งŒ์ผ ๋•Œ