<시작하기 전>
: 미디어 타입(media type)에 따라 표현식(expression)을 부여하는 것으로, 표현식은 width, height와 같은 미디어 특성(media feature)들을 이용하여 그 특성들의 상태에 따라 다른 스타일 시트를 적용한다.
개념 참고 출처: https://offbyone.tistory.com/121
(1) 미디어쿼리 바깥 쪽에 사용된 css코드를 확인해가며 작성해야한다.
예를 들어, 미디어쿼리 바깥 쪽에는 background-color가 지정되어있는데, 미디어쿼리 안에 변경되는 background-color를 지정하지 않으면 바깥 쪽에 있는 배경 색상을 상속 받게된다.
이런 과정이 번거롭다면 pc용 css파일과 모바일용 css파일을 따로 만들어주는 방법도 있다.
(2) 항상 head에 메타태그를 아래와 같이 설정해주어야 한다.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
※ orientation : 스마트폰 사용시 가로모드와 세로모드가 있는데, portrait의 경우는 사용자가 스마트폰을 세로모드 그대로 들었을 때를 지정하는 속성값이고, landscape는 사용자가 스마트폰을 가로로 들었을 때 지정하는 속성값이다.
일반적으로는 세로모드로 적용하는 경우가 많으며,
orientation을 지정하기보다 아래에 mediaquery를 새로운 크기로 지정해서 가로모드를 설정하는 경우가 많다.
※ 만든 모바일용 웹사이트가 모바일환경에서 잘 구현되는지 확인하기 위해서,
※ 미디어 쿼리 코드는 적용되는 크기 밖에서는 보이지않는다. 즉, (min-width: 300px) and (max-width:767px)로 적용되는 크기를 지정했을 경우, max가 넘는 767이상의 브라우저 사이즈에서는 크롬 검사를 통해 css코드에 @media 코드가 표시되지 않는다. 반대로 적용되는 크기로 브라우저 크기를 줄일 경우 코드가 표기된다.
display는 블록과 인라인 요소의 특징을 바꾸기 위해서 사용하는 코드였다. 하지만 display의 사전적의미는 '전시하다', display값을 none을 준다면 화면에 안보이게 할 수 있다.
같은 사이트라도 PC와 모바일에 각각 다른 문구를 표시해야하는 경우가 생길 수 있다. 이럴 때 display를 이용해 모바일용 문구가 PC화면에서 보이지 않게, PC용 문구가 모바일화면에서 보이지 않게 설정할 수 있다.
.pc{
color: red;
font-size: 50px;
background-color: pink;
}
.mobile{ display: none;}
@media (min-width: 320px) and (max-width: 767px) {
.pc {
display: none;
}
.mobile{
display: block;
}
}
-> "이러한 기능들은 복잡하고 번거롭기 때문에 개발자에게 유쾌한 작업이라 할 수 없다. 그렇기때문에 기획단계에서 pc와 모바일버전 웹사이트에 대한 계획이 중요하다."
-> "복잡한 것을 간결하고 단순하게 만드는것보다 단순한 것을 복잡하게 확장하는 것이 더 쉬운 작업이다. 그래서 강사님의 경우는 개발 전 모바일버전의 html부터 기획해달라고 요청하고, 그 후에 모바일버전을 기반으로 추가된 기능을 가진 pc나 태블릿버전 html을 제작한다"
/Mobile.ver/
h1{
font-size: 20px;
background-color: yellow;
}
/Tablet.ver/
@media (min-width: 768px) {
h1{
font-size: 40px;
background-color: hotpink;
}
}
/PC.ver/
@media (min-width: 1024px) {
h1{
font-size: 80px;
background-color: gray;
}
}
orientationd에서 가로모드,세로모드를 따로 설정하는 부분이 완벽히 숙지되지는 않았다.
아직은 강사님께서 중요한건 아닌듯 넘어갔기 때문에 일단은 오늘 배운부분만 이해를 하고 다음에 응용할 때 다시 공부해봐야 할 것같다.
이제는 모바일 화면을 구성하는 것이 필수적인 과정이기 때문에 오늘 내용은 중요한 부분이라고 생각된다. 아무리 웹사이트를 잘 만들어도 모바일에서 잘 구현되지 않는다면 큰 문제가 될 것이다.