일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 일본 나라
- 파이썬혼공
- 파이썬조건문
- 혼공단
- 비쥬얼스튜디오코드설치
- 비쥬얼스튜디오코드
- 일본여행
- 혼공파미션
- 조건문
- 파이썬공부
- 혼자공부하는파이썬
- input
- 일본 관광
- 혼공파선택미션
- Python
- 나라여행
- 혼자여행
- 일본나라여행
- input style
- 혼공파
- 나라 사슴
- 일본
- hover style
- 파이썬
- 파이썬문자열
- #파이썬
- 호버스타일
- 파이썬혼자공부하기
- 일본 사슴
- 한빛미디어
- Today
- Total
Eveningstar
MediaQuery & Veiwport 본문
**미디어 쿼리와 뷰포트는 반응형 웹사이트를 만들기위해 꼭 필요한 방법이다. 디바이스의 화면크기를 감지하고 그에 따른 코드를 화면에 보여줄수있도록 하는 기술이다.
[ 미디어쿼리 ]
- 화면의 크기나 환경에 따라 웹사이트를 변경하는 기술
1.기본문법
@media [only or not] [미디어유형] [and or ,(콤마)] (조건문) { 실행문 }
1) only or not
- only 키워드는 미디어쿼리를 지원하는 브라우저에서만 미디어쿼리를 해석하게 해주는 키워드로써 ie 8이하에서 지원하지 않기때문에 사용하지 않는 편
- not 다음에 따라오는 조건을 부정하는 키워드임으로 not (조건문)은 "조건문"의 경우를 제외한 모든 미디어유형을 뜻함
2) 미디어 유형
- all, screen, tv, aural 등 많은 유형이 있음
all |
모든 장치 |
screen |
컴퓨터와 스마트 기기의 화면 |
|
인쇄장치 |
3) and or ,(콤마) - 논리 연산자를 사용함
- and는 앞뒤 조건이 모두 사실일때 뒤에 따라오는 것을 해석해라라는 의미(all과 함께 쓰일땐 all생략가능)
* and 구문 뒤에 공백 한칸을 꼭 띄어쓰기 해줘야함
- , 는 앞뒤 조건 중 하나만 사실이더라도 뒤에 따라오는것을 해석하라는 의미
4) 조건문
4-1) @media (min-width:320px){ 실행문 }
4-2) @media (min-width:320px) and (max-width:768px){실행문}
width |
웹페이지의 가로값 |
|
min/max |
height |
웹페이지의 세로값 |
|
min/max |
device-width |
기기의 가로값 |
|
min/max |
device-height |
기기의 세로값 |
|
min/max |
orientation |
기기의 화면방향 |
portrait(세로) / landscape(가로) |
|
aspect-ratio |
화면비율 |
브라우저 화면비율(1)/종횡비(16/9), 해상도(1280/720) |
|
기타 조건문 -> https://www.w3schools.com/cssref/css3_pr_mediaquery.asp
2. 적용 방법
1) 링크방식
<link rel="stylesheet" href="mediaquery.css"> |
2) 링크방식2
<link rel="stylesheet" media="screen and (min-width: 900px)" href="widescreen.css"> <link rel="stylesheet" media="screen and (max-width: 600px)" href="smallscreen.css"> |
3) html 문서 내에 instyle로 작성
[ 뷰포트 ]
- 화면에서 실제 내용이 표시되는 영역, 스마트기기에 설정되어있는 뷰포트 영역으로 인해 미디어쿼리가 오작동 하지 않도록 뷰포트 메타태그를 꼭 추가해야함
- <head></head>사이에 meta viewport tag를 넣을 것
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"> |
1) width : 뷰포트의 너비 지정 (device-width/양수), height : 뷰포트 높이 지정(device-height/양수)
2) initial-scale : 초기 배율 설정 - 기본값 1( a<1면 축소페이지, a>1면 확대페이지)
3) minimum-scale : 최소 축소비율 설정 – 최소 축소 비율 지정, 기본값 0.25
4) maximum-scale : 최대 확대비율 설정 – 최대 확대비율 지정, 기본값 0.5
5) user-scalable : 확대/축소여부 설정 - yes/no(no로 설정하면 사용자가 페이지 확대할 수 없음)
이외에도 디자인적으로 유동형 레이아웃[Liquid Layout]과 적응형 레이아웃[Adaptive Layout], 유동형 그리드[Fluid grid]등으로 반응형 웹사이트에 따른 화면구현에 대한 고찰이 필요하다.
1) 유동형 레이아웃의 한계 : 최대너비에 최적화된 레이아웃을 줄이게 되면 가독성이 떨어기는 단점이 있음(단순히 퍼센트로 화면크기를 줄이는 방식을 뜻하는 듯)
2) 적응형 레이아웃 : http://alistapart.com/article/switchymclayout (swiching 기법, pc/tab/mo 클래스를 따로만들어 해당 크기에서 display:none, block으로 제어하는 것)
http://alistapart.com/d/switchymclayout/transition_layout_news.html
->위의 예제 페이지에서는 behaviors_new.js 로 화면크기에 따라 body의 클래스를 바꿔서 레이아웃을 변경하게 하고있음.
3) 유동형 그리드는 고정적인 단위 px 대신 em과 %를 사용하여 화면에 맞게 디자인이 변하는 것, 대표적으로 부트스트랩의 grid시스템
-> https://www.w3schools.com/w3css/w3css_grid.asp
* 부트스트랩 : http://bootstrapk.com/css/#grid
참고자료
- MDN mediaQuery : https://developer.mozilla.org/ko/docs/Web/Guide/CSS/Media_queries#%EA%B5%AC%EB%AC%B8
[ 브레이크 포인트를 통해 기기별 화면크기에 따른 css 대응 ]
**breakpoint**
- https://css-tricks.com/snippets/css/media-queries-for-standard-devices/
- 모바일과 태블릿 크기에 대응하는 mideaquery : Size https://gist.github.com/englishextra/11084565
'HTML&CSS' 카테고리의 다른 글
input 타입&스타일 (0) | 2018.02.02 |
---|---|
css3에 추가된 속성들(정리중) (0) | 2018.01.17 |
css3 transition/animation (0) | 2017.09.09 |
css3 (0) | 2017.09.06 |
scrollbar 디자인 (0) | 2017.08.23 |