학습한 내용
: 웹, 태블릿, 모바일 환경에 맞게 html을 각각 적용시킬 때 사용하는 CSS 작성 기법
반응형 웹 사이트 : 브라우저 크기 변화에 따라 레이아웃이 자연스럽게 변화함
적응형 웹 사이트 : 브라우저 크기 변화에 따라 레이아웃이 부자연스럽게 변화함
-> 하나의 html에 css를 pc/모바일 버전으로 만듦
모바일 네이버 : https://m.naver.com/
-> 웹 사이트용/ 모바일용 html 파일이 다르다.
[html]
<h1 class="pc">PC Hello World</h1>
[css]
.pc {
color: red;
font-size: 50px;
background-color: lightpink;
}
@media (min-width: 320px) and (max-width: 767px) {
.pc {
color: blue;
font-size: 20px;
background-color: lightgray;
}
}
width 값을 기준으로 pc/모바일 영역의 범위를 나눠 CSS를 적용한다.
-> @media (min-width: 320px) and (max-width: 767px)
width 값 기준표
min-width보다 더 작아지면 범위를 벗어낫기 때문에 이전값(.pc)으로 돌아간다.
@media를 이용해서 범위를 더 추가하여 css 변화를 더 적용할 수 있다.
[css]
@media (min-width: 600px) and (max-width: 767px) {
.pc {
color: blue;
font-size: 20px;
background-color: lightgray;
}
}
@media (min-width: 100px) and (max-width: 599px) {
.pc {
color: green;
font-size: 10px;
background-color: lightgreen;
}
}
[html]
<h1 class="pc">PC Hello World</h1>
[css]
.pc {
color: red;
font-size: 50px;
background-color: lightpink;
}
@media (min-width: 320px) and (max-width: 767px) {
.pc {
color: blue;
font-size: 20px;
}
}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
[html]
<h1 class="pc">PC Hello World</h1>
<h1 class="mobile">Mobile Hello World</h1>
[css]
.pc {
color: red;
font-size: 50px;
background-color: lightpink;
}
.mobile {
display: none;
}
@media (min-width: 320px) and (max-width: 767px) {
.pc {
display: none;
}
.mobile {
display: block;
color: orange;
font-size: 30px;
background-color: lightcyan;
}
}
display:none;
: 화면에 보이지 않음display: block;
를 따로 지정해야 한다. (inline, inline-block 사용 가능)[html]
<h1>미디어쿼리 응용</h1>
[css]
h1 {
font-size: 20px;
background-color: yellow;
}
@media (min-width: 768px) {
h1 {
font-size: 40px;
background-color: pink;
}
}
@media (min-width: 1024px) {
h1 {
font-size: 80px;
background-color: gray;
}
}
@media (min-width: 1024px)
: 1024px 이상학습한 내용 중 어려웠던 점 또는 해결 못한 것들
미디어쿼리 바깥에 있는 CSS 코드가 상속되어 미디어쿼리 외부/내부 코드를 둘 다 꼼꼼하게 살피는 것이 조금 어려운 부분이였다.
해결 방법 작성
아직 복잡한 코드를 사용하지 않아서 문제는 없었지만 나중에 복잡한 코드를 다룰 때는 class를 명확하고 간결하게 사용하면 오류를 줄일 수 있을 것 같다는 생각을 했다.
학습 소감
pc가 먼저 개발되고 그 이후에 스마트폰이 개발되었던 것을 생각해서 pc용 웹 사이트의 제작이 우선이고 모바일용은 그 이후라고 당연히 생각했는데 그 반대여서 신선했다.