[CSS] Media Query

박시은·2023년 2월 1일
0

CSS

목록 보기
5/12
post-thumbnail

▶ 미디어 쿼리

▷ 미디어 쿼리 소개

  • 반응형 디자인이란? 화면의 크기에 따라 웹페이지의 각 요소들이 반응하여 최적화 된 모양으로 동작하는 것을 말한다.

  • 반응형 디자인을 CSS로 구현하기 위한 핵심적인 개념이 미디어 쿼리이다.

  • 미디어 쿼리는 여러가지 형태의 화면이 존재하는 세상에서 굉장히 중요한 역할을 한다.


아래의 코드를 기본형으로 하여 <div>태그를 화면의 크기에 따라 보이거나 안보이게 해보자.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                border: 10px solid green;
                font-size: 69px;
            }
        </style>
    </head>
    <body>
        <div>
            Responsive
        </div>
    </body>
</html>

  1. 현재 웹페이지 화면의 크기를 알아야 한다.
  • 개발자 도구를 띄어 현재 화면의 크기를 확인할 수 있다.


2. 다음과 같은 코드를 작성한다.

  • 스크린의 크기가 800px보다 크다면 div태그의 디스플레이를 none으로 한다.
  • 이해를 돕기 위해 다음과 같은 코드를 작성해주었다. (문법에 맞지 않는 설명만을 위한 코드이다)
 screen width > 800px
  • 위 코드를 미디어쿼리 코드로 바꿔보자
  • 아래 코드는 화면의 크기가 최소 800px 보다 크다면 중괄호 안에 있는 <div> 태그의 효과인 none이 동작할 수 있도록 하는 코드이다.
@media(min-width:800px){
	div{
		display:none;
	}
}
  • 짜잔!

전체 코드는 다음과 같다.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div{
                border: 10px solid green;
                font-size: 69px;
            }
            @media(max-width:800px){
                div{
                    display:none;
                }
            }
        </style>
    </head>
    <body>
        <div>
            Responsive
        </div>
    </body>
</html>

▷ 미디어 쿼리 사용하기

800px을 기준으로 800px보다 클 때와 작을 때의 디자인을 미디어 쿼리를 통해 변경해보자

  • 현재 디스플레이는 그리드로 나타나있는 상태이다.
  • 다음과 같은 코드를 추가 하여 디스플레이를 블록으로 바꿔보자
  /* screen width < 800px */
  @media(max-width:800px){
    #grid{
      display: block;
    }
  • 짜잔!


다음과 같은 코드를 추가하여 디스플레이가 800px보다 작을 때 <ol> 태그 옆의 세로선을 사라지게 해보자

  @media(max-width:800px){
    #grid{
      display: block;
    }
    ol{
      border-right: none;
    }
  }
  • 짜잔!


다음과 같은 코드를 추가하여 디스플레이가 800px보다 작을 때 <h`> 태그 아래의 가로선을 사라지게 해보자

  @media(max-width:800px){
    #grid{
      display: block;
    }
    ol{
      border-right: none;
    }
    h1{
      border-bottom: none;
    }
  }
  • 완성!
profile
블로그 이전했습니다!

0개의 댓글