미디어쿼리 실습
📌학습 내용
📖 메뉴 버튼 실습
X축 정렬된 메뉴 버튼을 모바일 버전에서 Y축 정렬되게 하기
• 기본 PC 버전 세팅
.media-menu {
list-style: none;
margin: 0;
padding: 0;
display: flex;
justify-content: space-between;
align-items: center;
width: 700px;
background-color: black;
}
.media-menu a {
color: black;
text-decoration: none;
}
.media-menu li {
width: 150px;
background-color: yellow;
border: solid 5px red;
padding: 5px 15px;
text-align: center;
}
• 미디어쿼리 적용하기
@media (min-width: 320px) and (max-width: 767px) {
.media-menu {
flex-direction: column;
width: 190px;
align-items: flex-start;
}
.media-menu li {
margin-bottom: 10px;
}
.media-menu li:last-child {
margin-bottom: 0;
}
}
📖 HELBAK header
영역 실습
• 특징
— PC와 모바일에서 header
레이아웃이 다름
— PC 버전에서는 header
가 고정되어 있음
• header
기본 적용
📎html
<header class="intro">
<h1>Logo</h1>
<nav>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</nav>
</header>
<main role="main"> <!-- 익스플로러 호환을 위해 role="main" 꼭 -->
<h1>Hello World</h1>
</main>
📎CSS
.intro {
width: 100%;
height: 80px;
background-color: #ffffff;
}
.intro h1 {
width: 50%;
height: 80px;
background-color: black;
}
.intro nav {
width: 50%;
height: 80px;
background-color: yellow;
}
.intro nav ul {
list-style: none;
padding: 0;
margin: 0;
}
main {
width: 100%;
height: 2000px;
background-color: lightgray;
}
• li
x축 정렬하여 각각 색 바꿔주기
.intro nav ul {
display: flex;
}
.intro nav ul li {
width: 33.3333%;
height: 80px;
}
.intro nav ul li:nth-child(1) {
background-color: lightpink;
}
.intro nav ul li:nth-child(2) {
background-color: skyblue;
}
.intro nav ul li:nth-child(3) {
background-color: yellowgreen;
}
• LOGO 영역과 메뉴 영역 분리하기
.intro {
display: flex;
}
• header
고정하기
.intro {
position: fixed;
}
main {
padding-top: 80px;
/*3차원인 .intro 뒤로 2차원 main이 숨겨지기 때문에 padding 적용*/
}
• 모바일 버전 작업하기
@media (min-width: 320px) and (max-width: 767px) {
.intro {
flex-direction: column;
height: 160px;
}
.intro h1 {
width: 100%;
}
.intro nav {
width: 100%;
}
}
• 모바일 버전에서 header
고정 풀기
@media (min-width: 320px) and (max-width: 767px) {
.intro {
position: static;
}
main {
padding-top: 0;
}
📖 미디어쿼리 레이아웃 변경 실습
• PC버전: 이미지 레이아웃 3x2
📎html
<div class="container">
<div class="column">
<img src="https://via.placeholder.com/250x150">
<div class="image-info">
<h2>Title</h2>
</div>
</div>
</div>
📎CSS
.container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 1140px;
margin: 0 auto;
background-color: lightpink;
}
.column {
width: 355px;
background-color: white;
border: solid 2px red;
margin-bottom: 10px;
}
.column:nth-child(4),
.column:nth-child(5),
.column:nth-child(6) {
margin-bottom: 0;
}
.column img {
width: 100%;
vertical-align: middle; /*img의 기본 마진을 없애줌*/
}
• 텍스트 영역에 디자인 적용하기
.image-info {
padding: 20px 0;
text-align: center;
}
.image-info h2 {
margin: 0;
}
• 미디어쿼리 - 태블릿 버전 이미지 레이아웃 2x3
@media (min-width: 540px) and (max-width: 720px) {
.container {
width: 720px;
}
}
• 4, 5, 6번 영역에 적용된 마진값 0을 풀어주기
@media (min-width: 540px) and (max-width: 720px) {
.column:nth-child(4) {
margin-bottom: 10px;
}
}
• 미디어쿼리 - 모바일 버전 이미지 레이아웃 1x6
@media (min-width: 320px) and (max-width: 539px) {
.container {
width: 100%;
}
.column {
width: 100%;
}
.column:nth-child(4),
.column:nth-child(5) {
margin-bottom: 10px;
}
}
• 양 옆 여백 주기
@media (min-width: 320px) and (max-width: 539px) {
.container {
box-sizing: border-box;
width: 100%;
padding: 0 20px;
}
📖 미디어쿼리 적용 방법 세 가지
(1) 위 실습처럼 CSS 파일 안에 @media
적용함
(2) 모바일 버전 CSS를 별도로 만들어서 적용하고 관리함
(3) head
안에 style
태그를 적용함
📌어려운 점
다행히 별로 없었음
📌느낀 점
실습을 하면서 앞에서 배운 개념들을 종합적으로 쓰고 있다는 느낌을 받았다. 그리고 강사님께서 특정 부분에서 이전에 부여한 속성값을 수정하거나 삭제해주고 넘어가야 하는 이유에 대해 설명하실 때 어려움 없이 이해할 수 있어서 스스로 뿌듯해 함 😊ㅋㅋ
Author And Source
이 문제에 관하여(미디어쿼리 실습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@naheeyu/210712저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)