λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ›Ή(IT) 정보/css

CSS3 Media Queries 미디어쿼리-λ°˜μ‘ν˜•νŽ˜μ΄μ§€λ§Œλ“€κΈ°

by λ‹ˆλͺ¨λ„€ 2017. 7. 30.
λ°˜μ‘ν˜•


μš”μ¦˜μ€ PC,νƒœλΈ”λ¦Ώ,λͺ¨λ°”일등 각쒅기기λ₯Ό ν†΅ν•œ 인터넷접속이 μΌμƒμƒν™œν™”κ°€ λ˜μ–΄κ°€κ³  μžˆλŠ”κ°€μš΄λ° μ•„μ§κΉŒμ§€λ„ PC버전 λͺ¨λ°”일버전 λ”°λ‘œ μž‘μ—…ν•˜λŠ” μ‚¬μ΄νŠΈ, μ‡Όν•‘λͺ°λ“€μ΄ λ„ˆλ¬΄λ‚˜λ„ λ§ŽμŠ΅λ‹ˆλ‹€.

λ¬Όλ‘ ν•„μš”μ— μ˜ν•΄μ„œ λ”°λ‘œ μž‘μ—…ν•˜λŠ”κ²Œ 도움이 될 λ•Œλ„ μžˆμŠ΅λ‹ˆλ‹€λ§Œ. μž‘μ—…μžμ—κ²ŒλŠ” λ„ˆλ¬΄λ‚˜λ„ 큰 고톡과 λ‘λ²ˆμ˜ μž‘μ—…μ„ κ±°μ³μ•Όν•˜λŠ” λΆˆνŽΈν•¨μ΄ λ§ŽμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ λͺ¨λ“  기기에 λΉ λ₯΄κ²Œ 맞좰 λŒ€μ‘ν•  수 μžˆλ„λ‘ λ§Œλ“€μ–΄ 진것이 λ―Έλ””μ–΄μΏΌλ¦¬μž…λ‹ˆλ‹€.

λ¬Όλ‘  미디어쿼리도 λ°˜μ‘ν˜•μ„ μƒκ°ν•΄μ„œ λ””μžμΈν•΄μ•Όν•˜κ³  CSS도 λ³΅μž‘ν•΄ 질 수 μžˆλ‹€λŠ” 단점이 μžˆμ§€λ§Œ PCλ”°λ‘œ MOBILEλ”°λ‘œ μž‘μ—…ν•˜λŠ”κ²ƒλ³΄λ‹¨ 훨씬 λΉ λ₯΄κ³  κ°„νŽΈν•˜λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

λ¨Όμ € ν•΄μƒλ„μ—λŒ€ν•΄ κ°„λ‹¨ν•˜κ²Œ μ§šκ³ λ„˜μ–΄κ°€λ³΄κ² μŠ΅λ‹ˆλ‹€.


크둬 μš”μ†Œκ²€μ‚¬μͺ½μœΌλ‘œκ°€λ©΄ μœ„μ™€κ°™μ΄ 해상도 탭이 μžˆλŠ”λ°μš”. λ‹€μŒκ³Ό 같은 μ’…λ₯˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

4K-2560px / Laptop L - 1440px / Laptop - 1024px /

Tablet - 768px /

Mobile L - 425px / Mobile M - 375px / Mobile S - 320px /

κΌ­ 정해진 것은 μ•„λ‹ˆκ³  ν‰κ· μ μœΌλ‘œ 이정도 μΈκ²ƒκ°™μŠ΅λ‹ˆλ‹€.


κ·Έλž˜μ„œ λ°˜μ‘ν˜•μ΄λž€ μ΄λ ‡μŠ΅λ‹ˆλ‹€. PC버전에 λ§žμΆ°μ„œ λ””μžμΈν•˜κ³  μ½”λ”©ν–ˆμ§€λ§Œ λΈŒλΌμš°μ € width=κ°€λ‘œμ‚¬μ΄μ¦ˆμ— λ”°λΌμ„œ CSS λ””μžμΈμ„ λ³€κ²½ν•˜μ—¬ μ‚¬μš©μžμ˜ UI듀이 각 기기에 맞좰 νŽΈλ¦¬ν•˜κ²Œ 보일 수 μžˆλ„λ‘ ν•˜λŠ”κ²ƒμ΄ λ°˜μ‘ν˜•μ˜ λͺ©μ μ΄μ§€μš”. λ°˜μ‘ν˜•μ—λŒ€ν•΄ 잘λͺ»μΈμ‹ν•˜κ³  계신뢄듀은 λ‹€ λ”°λ‘œλ§Œλ“œλŠ”μ€„ μ•Œκ³ κ³„μ‹ λΆ„λ“€λ„ λ§ŽμŠ΅λ‹ˆλ‹€. μš”μ¦˜ μ œμž‘λ˜λŠ” μ‚¬μ΄νŠΈλ“€ λŒ€λΆ€λΆ„μ΄ λ°˜μ‘ν˜•μ΄μ§€λ§Œ 그렇지 μ•Šμ€ μ‚¬μ΄νŠΈλ“€λ„ 아직은 λ„ˆλ¬΄λ‚˜λ„ λ§ŽμŠ΅λ‹ˆλ‹€.



본둠으둜 λ“€μ–΄κ°€λ΄…μ‹œλ‹€.

CSS3 λ―Έλ””μ–΄ νƒ€μž…

ALL - λͺ¨λ“  λ―Έλ””μ–΄ λ˜λŠ” 기기에 ν•΄λ‹Ήλ©λ‹ˆλ‹€.

