Top 25 반응 형 Css 작성 가이드 The 13 Top Answers

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 반응 형 css 작성 가이드 on Google, you do not find the information you need! Here are the best content compiled and compiled by the Toplist.maxfit.vn team, along with other related topics such as: 반응 형 css 작성 가이드 반응형 웹 css 소스, 반응형 웹 디자인 가이드, 반응형 css media, 반응형 웹 레이아웃 유형, 반응형 웹 미디어 쿼리, react 반응형 웹 만들기, 반응형 웹 만들기, 반응형 웹사이트 예시


웹사이트 따라만들기, 반응형 헤더편 | 프론트엔드 개발자 입문편: HTML, CSS, Javascript
웹사이트 따라만들기, 반응형 헤더편 | 프론트엔드 개발자 입문편: HTML, CSS, Javascript


반응형 웹 뚝딱 만들기 (1) – 뷰포트 메타태그와 미디어 쿼리 :: nana_log

  • Article author: nykim.work
  • Reviews from users: 2674 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 반응형 웹 뚝딱 만들기 (1) – 뷰포트 메타태그와 미디어 쿼리 :: nana_log 다음 글에서는 CSS 속성을 활용해 빠르게 반응형을 만드는 법을 다룰 생각입니다. (투비 컨티뉴!) 1. meta 태그 – viewport. VS CODE 등에서 자동 html을 … …
  • Most searched keywords: Whether you are looking for 반응형 웹 뚝딱 만들기 (1) – 뷰포트 메타태그와 미디어 쿼리 :: nana_log 다음 글에서는 CSS 속성을 활용해 빠르게 반응형을 만드는 법을 다룰 생각입니다. (투비 컨티뉴!) 1. meta 태그 – viewport. VS CODE 등에서 자동 html을 … 이 글은 공동 기술 블로그(tech.yeon.me)에도 올린 글입니다. (여기에서도 숨겨진 좋은 글을 발견할지도 몰라요!) 프롤로그 모바일 사용자가 점점 늘어나는 요즘 반응형으로 만든 웹 사이트를 쉽게 찾아볼 수 있..좋아하는 걸 좋아하는 나나 🤟
  • Table of Contents:

프롤로그

1 meta 태그 – viewport

2 미디어 쿼리

관련글

반응형 웹 뚝딱 만들기 (1) - 뷰포트 메타태그와 미디어 쿼리 :: nana_log
반응형 웹 뚝딱 만들기 (1) – 뷰포트 메타태그와 미디어 쿼리 :: nana_log

Read More

darren, dev blog :: Responsive Web 반응형 웹 제작 플로우

  • Article author: darrengwon.tistory.com
  • Reviews from users: 31274 ⭐ Ratings
  • Top rated: 3.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about darren, dev blog :: Responsive Web 반응형 웹 제작 플로우 잘 알려주는 곳이 없어서 혼자 깨져가면서 익힌 제작 흐름을 옮겨본다. 다음 블로그 포스팅을 일독 후 시작해보자. 반응형 CSS 작성 가이드 : hackYa … …
  • Most searched keywords: Whether you are looking for darren, dev blog :: Responsive Web 반응형 웹 제작 플로우 잘 알려주는 곳이 없어서 혼자 깨져가면서 익힌 제작 흐름을 옮겨본다. 다음 블로그 포스팅을 일독 후 시작해보자. 반응형 CSS 작성 가이드 : hackYa … 이번에 랜딩페이지를 만들면서 반응형 웹을 배워야했다. 잘 알려주는 곳이 없어서 혼자 깨져가면서 익힌 제작 흐름을 옮겨본다. 다음 블로그 포스팅을 일독 후 시작해보자. 반응형 CSS 작성 가이드 : hackYa Korea..
  • Table of Contents:

네비게이션

Responsive Web 반응형 웹 제작 플로우

사이드바

검색

darren, dev blog :: Responsive Web 반응형 웹  제작 플로우
darren, dev blog :: Responsive Web 반응형 웹 제작 플로우

Read More

[CSS] 반응형 웹 디자인 적용하기 (styled-component에서 media query 적용)

  • Article author: velog.io
  • Reviews from users: 9695 ⭐ Ratings
  • Top rated: 5.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [CSS] 반응형 웹 디자인 적용하기 (styled-component에서 media query 적용) media query. 미디어 쿼리는 CSS3에 도입된 CSS기술로 반응형 웹을 만들기 위한 핵심 기술이다. 기본 동작. @media … …
  • Most searched keywords: Whether you are looking for [CSS] 반응형 웹 디자인 적용하기 (styled-component에서 media query 적용) media query. 미디어 쿼리는 CSS3에 도입된 CSS기술로 반응형 웹을 만들기 위한 핵심 기술이다. 기본 동작. @media … 들어가며

    현재 기술블로그를 직접 만드는 개인 프로젝트를 진행중이다.
    원래는 데스크탑 유저를 타겟으로 만들었지만 모바일에서도 볼 수 있도록 반응형으로 만들어보고 싶어 반응형 웹 디자인에 대해 공부해보았다.

    1. meta 태그

    viewport: 웹 페이지에서 사용자의

  • Table of Contents:

들어가며

1 meta 태그

2 media query

3 styled-component에서 media query 적용하기

Refs

[CSS] 반응형 웹 디자인 적용하기 (styled-component에서 media query 적용)
[CSS] 반응형 웹 디자인 적용하기 (styled-component에서 media query 적용)

Read More

