본문 바로가기
Frontend/CSS

10. CSS RWD(Responsive Web Design) & Media Queries

by 개발개발빈이 2022. 4. 8.

○ 반응형 웹 디자인 (RWD; Responsive Web Design)

    - 다양한 화면 크기에 맞게 웹사이트의 레이아웃(Grid)이 달라지는 웹페이지

    - PC, 스마트폰, 태블릿 등 접속하는 기기에 따라 화면의 크기가 자동으로 변하도록 디자인

    - 모든 장치에서 HTML문서를 잘 보이게 하기 위해 뷰포트 설정 필요 ( 08. HTML 메타(meta) 요소 참고) 

      <meta name="viewport" content="width=device-width, initial-scale=1.0">

 

○ 미디어 쿼리 (Media Queries)

    - 반응형 웹을 구현하기 위한 핵심기술 중 하나

    - 화면 사이즈를 인식해 크기마다 각각 다르게 CSS를 적용하는 것

    - 보통은 스마트폰, 태블릿, PC 3가지 화면 정도를 구분해줌

@charset "UTF-8";

/* layout.css */
/* https://www.w3schools.com/css/css_rwd_mediaqueries.asp 참고*/

* {
    box-sizing: border-box;
  }
  
  .row::after {
    content: "";
    clear: both;
    display: table;
  }
  
  [class*="col-"] {
    float: left;
    padding: 15px;
  }
  
  html {
    font-family: "Lucida Sans", sans-serif;
  }
  
  .header {
    background-color: #9933cc;
    color: #ffffff;
    padding: 15px;
  }
  
  .menu ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
  }
  
  .menu li {
    padding: 8px;
    margin-bottom: 7px;
    background-color: #33b5e5;
    color: #ffffff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
  }
  
  .menu li:hover {
    background-color: #0099cc;
  }
  
  .aside {
    background-color: #33b5e5;
    padding: 15px;
    color: #ffffff;
    text-align: center;
    font-size: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
  }
  
  .footer {
    background-color: #0099cc;
    color: #ffffff;
    text-align: center;
    font-size: 12px;
    padding: 15px;
  }
  
  /* 모바일, 태블릿, PC 별로 구별*/
  
  /* For mobile phones: */
  [class*="col-"] {
    width: 100%;
  }
  
  @media only screen and (min-width: 600px) {
    /* For tablets: */
    .col-s-1 {width: 8.33%;}
    .col-s-2 {width: 16.66%;}
    .col-s-3 {width: 25%;}
    .col-s-4 {width: 33.33%;}
    .col-s-5 {width: 41.66%;}
    .col-s-6 {width: 50%;}
    .col-s-7 {width: 58.33%;}
    .col-s-8 {width: 66.66%;}
    .col-s-9 {width: 75%;}
    .col-s-10 {width: 83.33%;}
    .col-s-11 {width: 91.66%;}
    .col-s-12 {width: 100%;}
  }
  @media only screen and (min-width: 768px) {
    /* For desktop: */
    .col-1 {width: 8.33%;}
    .col-2 {width: 16.66%;}
    .col-3 {width: 25%;}
    .col-4 {width: 33.33%;}
    .col-5 {width: 41.66%;}
    .col-6 {width: 50%;}
    .col-7 {width: 58.33%;}
    .col-8 {width: 66.66%;}
    .col-9 {width: 75%;}
    .col-10 {width: 83.33%;}
    .col-11 {width: 91.66%;}
    .col-12 {width: 100%;}
  }

모바일 레이아웃(너비600px미만)
태블릿 레이아옷(너비 600px이상 768px미만)
PC 레이아웃 (너비 768px이상)

 

'Frontend > CSS' 카테고리의 다른 글

09. CSS Transition & Animation  (0) 2022.04.07
08. CSS Transform  (0) 2022.04.06
07. CSS display 속성  (0) 2022.04.01
06. CSS Positioning (float, z-index)  (0) 2022.03.31
05. CSS Positioning (position 속성)  (0) 2022.03.30

댓글