본문 바로가기
WEB/CSS

[CSS] 반응형 웹

by snow_white 2022. 2. 11.
  • 미디어 쿼리 : 미디어 타입에 따라 CSS를 적용할 수 있는 기능

 

  • 반응형 웹 : 웹 페이지 하나로도 데스크톱, 테블릿 등에 맞게 디자인이 자동으로 변경 → 미디어 쿼리 사용

 

  • 뷰포트 설정

- meta 태그 : 웹 페이지에 추가 정보를 제공할 때 사용

- view port meta 태그 : name 속성에 viewport가 입력된 meta 태그

<meta name="viewport" content="user-scalable=no, initial-scale=1,maximum-scale=1">

설명
width 화면 너비 width=240
height 화면 높이 height=800
initial-scale 초기 확대 비율 initial-scale=2.0
user-scalable 확대 및 축소 가능 여부 user-scalable=no
minimum-scale 최소 축소 비율 minimum-scale=2.0
maximum-scale 최대 확대 비율 maximum-scale=2.0
target-densitydpi DPI 지정 target-denistydpi=medium-dpi
     
 
  • 뷰포트 메타 태그에 입력할 수 있는 값
width 화면 너비
height  화면 높이
initial-scale  초기 확대 비율
user-scalable  확대 및 축소 가능 여부
minumun-scale  최소 축소 비율
maximum-scale  최대 확대 비율
target-densitydpi  DPI 지정

 

  • 미디어 쿼리 설정

@-규칙 @-rule

- 스타일시트 내부에서 특정한 규칙을 표현하는 데 사용

- @import 규칙 - 외부 스타일을 가져옴

- @font-face 규칙 - 글꼴을 추가로 정의

@media (<미디어 쿼리>) {
	<CSS 코드>
}

media 속성

link 태그에 입력해서 해당 쿼리 조건에 맞는 장치에서만 CSS파일 불러옴

<link rel="stylesheet" href="<파일 이름>" media="<미디어 쿼리>">
<link rel="stylesheet" href="screen.css" media="screen" />
  • 모니터,프린터,테블릿,스마트폰,데스크톱 구분
<style>
	@media screen {
		body { background-color: red; }
	}
	@media print {
		body { background-color: green; }
	}
 	@media (max-width: 499px) {
		body { background: red; }
	}
 	@media (min-width: 500px) and (max-width: 799px) {
		body { background: green; }
	}
	@media (min-width: 800px) {
		body { background: blue; }
	}
</style>

 

  • 지원하는 미디어 타입
미디어 타입 설명
all 모든 장치
aural 음성 장치
braile
표시 전용 점자 장치
handheld
손으로 들고 다니는 작은 장치
print 프린터
projection 프로젝터
screen 화면
tty 텔레비전
embossed 인쇄 전용 점자 장치

 

  • 미디어 타입 연산자
연산자 설명
only '해당 장치에서만'을 나타냄
not '해당 장치를 제외한'을 나타냄
  • 미디어 타입과 특징

- orientation을 제외한 모든 속성은 min 접두사와 max 접두사를 붙일 수 있음

- and 연산자를 사용해 조건을 합칠 수도 있음 즉, 반응형 웹도 구축할 수 있음

- 일반적인 미디어 쿼리 작성 순서는 데스크톱 전용을 만든 후에 태블릿이나 스마트폰 순서

미디어 특징 설명
width 화면 너비
height 화면 높이
device-width
device-height
장치 너비
장치 높이
orientation 장치 방향
divce-aspect-ratio 화면 비율
color 장치 색상 비트
color-index 장치에서 표현 가능한 최대 색상 개수
monochrome 흑백 장치의 픽셀당 비트 개수
resolution 장치 해상도

 

  • 화면 방향 전환
@media screen and (orientation: portrait) { 		// 세로
	body { background-color: red; }
}
@media screen and (orientation: landscape) {	// 가로
	body { background-color: green; }
}
  • 반응형 웹 패턴 규칙

- HTML 태그 구성은 모바일 장치를 기준으로 함

- float 태그의 left와 right를 활용해 적당한 위치에 놓음

 

본문과 메뉴 두 가지로 구성된 페이지를 스마트폰과 데스크톱일 때의 위치 지정

모두 모바일 사이트에서는 width 속성과 float 속성 등 스타일을 해제하는 형태이다.

 

<head>
    <title>패턴1</title>
    <meta name="viewport" content="user-scalable=no,initial-scale=1,maximum-scale=1">
    <style>
        * { 
            margin:0; 
            padding: 0;
        }
        body {
            width: 960px;
            margin: 0 auto;
            overflow: hidden;
        }
        #menu {
            width: 260px;
            float: left;
        }
        #section {
            width: 700px;
            float: right; /* left로 입력해도 상관 없습니다. */
        }
        @media screen and (max-width: 767px) {
            /* 스마트폰 사이즈에서는 전부 해제합니다. */
            body { width: auto }
            #menu { width: auto; float: none; }
            #section { width: auto; float: none; }
        }
    </style>
</head>
<body>
    <div id="menu">
        <ul>
            <li>메뉴A</li>
            <li>메뉴B</li>
            <li>메뉴C</li>
        </ul>
    </div>
    <div id="section">
        <h1>Lorem ipsum</h1>
        <p>Lorem ipsum dolor sit amet</p>
    </div>
</body>

 

@import 규칙 : 외부 스타일을 가져옴

@font-face 규칙 : 글꼴을 추가로 정의

@media 규칙 : 미디어 쿼리 조건에 맞는 경우 css 적용

 

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

[CSS] CSS 레이아웃  (0) 2022.01.27
[CSS] CSS 박스 모델  (0) 2022.01.27
[CSS] 색상과 배경을 위한 스타일  (0) 2022.01.27
[CSS] 텍스트 관련 스타일  (0) 2022.01.20
[CSS] font-family 속성 - 구글 웹 폰트 사용하기  (0) 2022.01.20

댓글