프론트엔드 기본개념 복습/CSS

2021-10-02 반응형 웹

콘요맘떼 2021. 10. 3. 02:14

1. 반응형 웹 (Responsive Web)

- 하나의 HTML 파일과 하나의 URL로 각 기기 혹은 환경에 최적화된 웹페이지를 제공하는 것

- 모바일 기기 발전 초기에는 별도의 모바일 페이지를 운영하였는데 PC/모바일 두 가지 웹을 동시에 제작/관리해야 하는 문제가 발생해야 함에 따라 반응형 웹이 등장하였다.

- 장점

(1) 유지보수가 간편하다 : 모바일, 태블릿, 데스크톱 등 다양한 환경에 대한 디자인을 하나의 파일에서 관리

(2) 마케팅에 용이하다 : 웹 마케팅에서는 접근성이 중요하기 때문

(3) SEO에 유리하다 : 반응형 웹은 하나의 주소와 하나의 파일만을 가지기 때문에 검색 엔진에 더 많이 노출되고 광고 비용을 줄일 수 있다. (PC/모바일 웹을 각각 운영하는 경우 무슨 정보가 정확한지 판단하기 어려워 검색엔진 우선순위에서 밀리며 광고 비용 역시 각각 들어가게 되어 비효율적이다.)

(4) 미래지향적이다 : 스마트TV, 냉장고 등 다양한 크기의 스마트 기기가 등장하는데 이러한 다양한 크기 및 환경에도 제약 없이 최적화가 가능하다.

 

 

2. 모바일 퍼스트

- 반응형 웹의 중요한 개념으로 UX를 디자인할 때 PC보다 모바일을 우선시한다는 뜻이다 (모바일 사용자가 더 많기 때문)

- PC용 고사양 웹페이지가 저사양 모바일 기기에서도 불편함 없이 구현되는 것에 초점을 맞춘다.

- 모바일의 제약

(1) 모바일 기기의 스크린 크기

(2) 네트워크 속도 및 품질

(3) 사용하는 모드

→ 이를 극복하기 위해 네비게이션보다 컨텐츠를 중심으로 하고 불필요한 기능·형식·꾸미기·이동 등을 최소화하여 모바일 사이트를 구현한다.

ex) 웹 메뉴를 버튼으로 축소시키고 첫 화면부터 컨텐으를 보여준다.

 

 

3. viewport (meta 태그)

- 웹 페이지에서 사용자에게 보이는 영역을 지정해준다. (visible area)

  • width : 뷰포트의 가로 크기 지정

- device-width로 지정시 기기의 스크린에 뷰포트 너비를 맞춘다.

ex) <meta name="viewport" content="width=device-width">

- 미지정하거나 100% 지정시 기본값인 980px로 적용된다.

 

  • initial-scale : 페이지에 처음 접속했을 때 확대 비율 설정

- 1로 설정시 CSS 픽셀과 화면에 보여질 픽셀이 1:1비율 이룸

ex) <meta name="viewport" content="initial-scale=1">

- 값이 1보다 작으면 페이지가 축소되어 보이고 1보다 크면 확대되어 보인다.

 

  • user-scalable : 확대/축소 가능 여부 설정

- yes(디폴트)와 no로 지정할 수 있다.

 

  • minimum-scale : 뷰포트의 최소 배율값 설정 (0~10)
  • maximum-scale : 뷰포트의 최대 배율값 설정 (0~10)

 

 

4. 미디어 쿼리 (media query)

- CSS3부터 등장하였으며 조건에 따라 다른 스타일을 적용할 수 있게 해준다.

- 크게 네 가지 방법으로 활용 가능하다.

(1) <link>

<head>태그 안의 <link>태그에 media 속성을 정의함으로써 특정 조건을 만족할 때만 해당 CSS 파일을 불러온다.

ex) <link href="mobile.css" media="screen and (min-width : 512px) and (max-width : 1024px)" rel="stylesheet">

 

(2) <style>

<head>태그 안의 <style>태그에 media 속성을 정의함으로써 특정 조건 만족할 때만 해당 스타일을 적용시킨다.

<style type="text/css" media="screen and (min-width : 512px) and (max-width : 1024px)">

    div {

        color : red;

    }

</style>

 

(3) <style> - @import

import문의 조건 충족시 해당 CSS 파일을 불러온다.

<style>

  @import url(mobile.css) screen and (min-width : 512px) and (max-width : 1024px);

</style>

 

(4) CSS 파일 내부

CSS 파일 혹은 스타일 내부에 직접 미디워 쿼리를 작성한다.

@media screen and (min-width : 512px) and (max-width : 1024px) {

    div {

        color : red;

    }

}

 

- 미디어 쿼리 구문은 '미디어 유형/논리 연산자/특성'으로 구성되며 대소문자를 구별하지 않는다.

  • 미디어 유형

(1) all : 모든 디바이스 대상 (디폴트)

(2) screen : 화면 대상

(3) print : 인쇄결과물 혹은 인쇄 미리보기 문서

→ 보통은 all 혹은 screen을 활용한다.

 

  • 논리 연산자

(1) and : 모든 쿼리가 참이여야 함

(2) not : 모든 쿼리가 거짓이여야 함

(3) , : 하나라도 참이면 됨 (OR의 기능)

(4) only : 미디어 쿼리를 지원하는 브라우저에만 적용

ex) @media only screen { }시 미디어 쿼리 지원하지 않는 브라우저에서는 해당 스타일이 무시된다.

 

  • 특성

(1) width : 뷰포트 너비

(2) height : 뷰포트 높이

(3) aspect-ratio : 뷰포트 가로세로비율

(4) orientation : 뷰포트 방향 (가로/세로 길이를 비교하여 자동 가로/세로모드가 적용된다)

 

- Scss의 mixin을 활용하여 미디어 쿼리를 편리하게 관리할 수 있다. (분기점을 변수로 관리) → 유지보수 용이

 

 

 

'프론트엔드 기본개념 복습 > CSS' 카테고리의 다른 글

[CSS] currentColor  (0) 2022.04.09
[CSS] Grid  (0) 2022.02.26
2021-09-22 Scss, styled-components  (0) 2021.09.23
2021-09-17 CSS Inline과 Block 비교  (0) 2021.09.17
2021-09-17 CSS 상속과 캐스케이딩  (0) 2021.09.17