[웹 UI 개발] 반응형 웹 - 1 / 태블릿 PC 환경
이전 포스트에서 만든 PC버전 웹페이지를 그대로 사용한다.
아래 조건에 맞는 태블릿 PC버전 웹페이지를 제작.
- header : 배경색 lightseagreen, 로고 폰트 크기 40px, 로고 폰트 색 #fff, 메뉴 폰트 25px, 메뉴 폰트 색 #fff
- content : 리스트 간격 8px, 리스트 폰트 크기 14px, 리스트 폰트 색 #fff
- footer : 배경색 lightcoral, 폰트 크기 14px, 폰트 색 #000
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width==device-width, initial-scale=1.0">
<title>반응형 웹</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/responsive.css">
</head>
<body>
<div class="wrap">
<header>
<a href="#" class="logo"><h1>LOGO</h1></a>
<nav>
<a href="#">MENU1</a>
<a href="#">MENU2</a>
<a href="#">MENU3</a>
<a href="#">MENU4</a>
<a href="#">MENU5</a>
<a href="#">MENU6</a>
<a href="#">MENU7</a>
<a href="#">MENU8</a>
</nav>
</header>
<section>
<ul class="list">
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
긴~~~~~~~~~~~~~~~~~~~~~~~~~~~~~타이틀
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
<li>
<a href="" class="inner">
<div class="thumb">
<img src="img/thumb.png" alt="썸네일이미지">
</div>
<div class="title">
타이틀입니다.
</div>
</a>
</li>
</ul>
</section>
<footer>
<p>footer--footer--footer--footer--footer--footer</p>
</footer>
</div>
</body>
</html>
@charset "UTF-8";
a {
text-decoration: none;
}
header {
overflow: hidden;
background-color: pink;
padding: 20px;
}
.logo {
float: left;
font-size: 20px;
color: #fff;
}
nav {
float: right;
}
nav a {
padding: 0 5px;
font-size: 20px;
color: #fff;
}
footer {
height: 50px;
line-height: 50px;
text-align: center;
background-color: #ccc;
font-size: 14px;
color: #000;
}
section {
overflow: hidden;
max-width: 900px;
margin: 50px auto;
}
.list {
margin: -5px;
overflow: hidden;
}
.list li {
float: left;
width: 20%;
}
.inner {
display: block;
margin: 5px;
border: 1px solid #000;
}
.thumb img {
width: 100%;
height: auto;
}
.title {
padding: 5px 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: center;
font-size: 14px;
color: #555;
}
@media screen and (min-width: 768px) and (max-width: 1024px){
header {
background-color: lightseagreen;
}
.logo {
width: 100px;
float: none;
display: block;
margin: 0 auto;
font-size: 40px;
text-align: center;
}
nav {
overflow-x: auto;
overflow-y: hidden;
margin-top: 20px;
float: none;
white-space: nowrap;
}
nav a {
font-size: 25px;
}
footer {
background-color: lightcoral;
color: #fff;
}
.list {
margin: -4px;
}
.list li {
width: 25%;
}
.inner {
position: relative;
margin: 4px;
}
.title {
position: absolute;
right: 0;
bottom: 0;
left: 0;
padding: 10px 0;
background-color: rgba(0, 0, 0, 0.2);
color: #fff;
}
}
<meta name="viewport" content="width==device-width, initial-scale=1.0">
태블릿 PC나 모바일 환경에 맞는 웹페이지를 제작할 때 이 메타태그를 넣어주지 않으면 여전히 PC버전으로 웹페이지가 보이는 문제가 발생할 수 있다.
@media screen and (min-width: 768px) and (max-width: 1024px){
...
}
미디어 쿼리를 사용해서 브라우저의 가로 크기가 768px~1024px일 때만 내부의 css가 동작하도록 한다.
.logo {
width: 100px;
float: none;
display: block;
margin: 0 auto;
font-size: 40px;
text-align: center;
}
float되어 있던 것을 해제하고 display를 block으로 수정한다.
그 후 디자인 가이드대로 수정한다.
nav {
overflow-x: auto;
overflow-y: hidden;
margin-top: 20px;
float: none;
white-space: nowrap;
}
float되어 있던 것을 해제한다.
"white-space: nowrap;"속성으로 요소의 크기를 무시하고 한 줄로 표현되도록 한다.
"overflow-x: auto;"속성으로 x축에 스크롤이 생기도록 한다.
"overflow-y: hidden;" 속성으로 y축 스크롤은 보이지 않도록 한다.
.list {
margin: -4px;
}
.inner {
position: relative;
margin: 4px;
}
리스트 간 간격을 8px로 수정하기 위해 inner의 margin을 4px로 수정한다.
그 후에 list의 margin을 -4px로 수정해서 콘텐츠가 section에 딱 맞도록 한다.
.title {
position: absolute;
right: 0;
bottom: 0;
left: 0;
padding: 10px 0;
background-color: rgba(0, 0, 0, 0.2);
color: #fff;
}
태블릿 PC에서는 썸네일 타이틀이 썸네일 이미지 안에 있도록 가이드가 제시되어 있다.
position을 absolute로 두고 inner를 relative로 둔다.
위치를 조정하고 디자인 가이드대로 수정한다.
부스트코스의 강의 내용을 정리한 포스트입니다.
https://www.boostcourse.org/web344
웹 UI 개발
부스트코스 무료 강의
www.boostcourse.org
'공부 > 웹 UI 개발' 카테고리의 다른 글
[웹 UI 개발] 반응협 웹 - 2 / 모바일 환경 (0) | 2023.03.30 |
---|---|
[웹 UI 개발] 반응협 웹 - 0 (0) | 2023.03.30 |
[웹 UI 개발] 폼 - 4 / 폼 커스텀 (셀렉트 메뉴) (0) | 2023.03.29 |
[웹 UI 개발] 폼 - 3 / 폼 커스텀 (파일 찾기 버튼) (0) | 2023.03.29 |
[웹 UI 개발] 폼 - 2 / 폼 커스텀 (체크 박스, 라디오 버튼) (0) | 2023.03.27 |