CSS - (5) Media Query 연습
Media Query 연습
작은 것에서 부터 (모바일) 큰 것 으로 키워나가는 것이 좋다!
template 코드
index.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Media Query</title>
<link
href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@700;900&family=Poppins:wght@700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="./style.css" />
</head>
<body>
<aside class="banner">
<h1 class="banner-title">
<a href="#"> 🚗 모집 임박! 12월 게스트 신청하기 </a>
</h1>
</aside>
<section class="landing">
<h1 class="landing-title">
<strong lang="en">Eat, pray, work</strong>
프렌치케밥의<br />
디지털노마드 민박<br />
#치앙마이<br />
#8월예약오픈
</h1>
<a href="#" class="landing-link"> 민박 둘러보기 </a>
</section>
</body>
</html>
style.css
* {
box-sizing: border-box;
margin: 0;
}
body {
font-family: 'Noto Sans KR', sans-serif;
letter-spacing: -0.01em;
}
a {
text-decoration: none;
}
.landing {
background-image: url('./assets/img-bg.jpg');
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
}
.landing-title {
line-height: 1.25;
letter-spacing: -0.03em;
color: #fff;
}
.landing-title strong {
display: block;
font-family: 'Poppins', sans-serif;
letter-spacing: -0.01em;
}
.landing-link {
line-height: 1;
color: #fff;
}
.banner-title a {
color: #1f2d3d;
}
/* ▼ WHERE YOUR CODE BEGINS */
실행화면
작은 것에서 부터 (모바일) 큰 것 으로 키워나가는 것이 좋다!
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Media Query</title>
<link
href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@700;900&family=Poppins:wght@700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="./style.css" />
</head>
<body>
<aside class="banner">
<h1 class="banner-title">
<a href="#"> 🚗 모집 임박! 12월 게스트 신청하기 </a>
</h1>
</aside>
<section class="landing">
<h1 class="landing-title">
<strong lang="en">Eat, pray, work</strong>
프렌치케밥의<br />
디지털노마드 민박<br />
#치앙마이<br />
#8월예약오픈
</h1>
<a href="#" class="landing-link"> 민박 둘러보기 </a>
</section>
</body>
</html>
* {
box-sizing: border-box;
margin: 0;
}
body {
font-family: 'Noto Sans KR', sans-serif;
letter-spacing: -0.01em;
}
a {
text-decoration: none;
}
.landing {
background-image: url('./assets/img-bg.jpg');
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
}
.landing-title {
line-height: 1.25;
letter-spacing: -0.03em;
color: #fff;
}
.landing-title strong {
display: block;
font-family: 'Poppins', sans-serif;
letter-spacing: -0.01em;
}
.landing-link {
line-height: 1;
color: #fff;
}
.banner-title a {
color: #1f2d3d;
}
/* ▼ WHERE YOUR CODE BEGINS */
CSS 수정하기
배너 수정하기
.banner {
position: fixed;
width: 100%;
bottom: 0;
left: 0;
/* height는 자식의 사이즈에 맞추어진다 */
/* height: 64px; */
background-color: #ffc82c;
}
.banner-title a {
display: flex;
justify-content: center;
align-items: center;
font-size: 18px;
width: 100%;
height: 64px;
}
position: fixed
의 경우, viewport를 기준으로 위치를 잡게 된다.
랜딩 수정하기
.landing {
width: 100%;
height: 100vh;
padding: 0 20px;
}
.landing-link {
width: 160px;
height: 52px;
font-size: 15px;
}
landing-link의 경우, anchor 태그이므로,
display: inline
이므로, width, height 값이 먹지를 않는다.
여기서,display: block;
으로 바꿔주면 또 정렬을 해야하므로,
display: flex
를 먹여준다.
.landing-link {
display: flex;
justify-content: center;
align-items: center;
width: 160px;
height: 52px;
font-size: 15px;
}
여백과, 테두리도 수정해 보자.
.landing-title {
margin-bottom: 24px;
}
.landing-link {
display: flex;
justify-content: center;
align-items: center;
width: 160px;
height: 52px;
border: 2px solid #fff;
border-radius: 16px;
font-size: 15px;
background-color: rgba(0, 0, 0, 0.5);
}
landing 가운데로 정렬
.landing {
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-end;
width: 100%;
height: 100vh;
padding: 0 20px;
}
.landing-title {
margin-bottom: 24px;
text-align: right;
}
PC화면에 맞추어 수정하기
@media screen and (min-width: 768px) {
.banner {
top: 0;
/* auto로 주면 이전의 값이 사라짐 */
bottom: auto;
}
.banner-title a {
height: 80px;
}
.landing-title {
font-size: 50px;
}
}
화면이 768px 이상일 경우 바뀌는 부분만 수정해주면 된다!
배너가 원래는 bottom에 붙도록 지정되어 있었으므로, auto로 바꿔주면 이후에 top을 적용하면 top이 먹도록 된다!
데스크탑일 경우에는, 글자가 가운데 정렬 되도록 해주자!
.landing-title {
font-size: 50px;
text-align: center;
}
그 외 나머지 자잘한 디테일들을 수정해보자!
@media screen and (min-width: 768px) {
.banner {
top: 0;
/* auto로 주면 이전의 값이 사라짐 */
bottom: auto;
}
.banner-title a {
height: 80px;
}
.landing {
align-items: center;
}
.landing-title {
margin-bottom: 32px;
font-size: 50px;
text-align: center;
}
.landing-link {
width: 180px;
height: 56px;
font-size: 18px;
}
}
Author And Source
이 문제에 관하여(CSS - (5) Media Query 연습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@frenchkebab/CSS-5-Media-Query-연습저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)