CSS / 반응형 레이아웃 만들기 – CODING FACTORY

  • Article author: www.codingfactory.net
  • Reviews from users: 33867 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about CSS / 반응형 레이아웃 만들기 – CODING FACTORY 반응형 웹디자인 웹사이트의 레이아웃을 만들 때 방문자가 사용하는 모니터의 화면 해상도를 고려해야 합니다. 너무 크게 가로폭을 만들면 작은 해상도의 모니터로 … …
  • Most searched keywords: Whether you are looking for CSS / 반응형 레이아웃 만들기 – CODING FACTORY 반응형 웹디자인 웹사이트의 레이아웃을 만들 때 방문자가 사용하는 모니터의 화면 해상도를 고려해야 합니다. 너무 크게 가로폭을 만들면 작은 해상도의 모니터로 … 반응형 웹디자인 웹사이트의 레이아웃을 만들 때 방문자가 사용하는 모니터의 화면 해상도를 고려해야 합니다. 너무 크게 가로폭을 만들면 작은 해상도의 모니터로 접속했을 때 가로 스크롤이 생겨 컨텐츠를 보는 게 불편하기 때문입니다. 특히 스마트폰이나 태블릿 등 모바일 기기는 화면이 작기 때문에 가독성에 더욱 신경써야 합니다. 이러한 문제를 해결하는 방법 중의 하나가 반응형 […]
  • Table of Contents:
CSS / 반응형 레이아웃 만들기 – CODING FACTORY
CSS / 반응형 레이아웃 만들기 – CODING FACTORY

Read More

[css] 반응형 웹을 위한 media query / 실무에서 느낀 점 — 비전공자의 IT 취업이야기

  • Article author: aboveimagine.tistory.com
  • Reviews from users: 2406 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [css] 반응형 웹을 위한 media query / 실무에서 느낀 점 — 비전공자의 IT 취업이야기 구조가 복잡해질수록 클래스명을 중복해서 작성할 필요가 없었으니까. // _responsive.scss //구간1 @media all and (min-wth:768px) … …
  • Most searched keywords: Whether you are looking for [css] 반응형 웹을 위한 media query / 실무에서 느낀 점 — 비전공자의 IT 취업이야기 구조가 복잡해질수록 클래스명을 중복해서 작성할 필요가 없었으니까. // _responsive.scss //구간1 @media all and (min-wth:768px) … 미디어쿼리 css 사용 방식 혼자 포트폴리오 작업할 때 쓰던 쿼리 방식은 다음과 같았다. @mixin responsive($media) { @media screen and (max-width:$media) { @content; } } .inner { width: 1200px; margin: 0..
  • Table of Contents:

블로그 메뉴

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

미디어쿼리 css

티스토리툴바

[css] 반응형 웹을 위한 media query / 실무에서 느낀 점 — 비전공자의 IT 취업이야기
[css] 반응형 웹을 위한 media query / 실무에서 느낀 점 — 비전공자의 IT 취업이야기

Read More

반응 형 css 작성 가이드

  • Article author: nolboo.kim
  • Reviews from users: 40163 ⭐ Ratings
  • Top rated: 3.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 반응 형 css 작성 가이드 1. Responsive Overview. 반응형 웹 디자인은 모바일 혹은 데스트탑의 모든 기기와 크고 작은 모든 스크린 사이즈에서 적절하게 작동하는 웹사이트를 … …
  • Most searched keywords: Whether you are looking for 반응 형 css 작성 가이드 1. Responsive Overview. 반응형 웹 디자인은 모바일 혹은 데스트탑의 모든 기기와 크고 작은 모든 스크린 사이즈에서 적절하게 작동하는 웹사이트를 … 모바일 인터넷 사용이 데스크탑 인터넷 사용을 올해 추월하는 트랜드가 이어지고 있다. 모바일 인터넷 사용이 계속 성장하면서 어떻게 모든 유저에게 적합한 웹사이트를 만들 것인가 하는 질문이 제기되고있다.
  • Table of Contents:

Responsive Overview

Flexible Layouts

Media Queries

Mobile First

Viewport

Flexible Media

Resources & Links

반응 형 css 작성 가이드
반응 형 css 작성 가이드

Read More

반응형 웹 디자인 기초

  • Article author: web.dev
  • Reviews from users: 12257 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 반응형 웹 디자인 기초 뷰포트에 맞게 콘텐츠 크기 조정 #. 데스크톱과 모바일 기기 모두에서 사용자는 웹사이트를 세로로 스크롤하는 데는 익숙하지만 가로는 그렇지 않습니다. 전체 페이지를 … …
  • Most searched keywords: Whether you are looking for 반응형 웹 디자인 기초 뷰포트에 맞게 콘텐츠 크기 조정 #. 데스크톱과 모바일 기기 모두에서 사용자는 웹사이트를 세로로 스크롤하는 데는 익숙하지만 가로는 그렇지 않습니다. 전체 페이지를 … 사이트가 보여지는 장치의 요구와 기능에 대응하도록 사이트를 만드는 방법을 소개합니다.
  • Table of Contents:

뷰포트 설정 #

뷰포트에 맞게 콘텐츠 크기 조정 #

빠른 응답을 위해 CSS 미디어 쿼리 사용 #

중단점을 선택하는 방법 #

Chrome DevTools에서 미디어 쿼리 중단점 보기 #

반응형 웹 디자인 기초
반응형 웹 디자인 기초

Read More

미디어쿼리로 반응형 웹 CSS 작성하기

  • Article author: seoramyeon.tistory.com
  • Reviews from users: 15853 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 미디어쿼리로 반응형 웹 CSS 작성하기 반응형으로 디자인된 웹사이트는 데스크톱 모니터, 태블릿, 폰 등 디바이스 화면의 크기에 따라 레이아웃이 변경되는데,. 우리가 사용해봐서 알 수 있듯이 … …
  • Most searched keywords: Whether you are looking for 미디어쿼리로 반응형 웹 CSS 작성하기 반응형으로 디자인된 웹사이트는 데스크톱 모니터, 태블릿, 폰 등 디바이스 화면의 크기에 따라 레이아웃이 변경되는데,. 우리가 사용해봐서 알 수 있듯이 … 반응형으로 포트폴리오 웹을 만들고 있습니다. 오늘은 미디어 쿼리라는 것을 사용해봤는데요, 반응형 웹 코딩을 위해서는 필수로 알아야 하는 요소였어요. 지금까지 왜 몰랐지? 간단히 정리해봅니다.  반응형 디..
  • Table of Contents:
