
실습하기 : 고정 크기 박스를 가변크기 박스로 변환해보기 (Simple Version)
width : 960px -> width : 90% 식으로 변환하는 방법
미디어쿼리 실습하기
<style>
@media all and (min-width:320px) {}
@media all and (min-width:768px) {}
@media all and (min-width:960px) {}
</style>
(가변 크기로 만들 박스의 너비 / 가변 크기로 만들 박스를 감싸는 박스의 너비) * 100 = 가변크기의 % 값
calc 사용 방법
width : calc(100% - 100px);
<p>태그 안에 <span> 태그가 있다고 가정해보자
<p> 태그에 폰트 크기를 2em으로 적용하고 <span> 태그에 1em크기 폰트를 적용한다 하면
<p> 태그 -> 2em (32px),
<span> -> 1em (16px),
16px / 32px = 0.5 (글자크기)
<p> : font-size : 6em (96px)
<span> : 64px 로 설정하고 싶다면?
64px/96px = 0.6666667em
position : relative
padding-bottom : 56.25%; // 9 / 16
@media [only | not] [미디어 유형] [and 또는 ,] (조건문)[실행문]
@media : 미디어 쿼리 문법의 시작
[only | not]
- only키워드는 미디어 쿼리를 지원하는 브라우저에서만 미디어 쿼리를 해석
- not키워드는 not다음에 따라오는 조건을 부정하는 키워드
ex) not tv : tv를 제외한 모든 미디어 유형에 적용
미디어 유형
- all : 모든 장치
- print : 인쇄 장치
- screen : 컴퓨터 또는 스마트 기기 화면
- tv : 영상과 음성이 동시에 출력되는 장치
- projection : 프로젝터 장치
- handheld : 손에 들고 다니는 소형 장치
- speech : 음성 출력 장치
- aural : 음성 합성 장치
- embossed : 점자 인쇄 장치
- tty : 디스플레이 기능이 제한된 장치
- braille : 점자 표시 장치
[and | , ]
- and : 앞뒤 조건이 모두 사실일 때 뒤에 따라오는것을 해석하라는 의미
- , : d앞 뒤 조건 중 하나만 사실더라도 뒤에 오는것을 해석
- and, 콤마 선언은 생략 가능
@media A and B [실행문], @media A,B [실행문]
(조건문)
- 조건문이 사실일 때 뒤에 따라오는것을 해석
- 조건문은 and나 콤마 기호를 이용하여 2가지 이상 작성 가능하며 생략 가능
@media(min-width:320px)[실행문]
@media(min-width:320px) and (max-width:768px)[실행문]
width : 가로 너빗 값
height : 세로 높잇 값
device-width : 기기 너빗 값
device-height : 기기 높잇 값
orientation : 기기의 화면 방향 (portrait : 세로, landscape : 가로)
aspect-ratio : 화면 비율
device-aspect-ratio : 단말기의 화면 비율
color : 기기의 비트 수
color-index : 기기의 색상 수
monochrome : 기기가 흑백일때 픽셀당 비트 수
resolution : 기기의 해상도
scan : TV의 스캔 방식
grid : 기기의 그리드, 비트맵
{실행문}
- 앞뒤 조건들이 모두 사실일 때 실행되는 실행문
- 일반적으로 css코드가 작성되는 부분이다.
@media all and (min-width : 320x) { 실행문 }
<meta name="viewport" content="width=device-width,
initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"
width : 뷰포트 너비
initial-scale : 초기 배율
minimum-scale : 최소 축소 비율
maximum-scale : 최대 확대 비율
user-scalable=no : 확대/축소 여부 설정
display : flex | inline-flex
flex : 박스를 블록 수준의 플랙서블 박스로 작동하게 한다
inline-flex : 박스를 인라인 수준의 플랙서블 박스로 작동하게 한다.
flex-direction : row | row-reverse | column | column-reverse
row : 박스를 왼쪽 -> 오른쪽으로 배치 (주축 : 가로축)
row-reverse : 박스를 오른쪽 -> 왼쪽으로 배치
column : 박스를 위 -> 아래로 배치
column-reverse : 박스를 아래-> 위로 배치
flex-wrap : nowrap | wrap | wrap-reverse
nowrap : 박스를 한줄로 배치, 기본 값
wrap : 박스를 여러 줄로 배치
wrap-reverse : 박스를 여러 줄로 배치하되 역방향으로 배치
flex-flow : [flex-diretion] [flex-wrap], row nowrap
ex) flex-flow : row wrap-reverse;
justify-content : flex-start | flex-end | center | space-between | space-around
flex-start : 주축의 시작점으로 배치
flex-end : 박스를 주축의 끝점으로 배치
center : 박스를 중앙으로 배치
space-between : 첫번째 박스와 마지막 박스는 양끝으로 나머지 박스는 동일 간격으로 정렬
space-around : 양쪽 끝에 있는 박스의 양 옆에 공간을 둔채 자동 정렬
align-items : stretch | flex-start | flex-end | center | baseline
stretch : 박스를 확장해서 배치하며 기본 값
flex-start : 교차점의 시작점에 배치
flex-end : 교차점의 끝점에 배치
center : 교차축의 중앙에 배치
baseline : 교차점의 시작점에 배치되는 자식 박스의 글자 베이스라인에 맞춰 배치
align-self : auto | stretch | flex-start | flex-end | center | baseline
auto : 부모 박스의 속성 값을 상속, 부모 속성값이 없다면 stretch 속성 값이 적용
align-content : stretch | flex-start | flex-end | center
| space-between | space-around
order : 0 | 정숫값
박스의 배치 순서를 자유롭게 바꿀 수 있다.
정숫값으로 양수 혹은 음수 값 사용 가능하며 입력된 양수 값에 따라 배치
값이 낮을수록 우선순위가 높다.
음숫값 입력시에 기본값인 0이 되며 동일한 값이라면 태그 순서상 뒤에 작성된 태그가 우선 적용된다.
flex : [flex-grow] [flex-shrink] [flex-basis]
0,1,auto (기본값)
flex-grow : 플렉서블 박스에 여백이 있을때 플렉스 아이템의 크기를 늘일 수 있는 속성
flex-shrink : 플렉서블 박스 안의 아이템의 크기가 넘칠 경우 크기를 줄 일 수 있는 속성
flex-basis : 플렉스 아이템의 기본 크기를 설정하기 위한 속성