PRINT - ν”„λ¦°ν„°μ‚¬μš©μ‹œ ν•΄λ‹Ήλ©λ‹ˆλ‹€.

SCREEN - μŠ€ν¬λ¦°μ— μ‚¬μš©λ˜λŠ”κ²ƒ PCν™”λ©΄,νƒœλΈ”λ¦Ών™”λ©΄,λͺ¨λ°”일화면등

보톡 ν”„λ¦°νŠΈλ‚˜ μŠ€ν¬λ¦°μ„ λ”°λ‘œ μ‚¬μš©ν•˜μ§„ μ•Šμ§€λ§Œ μ“°λŠ”κ²½μš°λ„ μžˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ ALL둜 ν‘œκΈ°ν•΄λ†“λŠ”κ²Œ 더 νš¨κ³Όμ μž…λ‹ˆλ‹€.


@media all and (max-width: 425px) {
}


μœ„μ— μ†ŒμŠ€μ™€ 같이 CSS νŒŒμΌμ— μΆ”κ°€ν•˜μ—¬ μž‘μ—…ν•˜λ©΄ ( ) 에 λͺ…μ‹œν•΄λ‘” μ‚¬μ΄μ¦ˆμ—μ„œ λΆ€ν„°λŠ” { } μ•ˆμ— ν‘œκΈ°λœ CSS κ°€ 적용되게 λ˜λŠ”κ²ƒμž…λ‹ˆλ‹€.

ν•œκ°€μ§€ 더 λ§μ”€λ“œλ¦¬λ©΄ (max-width) , (min-width) 두가지가 μžˆλŠ”λ°μš”.

maxλŠ” 0~425px κΉŒμ§€ { } μ•ˆμ— λ“€μ–΄κ°€λŠ” CSSλ₯Ό μ μš©ν•©λ‹ˆλ‹€.

min은 425λΆ€ν„° { } μ•ˆμ— λ“€μ–΄κ°€λŠ” CSSλ₯Ό μ μš©ν•©λ‹ˆλ‹€.

μ°©κ°ν•˜μ‹œκ³  μ™œ μ•ˆλ˜μ§€ 헀맀지 λ§ˆμ‹œκ³  min,maxλ₯Ό 잘 λ³΄μ‹œκΈΈ λ°”λžλ‹ˆλ‹€.



미디어쿼리λ₯Ό μ‚¬μš©ν•΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

보톡 μ•„λž˜μ™€ 같이 메뉴듀이 μ™Όμͺ½ 컨텐츠 뢀뢄이 κ°€μš΄λ° 였게 λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.

  • λ‹ˆλͺ¨1
  • λ‹ˆλͺ¨2
  • λ‹ˆλͺ¨3

λ‹ˆλͺ¨ ν™ˆνŽ˜μ΄μ§€μ— μ˜€μ‹ κ²ƒμ„ ν™˜μ˜ν•©λ‹ˆλ‹€.

μ»¨ν…μΈ λ‚΄μš©μž…λ‹ˆλ‹€.


width - 480 ν™”λ©΄ 예제

λ―Έλ””μ–΄ 쿼리λ₯Ό μ‚¬μš©ν•˜μ—¬ 화면이 480μ΄ν•˜μ—μ„  μ•„λž˜μ™€ 같이 λ°”λ€λ‹ˆλ‹€.
 

  • λ‹ˆλͺ¨1
  • λ‹ˆλͺ¨2
  • λ‹ˆλͺ¨3

λ‹ˆλͺ¨ ν™ˆνŽ˜μ΄μ§€μ— μ˜€μ‹ κ²ƒμ„ ν™˜μ˜ν•©λ‹ˆλ‹€.

μ»¨ν…μΈ λ‚΄μš©μž…λ‹ˆλ‹€.

html

<div id="sample_wrap">

 <div id="sample_side">

  <ul>

   <li>λ‹ˆλͺ¨1</li>

   <li>λ‹ˆλͺ¨2</li>

   <li>λ‹ˆλͺ¨3</li>

  </ul>

 </div>

 <div id="sample_contents">

 <h1>λ‹ˆλͺ¨ ν™ˆνŽ˜μ΄μ§€μ— μ˜€μ‹ κ²ƒμ„ ν™˜μ˜ν•©λ‹ˆλ‹€.</h1>

 <p>μ»¨ν…μΈ λ‚΄μš©μž…λ‹ˆλ‹€.</p>

 </div>

</div>


CSS

#sample_wrap {

  overflow: auto;

  border: 1px solid #ccc;

  padding: 5px;

}

#sample_side {

  width: 200px;

   float: left;

}

#sample_side ul li {background: #f9f9f9;

    border: 1px solid #ccc;

    list-style-type: none;

    margin: 5px;

    padding: 5px;

}

@media all and (max-width:480px){

#sample_side {float:none; width:auto;}

}


크게 바꾼건 CSS ν•œμ€„λ°–μ— μ—†μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 보기에도 왠지 κ·Έ 해상도에 λ§žλŠ” λ””μžμΈμ΄ λœκ²ƒκ°™μŠ΅λ‹ˆλ‹€. μ΄λŸ°ν˜•μ‹μœΌλ‘œ κΈ°νšλΆ€ν„° λ””μžμΈ κ΅¬μƒκΉŒμ§€ μš”μ¦˜μ˜ μ›ΉνŠΈλ Œλ“œ λ³€ν™” μ•„λ‹Œκ°€ μƒκ°ν•©λ‹ˆλ‹€.

λ°˜μ‘ν˜•

λŒ“κΈ€