미디어쿼리로 반응형 웹 CSS 작성하기
미디어쿼리로 반응형 웹 CSS 작성하기

Read More

CSS/HTML을 사용하여 쉬운 3단계로 반응형 웹사이트 만들기 – SignalFix.net

  • Article author: signalfix.net
  • Reviews from users: 37140 ⭐ Ratings
  • Top rated: 4.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about CSS/HTML을 사용하여 쉬운 3단계로 반응형 웹사이트 만들기 – SignalFix.net 반응형 웹 사이트를 만들 때 항상 기본 크기로 고정된 비반응형 레이아웃을 만드는 것으로 시작합니다. 예를 들어 CatsWhoCode.com의 기본 너비는 1100px입니다. …
  • Most searched keywords: Whether you are looking for CSS/HTML을 사용하여 쉬운 3단계로 반응형 웹사이트 만들기 – SignalFix.net 반응형 웹 사이트를 만들 때 항상 기본 크기로 고정된 비반응형 레이아웃을 만드는 것으로 시작합니다. 예를 들어 CatsWhoCode.com의 기본 너비는 1100px입니다.
  • Table of Contents:

1 – 레이아웃

2 – 미디어

3 – 타이포그래피

CSS/HTML을 사용하여 쉬운 3단계로 반응형 웹사이트 만들기 - SignalFix.net
CSS/HTML을 사용하여 쉬운 3단계로 반응형 웹사이트 만들기 – SignalFix.net

Read More

반응형 디자인 – Web 개발 학습하기 | MDN

  • Article author: developer.mozilla.org
  • Reviews from users: 37979 ⭐ Ratings
  • Top rated: 3.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 반응형 디자인 – Web 개발 학습하기 | MDN 웹사이트 조판 역사. 역사의 어느 시점 여러분이 웹 사이트를 디자인할 때 두 가지 옵션이 있었습니다. 여러분은 웹브라우저 창에 요소 … …
  • Most searched keywords: Whether you are looking for 반응형 디자인 – Web 개발 학습하기 | MDN 웹사이트 조판 역사. 역사의 어느 시점 여러분이 웹 사이트를 디자인할 때 두 가지 옵션이 있었습니다. 여러분은 웹브라우저 창에 요소 … 웹디자인 초창기에는 페이지를 구축할 때 매우 구체적인 화면 크기를 공략 대상으로 삼았습니다. 사용자가 웹디자이너가 예상한 것보다 크거나 작은 화면의 기기를 가지고 있다면 원하지 않는 스크롤 막대에서부터 지나치게 긴 길이의 라인, 사용 공간이 부족하게 되는 결과를 낳습니다. 다양한 화면 크기가 등장함에 따라 responsive web design 개념이 등장했습니다. 말하자면 서로 다른 화면 너비와 해상도 등에 맞게 웹 페이지가 조판과 모양을 변경할 수 있는 일련의 실례를 집대성한 것입니다. 이 아이디어가 우리가 멀티 디바이스 웹에 대한 설계 방식을 바꾸게 만든 장본인입니다. 이 문서에서 우리는 그 내용을 숙달하기 위해 당신이 알아야하는 주요 기술을 이해하도록 도울 것입니다.
  • Table of Contents:

In this article

In this article

웹사이트 조판 역사

반응형 디자인의 전신 가변 조판

반응형 디자인

미디어 쿼리

가변 격자

현대 조판 기술

반응형 이미지

반응형 타이포그래피

뷰포트 메타 테그

요약정리

이번 단위에는

MDN

Support

Our communities

Developers

반응형 디자인 - Web 개발 학습하기 | MDN
반응형 디자인 – Web 개발 학습하기 | MDN

Read More


See more articles in the same category here: toplist.maxfit.vn/blog.

반응형 웹 뚝딱 만들기 (1) – 뷰포트 메타태그와 미디어 쿼리

320×100

이 글은 공동 기술 블로그(tech.yeon.me)에도 올린 글입니다.

(여기에서도 숨겨진 좋은 글을 발견할지도 몰라요!)

프롤로그

모바일 사용자가 점점 늘어나는 요즘 반응형으로 만든 웹 사이트를 쉽게 찾아볼 수 있습니다.

빠트릴 수 없는 기술이 된 만큼, 오늘은 반응형을 만들기 위한 몇 가지 방법들을 정리해봤습니다 🤘

이 글에서는 반응형을 위한 기본인 뷰포트와 미디어 쿼리를 다루며,

다음 글에서는 CSS 속성을 활용해 빠르게 반응형을 만드는 법을 다룰 생각입니다. (투비 컨티뉴!)

1. meta 태그 – viewport

VS CODE 등에서 자동 html을 생성해 보신 적이 있으신가요? (! 치고 tab키를 누르면 뿅하고 나오는 그거요)

이때 기본으로 작성되는

내에 아래의 태그가 들어간 것을 볼 수 있습니다.

이게 얼마나 좋은 거길래 묻지도 따지지도 않고 넣어주는 걸까요?

이 뷰포트 메타 태그는 모바일 반응형을 만들 때 필요합니다.

뷰포트(viewport)란, 웹 페이지에서 사용자의 보이는 영역(visible area)를 말합니다. 따라서 이는 기기별로 달라지게 됩니다.

같은 페이지라 하더라도 모바일과 태블릿은 화면 크기가 다르기 때문에 사용자가 볼 수 있는 범위가 다르니까요.

즉, 이 태그는 뷰포트를 지정해주는 역할을 합니다.

