1. CSS 추가 규칙

 

● CSS 추가 규칙

 - 스타일시트에서 앞에 @를 붙여서 만든 사용자 지정 규칙

 

1) @import 규칙

 - 다른 CSS 파일을 불러오는 규칙

 

2) font-face 규칙

 - 웹 폰트를 설정하는 규칙

 

3) @media 규칙

 - 미디어 쿼리를 통해 지정된 장치나 조건에 맞는 스타일 블록을 적용하도록 지정하는 규칙

 


1) @import 규칙

 

- CSS 파일에서 다른 CSS 파일을 불러오는 규칙

※ 성능이 좋지 않아 link 태그로 대체하는 것이 좋다.

 

     common.css : 

     body {...}

     h1 {...}

     header {...}

 

     #wrap {...}

     #gnb {...}

     page.css :

     @import url('common.css');

     

     #wrap {...}

     #page {...}

     #lnb {...}

 

 

 

2) @font-face 규칙

 

● 사용자의 컴퓨터에 설치되지 않은 글꼴을 사용하도록 설정

 - 웹 폰트를 사용자의 브라우저에서 다운로드 해 사용하도록 설정

 - 용량 등의 문제로 인해 많이 사용하지 않는 규칙

 

<style>
    @font-face {
        font-family: 'NanumGothic';
        src: local('NanumGothic'), url('NanumGothic.ttf');
    }
    body {
        font-family: 'NanumGothic', sans-serif;
    }
</style>

 

 

3) @media 규칙

 

● 다양한 장치에서 HTML 문서가 적절한 형태를 갖도록 하는 규칙

 - 하나의 HTML 문서로 다양한 장치에서 사용하기 위해 부각되는 규칙

 - @media 규칙은 미디어 타입과 함께 사용

 - 미디어 쿼리(Media query)를 통해 장치를 구분하거나 장치의 크기의 비율 등을 구분할 수 있다.

 


2. 반응형 웹

 

반응형 웹(Responsive Web)이란?

 

 - 가변 그리드, 가변 이미지, 미디어 쿼리를 이용해 하나의 소스(One Code)로 제작된 콘텐트가 다양한 크기의 모바일 기기에 맞춰 해상도와 화면이 동적으로 변하는 기술(One source, Multi-use)

 - 이를 통해 사용자는 어떤 크기의 디스플레이에서 사이트를 방문하든 보다 높은 차원의 사용성 경험을 제공 받을 수 있다.

 

반응형 웹 특징

 

- 하나의 콘텐트에는 오직 하나의 HTML 소스만!

- 특정 장치에 최적화된 여러 벌의 HTML이 있으면 '반응형'DLFKRH GKWL DKSGDMA

- 특정 장치에 최적화된 페이지로 연결되는 별도의 URL이 있으면 '반응형'이라고 하지 않음

 

 

3. 미디어 쿼리(Media Query)

- 미디어 타입과 미디어 속성의 상태를 확인하는 표현식으로 구성

- 미디어 쿼리에서 미디어 속성의 상태를 확인하는 표현식은 생략 가능

 - 미디어 쿼리를 사용함으로써, 콘텐츠 자체를 변경하지 않고 출력 기기의 고유 점위에 맞춰 표시하는 게 가능

 

     Media Query : 

       @media [ only | not ]  media_type  [ and | , ]  (expression)  { css_block }

 

     Expression :

       (media_feature : expr)

 

4. 미디어 타입

- 미디어 타입(Media Type)을 통해 출력하는 기기(Device)를 구분

 

미디어 속성 설명
all 모든 미디어 타입
screen 화면에 출력
print 프린터로 출력

 

5. 미디어 속성

- 미디어 속성(Media Feature)을 사용해 화면 크기, 화면 비율 등을 구분

 

미디어 속성 설명
width, height

화면의 너비와 높이 구분(min, max)

device-width, device-height

기기의 너비와 높이 구분(min, max)

orientation 기기의 방향
device-aspect-ratio 기기의 화면 비율(min, max)
color, color-index 기기의 색상 비트와 표현 가능한 최대 색상 개수(min, max)
resolution 기기의 해상도(min, max)

 

6. 각종 기기 혹은 화면의 최소 너비

 

기기 최소 너비
스마트폰 320px
태플릿 PC 768px
고정 폭 웹 페이지 940px, 960px
노트북 컴퓨터 1024px
데스크톱 PC 1024px

 

● min-width 속성과 max-width 속성으로 기기의 화면 크기 구분

보통 반응형 웹에서는 3단계로 화면 너비 구분

  • 모바일 웹 : (max-width : 767px)
  • 태플릿 PC : (min-width : 768px) and (max-width : 1023px)
  • 일반 웹 페이지 : (min-width : 1024px)

 


<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width">
        <meta charset="utf-8">
        <title>반응형 웹</title>
        <link rel="stylesheet" href="reset.css">
        <style>
            
            /* 반응형 웹(responsive web)을 위한 미디어 쿼리 */

            /* 중단점: 768px, 1024px */
            /* 1. width < 767px */
            /* 2. 768px < width < 1023px */
            /* 3. 1024px < width */

            /* 0. 모든 해상도에서 공통적으로 적용되는 CSS 블록 */
            #box {
                font-size: 2em;
                font-weight: 900;
                letter-spacing: -1px;
                padding: 1em 2em;
            }

            /* 1. width < 767px */
            /*    → (max-width: 767px) */
            @media screen and (max-width:767px) {
                #box { background-color: darkgreen; }
            }

            /* 2. 768px < width < 1023px */
            /*    → (min-width: 768px) and (max-width: 1023px) */
            @media screen and (min-width: 768px) and (max-width: 1023px) {
                #box { background-color: maroon; }
            }

            /* 3. 1024px < width */
            /*    → (min-width: 1024px) */
            @media screen and (min-width: 1024px) {
                #box { background-color: navy; }
            }

        </style>
    </head>
    <body>

        <div id="box">BOX</div>
    
    </body>
</html>