Link Search Menu Expand Document

Responsive Web Design

Table of contents

  1. RWD Introduction
    1. What is Responsive Web Design?
    2. Setting The Viewport
    3. Size Content to The Viewport
  2. RWD Media Queries
    1. What is Media Queries?
    2. Media Types
    3. Media Queries Simple Examples
    4. Media Query can check this
    5. Media Query with Grid View
    6. Typical Device Breakpoints
    7. Orientation: Portrait / Landscape
  3. RWD Images
    1. Width and Max Width
    2. Background Images
    3. Picture Element
  4. RWD Frameworks
    1. W3.CSS
    2. Bootstrap

RWD Introduction

What is Responsive Web Design?

makes your web page look good on all devices

▸ uses only HTML and CSS

Setting The Viewport

already explained in HTML Responsible

Size Content to The Viewport

좋은 사용자 경험을 위해 가로 스크롤을 항상 방지해야함

  1. 요소에 뷰포트보다 큰 fixed 가로값을 사용하지 말기

  2. 픽셀의 화면 크기와 너비는 장치마다 크게 다르므로 내용을 잘 렌더링하기 위해 특정 뷰포트 너비에 의존해서는 안됨

  3. 페이지 요소에 CSS 너비를 절대값으로 크게 설정하면 요소가 더 작은 장치의 뷰포트에 비해 너무 넓다 (대신 width : 100 %와 같은 상대 너비 값을 사용)


RWD Media Queries

What is Media Queries?

uses the @media rule to include a block of CSS properties only if a certain condition is true

요소를 기기에 따라 숨기거나, CSS를 변형시킬 수 있다.

Syntax

@media not|only mediatype and (expressions) { CSS-Code; }

또한 아래와 같이 다른 미디어에 따라 다른 스타일 시트를 적용할 수 있다

<link rel="stylesheet" media="mediatype and|not|only (expressions)" href="print.css">

Media Types

ValueDescription
allUsed for all media type devices
printUsed for printers
screenUsed for computer screens, tablets, smart-phones etc.
speechUsed for screenreaders that “reads” the page out loud

Media Queries Simple Examples

@media screen and (min-width: 480px) {
  body {
    background-color: lightgreen;
  }
}
  • min-width : 브라우저의 가로값을 재는것

  • min-device-width : 디바이스의 가로값을 재는것

Media Query can check this

▸ width and height of the viewport ▸ width and height of the device ▸ orientation (is the tablet/phone in landscape or portrait mode?) ▸ resolution

Media Query with Grid View

전체화면을 12단으로 나눈 후 클래스를 미리 지정해주고 요소를 사용할 때 원하는 공간만큼 클래스를 넣어주는게 Grid View 기법 (부트스트랩과 흡사함)

/* 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%;}
}

위와같이 먼저 지정해 준 후, 기기에 따라 클래스를 준다

<div class="row">
  <div class="col-3 col-s-3">...</div>
  <div class="col-6 col-s-9">...</div>
  <div class="col-3 col-s-12">...</div>
</div>

Typical Device Breakpoints

기기별 끊어야 하는 가로값

/* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {...}

/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px) {...}

/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {...}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {...}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {...}

Orientation: Portrait / Landscape

  • Portrait : 세로값이 가로보다 클때
  • Landscape : 가로값이 세로보다 클때
@media only screen and (orientation: landscape) {
  body {
    background-color: lightblue;
  }
}

RWD Images

Width and Max Width

  • width : 원본보다 커지는 가로값

      <img src="https://gekdev.github.io/assets/images/cat1.jpg" style="width:100%;">
    
  • max-width : 원본보다 커지지 않는 가로값

      <img src="https://gekdev.github.io/assets/images/cat1.jpg" style="max-width:100%;height:auto;">
    

!Note

비디오도 동일하게 작동함

Background Images

background-size 확인하기

Picture Element

picture element 확인하기


RWD Frameworks

W3.CSS

<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

W3.CSS

Bootstrap

Recommended

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

Bootstrap


이 웹사이트는 jekyll로 제작되었습니다. Patrick Marsceill, Distributed by an MIT license.