속성을 좀 더 살펴보죠!

우선, width 는 뷰포트의 가로 크기를 정합니다. 만약 500이란 값을 넣으면, 500만큼의 픽셀 개수를 가진 너비로 설정됩니다.

device-width 라고 지정했으니, 기기의 스크린 너비에 맞추라는 뜻이 됩니다.

한편, initial-scale 은 페이지에 처음 접속했을 때 보여질 확대 배율을 설정합니다.

1로 정하면 CSS 픽셀과 화면에 보여질 픽셀이 1:1을 이룹니다.

달리 말해, 이 값이 1보다 작다면 페이지는 축소되어 보이고, 1보다 크다면 확대되어 보입니다.

width 뷰포트의 가로 크기 initial-scale 페이지 처음 접속 시 보여질 배율

만약 이러한 값들이 정해지지 않은 페이지를 모바일에서 본다면 어떤 느낌일까요?

뷰포트를 정하지 않으면 width는 기본값인 980이 됩니다. 그럼, width:100% 를 지정한 요소는 그냥 980px 값을 가지게 되겠죠.

따라서 모바일은 이 980px짜리 페이지를 어떻게든 사용자에게 보여주려고 배율을 줄이게 됩니다. 바로 이렇게요.

(좌) 뷰포트를 지정하지 않은 경우 / (우) 뷰포트 너비를 device-width로 지정한 경우

반면, 오른쪽 이미지처럼 메타태그를 지정한 경우엔 width:100% 가 iPhone5에선 320px, iPad에선 768px이 됩니다.

따라서 사용자는 보다 편안하게 웹 페이지를 탐색할 수 있습니다.

뷰포트 메타태그에는 아래의 속성들도 들어갈 수 있어요.

user-scalable 사용자의 축소/확대 허용 여부. 초기값은 yes며, no로 금지 가능 minimum-scale 뷰포트의 최소 배율값 (0~10) maximum-scale 뷰포트의 최대 배율값 (0~10)

네이버 모바일의 마크업을 보면 user-scalable=no 이 지정된 걸 볼 수 있습니다.

즉, 사용자가 줌인이나 줌아웃을 할 수 없도록 막아둔 상태입니다.

minimum-scale 과 maximum-scale 도 1.0으로 지정했기 때문에 고정된 UI를 항시 보여줄 수가 있습니다.

다만, 이 경우엔 웹 접근성 관련해 경고 카드를 받을 수도 있어요.

아래는 이걸 본 validator.w3.org와 lighthouse가 날린 경고장입니다 😞

정리하자면, 메타 태그로 뷰포트를 지정해 주면 모바일 친화적인 UI를 제공할 수 있게 됩니다.

적응형(반응형이 아닌 거요!)이라면 여기에다 모바일에 맞춘 CSS를 작성하면 됩니다.

하지만 우리가 필요한 건 반응형이에요. 그럴 때 필요한 건? 미디어쿼리죠!

2. 미디어 쿼리

미디어 쿼리는 반응형을 위한 기본이자 핵심입니다.

잘 활용하면 어떤 디바이스에서도 예쁜 웹 페이지를 만들 수 있어요.

media 라는 키워드로 사용하며, 아래는 미디어 쿼리를 활용한 예시입니다.

.title { font-size: 40px; } @media (max-width: 600px) { .title { font-size: 20px; } }

타이틀의 텍스트 크기를 40px로 하되, 600px보다 작은 화면에서는 20px로 줄인다는 내용입니다. 참 쉽죠? 🎨

See the Pen dyPOKKZ by nanalike (@nykim_) on CodePen.

그러니 모바일 시안을 받았다면, 분기점을 정한 뒤 시안의 사이즈에 맞춰 미디어 쿼리를 지정해 주면 됩니다.

(Zeplin 등으로 전달 받았다면 사이즈를 그대로 사용하시면 돼요.

다만, PSD의 경우 이미지 사이즈 때문에 2배 사이즈로 받는 경우가 있기에 나누기 2만큼의 값을 지정해 줍니다.)

미디어쿼리 적용

미디어 쿼리를 적용하는 법은 간단합니다.

1) CSS 파일 내에 직접 작성하거나

@media (min-width:768px) {}

2) 태그에 media 속성을 설정해 사용합니다

하지만 대부분의 경우 첫 번째 방법을 써요!

왜냐하면 두 번째 방법처럼 CSS를 분리해 두더라도, 브라우저는 ‘에라 모르겠다’며 일단 모든 CSS 파일을 다운로드하기 때문입니다.

HTTP 요청이 많아지면 성능이 그만큼 저하되므로, CSS 파일 내에서 @media로 분리하는 것을 추천합니다.

구문

미디어 쿼리 구문은 ‘미디어 유형 / 논리 연산자 / 특성’으로 이루어지며 대소문자를 구분하지 않습니다.

미디어 유형

all 모든 디바이스 대상 print 인쇄 결과물 및 인쇄 미리보기 문서 screen 화면 대상

@media screen {} 을 쓰면, 스크린이 있는 디바이스에서만 적용이 됩니다.

이외에도 여러 유형이 있지만 제일 많이 쓰는 건 all과 screen이에요.

유형을 지정하지 않는 경우엔 디폴트인 all 이 지정됩니다.

논리 연산자

and 모든 쿼리가 참이여야 적용 not 모든 쿼리가 거짓이여야 적용 , (comma) 어느 하나라도 참이면 적용 (or에 해당) only 미디어쿼리를 지원하는 브라우저만 적용

여기서 only 라는 생소한 키워드가 나왔네요!

@media only screen {} 을 사용하면 미디어쿼리를 지원하지 않는 브라우저(IE8 이하)에서는 해당 스타일을 무시합니다.

더 정확히 얘기하자면, 미디어쿼리를 지원하는 브라우저는 only 키워드를 만나면 무시하고 그대로 읽어들입니다.

반면에 지원하지 않는 브라우저는 only라는 이름의 미디어 유형이 있다고 생각합니다.

하지만 only라고 정의된 미디어 종류는 없기 때문에, 결국 아무것도 적용되지 않는 거죠.

특성

width 뷰포트 너비 height 뷰포트 높이 aspect-ratio 뷰포트 가로세로비 orientation 뷰포트 방향

orientation의 경우, 아쉽게도(?) 모바일 전용 속성이 아닙니다.

‘가로가 세로보다 긴지’ 또는 ‘세로가 가로보다 긴지’에 따라 가로 모드/세로 모드라고 판단합니다.

만약 모바일 환경에만 특정 CSS를 적용해야 한다면 User Agent를 판단 후 분기해야 합니다.

이런 식으로 유형, 연산자, 특성을 조합해 다양한 구문을 만들어 낼 수 있습니다.

@media all and (min-width:768px) and (max-width:1080px) {} /* ‘모든 디바이스 & 최소 너비가 768 이상 & 최대 너비가 1080 이하’라는 조건을 모두 만족할 때 */

@media (min-height: 680px), screen and (orientation: portrait) { … } /* ‘최소 높이가 680 이상’이거나 ‘세로 모드의 스크린 기기’ 중 하나를 만족하는 경우에 적용*/

미디어 쿼리의 스펙 문서를 살펴보면 이외에도 정말 많은 특성을 만나볼 수 있어요.

예를 들면, 미디어 쿼리 레벨 4 스펙에서 추가된 hover 나 pointer 등이 있습니다.

@media (hover: hover) and (pointer: fine) { } 를 써서 마우스나 트랙패드가 있는 기기를 조건으로 하는 구문을 만들 수 있습니다.

하지만 최신 스펙에는 언제나 지원 브라우저가 제한되어 있다는 한계가 존재하죠 😕

실무에서는 특성에 주로 width 값을 사용합니다. 사실 이것만 써도 거의 커버할 수 있어요!

모바일과 데스크탑, 누가 먼저?

미디어 쿼리의 분기는 대부분 width 값을 사용하는데, 이때 min을 쓸지 max를 쓸지 고민될 때가 있죠.

방법은 여러가지가 있겠지만, 저의 경우에는 아래와 같이 사용하고 있습니다.

– 모바일 퍼스트: min

– 데스크탑 퍼스트 : max

모바일 퍼스트는 말 그대로 모바일 우선입니다.

따라서 모바일에 대한 스타일이 우선 적용되도록, 분기점(break point)가 낮은 순대로 작성해 나갑니다.

/* Mobile First */ .title { font-size: 12px; } @media (min-width: 640px) { .title { font-size: 14px; } } @media (min-width: 768px) { .title { font-size: 16px; } } @media (min-width: 1024px) { .title { font-size: 18px; } }

위와 같이 작성한 경우, iPhoneX 사이즈(375px)의 기기에서는 폰트 사이즈가 어떻게 될까요?

어떠한 미디어 쿼리 구문도 만족하지 못하므로 12px이 적용됩니다.

한편, 800px 너비의 뷰포트에서 본다면요?

우선 12px이 적용되지만, 최소 너비 640이란 조건을 만족하므로 스타일을 덮어써서 14px이 됩니다.

또, 최소 너비 768이라는 조건도 만족하므로 스타일을 다시 덮어써서 16px이 됩니다.

하지만 최소 너비 1024는 만족하지 못한 상태이므로 16px이 그대로 유지돼요.

반면에 데스크탑 퍼스트는 분기점(break point)를 높은 순서부터 작성합니다.

이 경우에는 뷰포트 값이 작아질수록 스타일을 덮어쓰는 방식으로 적용이 되겠죠!

/* Desktop First */ .title { font-size: 18px; } @media (max-width: 1023px) { .title { font-size: 16px; } } @media (max-width: 767px) { .title { font-size: 14px; } } @media (max-width: 639px) { .title { font-size: 12px; } }

보여지는 결과물은 똑같기에 크게 상관은 없으며, 작성 방식에만 차이가 있어요.

도와줘요 믹스인

미디어쿼리를 멋지게 쓰는 건 좋지만, 구문과 분기점을 항상 외우고 다닐 순 없죠.

그럴 땐 믹스인을 만들어 쓰면 좋습니다. 유지보수도 매우 편해져요!

미디어 쿼리를 관리하기 위한 scss 파일을 만들어 주세요.

분기점은 변수로 만들고, @content로 내용이 비워져있는 믹스인을 작성합니다.

// Break Point $tablet: 768px; $laptop: 1020px; $desktop: 1400px; // Mixins @mixin tablet { @media (min-width: #{$tablet}) { @content; } } @mixin laptop { @media (min-width: #{$laptop}) { @content; } } @mixin desktop { @media (min-width: #{$desktop}) { @content; } }

이제 @include로 불러와 사용합니다.

// SCSS .logo { width: 20px; @include desktop { width: 40px; } }

/* 컴파일된 CSS */ .logo { width: 20px; } @media (min-width: 1400px) { .logo { width: 40px; } }

짜잔- 아주 잘 나오네요!

중첩 미디어 쿼리

믹스인을 사용할 때 아래처럼 미디어 쿼리를 별도로 작성할 수도 있지만,

/* 미디어 쿼리를 별도로 작성하는 경우 */ .title { font-size: 12px; } .logo { width: 20px; } @include laptop { .title { font-size: 14px; } .logo { width: 30px; } }

요소 바로 밑에 작성하는 방법도 있습니다. 바로 아래처럼요.

/* 미디어 쿼리를 바로 아래에 작성하는 경우 */ .title { font-size: 12px; @include laptop { font-size: 14px; } } .logo { width: 20px; @include laptop { width: 30px; } }

위의 방식대로 작성하는 경우, 반응형 디자인을 바로 확인할 수 있어 직관적이라는 장점이 있습니다.

특히 분기점이 많아질수록 보기가 편하며 유지보수에도 좋습니다.

한 가지 아쉬운 점이 있다면, 컴파일한 CSS에서 미디어 쿼리 구문이 계속 중복된다는 점입니다.

/* 컴파일 후 중복되는 미디어 쿼리 구문 */ .title { font-size: 12px; } @media (min-width: 1020px) { .title { font-size: 14px; } } @media (min-width: 1600px) { .title { font-size: 16px; } } .logo { width: 20px; } @media (min-width: 1020px) { .logo { width: 30px; } } @media (min-width: 1600px) { .logo { width: 40px; } }

성능에 큰 영향을 줄 만한 요소는 아닌 것 같지만, 이왕이면 짧은 CSS가 좋겠죠.

이럴 땐 중복되는 미디어 쿼리구문을 합쳐주는 도구를 쓰면 아래처럼 깔끔해져요 (❁´◡`❁)

gulp를 사용 중이시라면 ‘gulp-group-css-media-queries’를 설치해서 사용할 수 있습니다. (21.02.24 / 댓글 감사합니다!)

var gulp = require(‘gulp’); var gcmq = require(‘gulp-group-css-media-queries’); gulp.task(‘default’, function () { gulp.src(‘src/style.css’) .pipe(gcmq()) .pipe(gulp.dest(‘dist’)); });

/* 중복되는 미디어 쿼리 구문 제거 */ .title { font-size: 12px; } .logo { width: 20px; } @media (min-width: 1020px) { .title { font-size: 14px; } .logo { width: 30px; } } @media (min-width: 1600px) { .title { font-size: 16px; } .logo { width: 40px; } }

지금까지 뷰포트 메타 태그와 미디어 쿼리에 대해 살펴보았습니다. 사실 이 두 개만 활용해도 멋진 반응형을 만들 수 있습니다.

하지만 시간이 없는데 빠르게 반응형을 만들어야 하거나, 분기점을 하나하나 고려하기가 힘들 때가 있죠.

그럴 때 유용하게 써먹을 수 있는 vw이나 rem 같은 CSS 속성들이 있습니다.

CSS 속성을 활용하는 반응형 제작법은 시리즈의 다음 글에서 다룰 예정입니다.

다음 글에서 만나요- 스테이 튠! (??) 📺🕹

이 시리즈의 다음 글: 반응형 웹 뚝딱 만들기 (2)

참고 글

CSS media query에 대하여 :: 널리

미디어 쿼리의 only 키워드 :: wystan’s tales

The complete guide to CSS media queries :: polypane

728×90

darren, dev blog :: Responsive Web 반응형 웹 제작 플로우

이번에 랜딩페이지를 만들면서 반응형 웹을 배워야했다. 잘 알려주는 곳이 없어서 혼자 깨져가면서 익힌 제작 흐름을 옮겨본다.

다음 블로그 포스팅을 일독 후 시작해보자.

rem의 경우 html 태그에 따로 font-size를 주지 않으면 16px이 기본값임을 알아두자.

em의 경우 우선 자신이 속한 css 내 font-size를 따른다. 없으면 상위 태그의 font-size를 따른다.

vw, vh는 뷰포트에 가득 차는 기준이 100vw, 100vh이다.

반응형 웹 사이트으로 변환하기 위해 사용하는 CSS 요소는 다음과 같다.

상대 단위 (em, rem, %, auto, vw, vh, flex, grid)

media query

뷰 포트

1. css 세팅

2. media query를 통해 모바일과 웹을 번갈아가며 각 컴포넌트를 개발합니다. (+ Mobile First)

3. 홈페이지 전체 골격을 만든 후 컴포넌트를 삽입합니다.

4. 실제 기기에서 테스트 합니다.

5. 완성!

1. css 세팅

최상위 태그인 html에 -webkit-text-size-adjust: none을 설정한다. 아이폰의 경우 뷰포트가 변경이 되면 자동으로 폰트 크기를 조절하는데 이를 방지하기 위해 none으로 설정합니다. auto로 설정하면 자동으로 폰트 크기를 조절합니다. rem 사용시 원하는 font-size가 있다면 적어줍시다. 그러나 기본 16px가 가장 일반적이므로 적지 않는 것이 관습입니다.

html { -webkit-text-size-adjust: none; font-size: 16px //rem 단위가 참고하는 값입니다. 따로 적지 않아도 기본은 16px입니다. }

2. media query를 통해 모바일과 웹을 번갈아가며 각 컴포넌트를 개발합니다.

작업의 방식은 하나의 html과 css에 몰아넣는 것이 아니라. Divide-and-conquer 방식으로 처리하는 게 좋습니다.

React의 component처럼 페이지를 구성할 각 요소들을 따로 구성하고 css 또한 분리해서 작성한 다음 마지막 단계에서 합치는 방식으로 작업합시다.

컴포넌트라고 말한 것은 메뉴창, 내용창, 헤더, 사이드바 등등을 한 index.html에 몰아넣지 말고 menu.html, contents.html, header.html과 같이 분리하라는 의미입니다. 그래서 이후 전체 홈페이지 레이아웃을 반응형으로 만드는데 수월합니다. React와 같은 프레임워크를 통해 개발한다면 각 단위가 컴포넌트 단위로 쪼개지므로 자연스럽게 이런 방식으로 마크업을 진행하게 되므로 사용을 권장합니다.

또, 개발 시에 전부는 아니더라도 em, rem, %, vw, vh 단위를 적극적으로 사용합니다. 또한 브라우저 크기에 민감한 컴포넌트를 개발할 때는 브라우저를 줄여가며 미리 유연하게 만듭니다. 여기서 유연하다는 것은 브라우저 크기에 반응하여 자신의 크기를 수정한다는 의미입니다. 컴포넌트 단계에서 유연하게 개발해야 그 이후 반응형으로 수정할 때 편리합니다.

미디어 쿼리에 대한 간략한 설명은 다음과 같습니다.

해상도 분기점에는 여러 기준이 있지만 일반적으로 다음 기준을 사용합니다.

pc : 1024px ~

테블릿 가로, 테블릿 세로 : 768px ~ 1023px

모바일 가로, 모바일 세로 : ~ 768px

따라서 다음 순서대로 media query를 이용합니다. 종종 테블릿을 고려하지 않을 경우 pc와 모바일만 설정하기도 합니다. 여기에서는 대개 골격의 width를 %로 주어서 보여지는 크기를 수정하곤합니다.

min-width를 사용하는 경우 스마트폰 등 가장 작은 사이즈에서의 레이아웃을 기본으로 하고, 점차 확장되어가는 형태로 CSS를 작성합니다. (Mobile First) 헷갈리지 말아야 할 것이 min-width: 1000px 이면 1000px 이상인 경우에 적용됩니다.

max-width를 사용하는 경우 데스크탑용의 가장 큰 화면 사이즈의 레이아웃을 기본으로 하고, 점차 축소하는 형태로 CSS를 작성합니다. 헷갈리지 말아야 할 것이 max-width: 1000px 이면 1000px 이하인 경우에 적용됩니다.

min-width를 사용해서 점점 확장해가는 방식을 선호(Mobile First)하는데, 이유는 대부분의 경우 작은 사이즈에서의 레이아웃이 더 심플하기 때문이에요. 레이아웃이 심플하다는 것은 그만큼 CSS 코드도 단순하다는 이야기지요. 심플한 것에 점점 무언가를 추가하는 것이, 복잡한 것에서 점점 빼가며 단순화하는 것 보다 낫다고 생각합니다. 복잡한 레이아웃을 위해 작성한 CSS 코드를 단순한 형태의 레이아웃으로 바꾸려면 복잡한 기능들을 취소하는 코드도 그만큼 덕지덕지 붙어야 하거든요.

max-width를 사용할 때

그냥 작성하는 내용은 큰 화면의 웹에서 작동하고

일부 max-width로 제한 하는 내용이 모바일 화면 크기에서 작동합니다.

PC와 모바일, 테블릿 지원 /* 1024px 이상일 경우 적용할 내용을 적습니다.*/ @media all and (max-width: 767px) { /*767px 이하일 때 적용되는 스타일입력*/ /*모바일 스타일입력*/ } @media all and (min-width: 768px) and (max-width: 1023px) { /*768px 이상, 1023px 이하일 때 적용되는 스타일입력*/ /*테블릿 스타일입력*/ }

min-width를 사용할 때

그냥 작성하는 내용이 작은 화면에서 작동하고

큰 화면의 웹에서는 min-width로 제한한 내용이 작동합니다.

/* 766 이하의 작은 화면에서 적용할 내용을 적습니다. */ @media all and (min-width: 767px) and (max-width: 1023px) { /*767 이상부터 작동하는 내용(태블릿) */ } @media all and (min-width: 1023px) { /*1024 이상부터 작동하는 내용 (데스크탑)*/ }

3. 홈페이지 전체 골격을 만든 후 컴포넌트를 삽입합니다.

© A Hat in Time

골격을 만든 후에는 작성한 컴포넌트를 복붙합니다.

이미 컴포넌트들을 반응형으로 만들어 놓았으므로 따로 작업할 것은 없습니다. 그러나 오류가 있을 경우 다시 컴포넌트 단계로 돌아가 작업하는 것이 좋습니다.

잘못된 반응형 웹의 예시

참고로, css 파일관리는 일원화 하는 것이 좋습니다. 저는 모든 html 파일에 index.css만 할당하고 그 index.css에 각 컴포넌트에 적용한 css를 임포트(@import “주소”)하는 방식으로 관리합니다. 이 방식을 사용하면 컴포넌트를 병합할 때 css를 일일히 지정하는 것보다 훨씬 빠르게 완성할 수 있습니다.

맨 아래는 컴포넌트 단위이고 그 컴포넌트를 모아 만든 페이지의 css로 통합

//index.css에 전부 import하면 편리하다 @import “./reset.css”; @import “./menu.css”; @import “./search.css”; @import “./infolist.css”; @import “./msg\,user.css”; @import “./modal.css”; @import “./cardlist.css”;

4. 실제 기기에서 테스트 합니다.

크롬 개발자 도구를 통해서 각 기기에서 보이는 모습을 확인할 수 있습니다만 이건 어디까지나 개발 도중 편하게 보기 위한 임시적인 도구였습니다. 웹을 출시하기 전 반드시 실제 기기에서 테스트 해보시길 바랍니다.

Adobe Edge Inspect CC를 사용하면 실제 모바일 웹에서 확인할 수 있습니다.

유료라서 귀찮으시다면 AWS S3 정적 웹 호스팅을 이용해서 모바일로 접근해봅시다.

크롬 개발자 도구

5. 완성!

[CSS] 반응형 웹 디자인 적용하기 (styled-component에서 media query 적용)

들어가며

현재 기술블로그를 직접 만드는 개인 프로젝트를 진행중이다.

원래는 데스크탑 유저를 타겟으로 만들었지만 모바일에서도 볼 수 있도록 반응형으로 만들어보고 싶어 반응형 웹 디자인에 대해 공부해보았다.

1. meta 태그

viewport: 웹 페이지에서 사용자의 보이는 영역을 말하며, 이는 기기별로 달라진다.

viewport 설정

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

viewport는 meta 태그를 이용해 설정할 수 있다.

name=”viewport” 인 meta 태그는 페이지의 크기와 배율을 제어하는 방법에 대한 브라우저 지침을 제공한다.

뷰포트 meta 태그 속성들

width : 뷰포트의 가로크기 를 정한다. width=device-width는 뷰포트를 장치의 화면 너비로 설정한다는 뜻이다.

: 를 정한다. width=device-width는 뷰포트를 장치의 화면 너비로 설정한다는 뜻이다. initial-scale : 페이지에 처음 접속했을 때 보여질 확대/축소 배율 을 설정한다. initial-scale=1.0이면 CSS 픽셀과 화면에 보여질 픽셀이 1:1이다. 하지만 1보다 큰 값을 갖는 경우 페이지는 확대되어 보이고, 1보다 작은 값인 경우 축소되어 보인다.

: 페이지에 처음 접속했을 때 보여질 을 설정한다. initial-scale=1.0이면 CSS 픽셀과 화면에 보여질 픽셀이 1:1이다. 하지만 1보다 큰 값을 갖는 경우 페이지는 확대되어 보이고, 1보다 작은 값인 경우 축소되어 보인다. user-scalable :

사용자의 축소/확대 허용 여부. yes 또는 no가 들어갈 수 있다.

: 사용자의 축소/확대 허용 여부. yes 또는 no가 들어갈 수 있다. minimum-scale : 뷰포트의 최소 배율값 (0~10)

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

2. media query

미디어 쿼리는 CSS3에 도입된 CSS기술로 반응형 웹을 만들기 위한 핵심 기술이다.

기본 동작

@media 키워드 옆에 나열된 조건이 true인 경우에만 css 속성 블록이 적용된다.

예시)

@media only screen and ( max-width : 600px ) { body { background-color : pink ; } }

브라우저 창이 600px이하인 경우 배경색이 pink가 된다.

중단점(Breakpoints) 설정

중단점이라하면 어떤 지점을 기준으로 기존 레이아웃 또는 스타일이 변경되는지를 결정한다.

W3C에 소개된 일반적인 장치 중단점은 다음이 5개로 나뉜다.

https://www.w3schools.com/css/css_rwd_mediaqueries.asp

@media only screen and ( max-width : 600px ) { … } @media only screen and ( min-width : 600px ) { … } @media only screen and ( min-width : 768px ) { … } @media only screen and ( min-width : 992px ) { … } @media only screen and ( min-width : 1200px ) { … }

나도 이 중단점을 참고하여 desktop 1200px, tablet 768px, phone 600으로 정했다.

{ desktop: 1200, tablet:768, phone:600 }

참고로 이 크기가 결정되는 배경은 통계적인 원인이 가장 크다.

이 사이트를 보면 전세계 태블릿 사용자 중 가장 많은 비율이 768×1024 크기의 태블릿을 사용한다는 것을 알 수 있다.

더 많은 media 규칙보기: https://www.w3schools.com/cssref/css3_pr_mediaquery.asp

3. styled-component에서 media query 적용하기

스타일 컴포넌트에서도 css 적용과 동일한 방법으로 미디어 쿼리를 적용할 수 있다.

const Title = styled . h1 ` color: black; @media only screen and (max-width: 600px) { body { color: pink; } } `

하지만 태블릿은 768px, 모바일은 600px 등 breakpoint를 매번 외워서 사용하는 것은 번거롭기도하며 예상치 못한 ui 깨짐을 발생시킬 수도 있다.

찾아본 결과 아래 블로그 글들처럼 다양한 방법으로 breakpoint를 변수화하여 사용할 수 있다.

그 중 내가 사용한 방법은 이 블로그 포스팅과 같이 template literals을 만들어서 함수처럼 사용하는 방식이다.

import { css , CSSObject , SimpleInterpolation } from “styled-components” ; type DeviceType = “desktop” | “tablet” | “phone” ; const sizes : Record < DeviceType , number > = { desktop : 1200 , tablet : 768 , phone : 600 , } ; const media = Object . entries ( sizes ) . reduce ( ( acc , [ key , value ] ) => { return { … acc , [ key ] : ( first : CSSObject | TemplateStringsArray , … interpolations : SimpleInterpolation [ ] ) => css ` @media (max-width: ${ value } px) { ${ css ( first , … interpolations ) } } ` , } ; } , { } ) as Record < DeviceType , any > ; export { media } ;

사용 예시

import { media } from “@src/styles/media” ; const Article = styled . article ` padding: 2.4rem 1.6rem; max-width: 80%; margin: 0 auto; ${ media . tablet ` padding: 1.6rem 1.4rem; max-width: 100%; ` } ` ;

추가

추가적으로 airbnb css-in-javascript 네이밍 가이드에선 특정 디바이스를 칭하는 네이밍 사용을 지양한다. 왜냐하면 기기별 정해진 크기와 실제 기기의 크기가 다를 수도 있기 때문이다. 예를들어 768px이 꼭 태블릿이 아닐 수도 있고 데스크탑일 수도 있다. 따라서 아래와 같이 사이즈로 네이밍을 하도록 권장한다.

const breakpoints = { small : ‘@media (max-width: 639px)’ , medium : ‘@media (max-width: 1047px)’ , large : ‘@media (min-width: 1048px)’ , } ;

Refs

https://nykim.work/84

(+ scss 믹스인 사용해서 media query 작성)

그냥 javascript에서도 media query 값에 접근할 수 있는지 궁금했던 것 : https://webruden.tistory.com/314

So you have finished reading the 반응 형 css 작성 가이드 topic article, if you find this article useful, please share it. Thank you very much. See more: 반응형 웹 css 소스, 반응형 웹 디자인 가이드, 반응형 css media, 반응형 웹 레이아웃 유형, 반응형 웹 미디어 쿼리, react 반응형 웹 만들기, 반응형 웹 만들기, 반응형 웹사이트 예시

Leave a Comment