ํ๋์ ์น์ฌ์ดํธ์์ PC, ์ค๋งํธํฐ, ํ๋ธ๋ฆฟ PC ๋ฑ ์ ์ํ๋ ๋์คํ๋ ์ด์ ์ข ๋ฅ์ ๋ฐ๋ผ ํ๋ฉด์ ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ๋ณํ๋๋ก ๋ง๋ ์นํ์ด์ง ์ ๊ทผ ๊ธฐ๋ฒ
์ฅ์
์น์ฌ์ดํธ๋ฅผ PC์ฉ๊ณผ ๋ชจ๋ฐ์ผ์ฉ์ผ๋ก ๊ฐ๊ฐ ๋ณ๊ฐ๋ก ์ ์ํ์ง ์๊ณ , ํ๋์ ๊ณต์ฉ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค์ด ๋ค์ํ ๋๋ฐ์ด์ค์ ๋์ํ ์ ์๋ค.
์น ํ์ด์ง ๋ด์ฉ์ ์์ ํ ๊ฒฝ์ฐ, ํ๋์ ํ์ด์ง๋ง ์์ ํ๋ฉด PC์ ๋ชจ๋ฐ์ผ ๋ฑ ๋ค์ํ ๋๋ฐ์ด์ค์์ ๋์ผํ๊ฒ ๋ฐ์๋๋ค.
๋ทฐํฌํธ(Viewport)
์น ํ์ด์ง๊ฐ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ์์ญ.๋ฐ์ํ ์น(Responsive Web)์ ๋ชจ๋ฐ์ผ, ํ ๋ธ๋ฆฟ, PC ๋ฑ ๋ค์ํ ๋๋ฐ์ด์ค์ ๋์คํ๋ ์ด์ ๋ง์ถฐ ๋ทฐํฌํธ๊ฐ ๋ณํ๋ ์น ์ฌ์ดํธ๋ฅผ ๋งํ๋ ๊ฒ์ด๋ค. ์ฆ, ํ๋ฉด์ด ๋ฐ๋ ๋๋ง๋ค ํ๋ฉด์ ๋ง์ถฐ ์คํ์ผ์ด ๋ฐ๋๊ฒ ๋๋ ์น ํํ๋ฅผ ๋งํ๋ค.
๋ทฐํฌํธ ์์ฑ
| ์์ฑ | ์๋ฏธ |
| width | ๋ทฐํฌํธ์ ๋๋น๋ฅผ ์ง์ |
| height | ๋ทฐํฌํธ์ ๋์ด๋ฅผ ์ง์ |
| inital-scale | ๋ทฐํฌํธ์ ์ด๊ธฐ ๋ฐฐ์จ์ ์ง์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ 1์ด๋ฉฐ, 1๋ณด๋ค ์์ ๊ฐ์ ์ฌ์ฉํ์ฌ ์ถ์๋ ํ์ด์ง๋ฅผ ํ์ํ๊ณ , 1๋ณด๋ค ํฐ ๊ฐ์ ์ฌ์ฉํ์ฌ ํ๋๋ ํ์ด์ง๋ฅผ ํ์ํ๋ค. |
| user-scalable | ๋ทฐํฌํธ์ ํ๋/์ถ์ ์ฌ๋ถ๋ฅผ ์ง์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ yes์ด๋ฉฐ no๋ก ์ค์ ํ๋ฉด ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ํ๋ ํ ์ ์๋ค. |
| minimum-scale | ๋ทฐํฌํธ์ ์ต์ ์ถ์ ๋น์จ์ ์ง์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ 0.25์ด๋ค. |
| maximum-scale | ๋ทฐํฌํธ์ ์ต๋ ํ๋ ๋น์จ์ ์ง์ ํ๋ค. ๊ธฐ๋ณธ๊ฐ์ 1.6์ด๋ค. |
๋ฏธ๋์ด ์ฟผ๋ฆฌ(Media Queries)
- CSS3์๊ธฐ์ ๋ก ๊ฐ ๋ฏธ๋์ด ๋งค์ฒด์ ๋ฐ๋ผ ๋ค๋ฅธ ์คํ์ผ์ ์ ์ฉํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ
- ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ @media๋ก ์์ํ๋ฉฐ ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ์ ๋ฏธ๋์ด ํ์ ๊ณผ ๋ฏธ๋์ด ํน์ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ์ฃผ์ ๋ฏธ๋์ด ํ์ ์์๋ all, print, screen ์ด ์๋ค.
๊ธฐ๋ณธ ๋ฌธ๋ฒ
- ํ์ : @media [only ๋๋ not] [๋ฏธ๋์ด์ ํ] [and ๋๋ ,] (์กฐ๊ฑด๋ฌธ) {์คํ๋ฌธ}
<link rel="stylesheet" href="style.css" >
<link rel="stylesheet" media="all and (min-width:320px)" href="style.css" >
@import url(style.css) all and (min-width:320px);
/*๋ฏธ๋์ด ์ฟผ๋ฆฌ ์์ฑ์ ์ฃผ์ ์ฌํญ*/
- min์ ์ฌ์ฉํ ๋๋ ๋ฐ๋์ ์์ ์์๋๋ก ์์ฑ ํ๋ค.(min์ ์ต์ ๋๋ ๊ทธ์ด์์ด๋ผ ๋ ๋ป์ผ๋ก, ์ ์ฐจ ์ปค์ง๋ ๊ฒ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์)
@media (min-width:320px){์คํ๋ฌธ}
@media (min-width:768px){์คํ๋ฌธ}
@media (min-width:1024px){์คํ๋ฌธ}
/*min-width๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ค๋งํธํฐ ๋ฑ ๊ฐ์ฅ ์์ ์ฌ์ด์ฆ์์์ ๋ ์ด์์์ ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ ,
์ ์ฐจ ํ์ฅ๋์ด๊ฐ๋ ํํ๋ก CSS๋ฅผ ์์ฑ*/
- max ์ฌ์ฉ์ ํฐ์์๋๋ก ์์ฑ ํ๋ค.(max๋ ์ต๋ ๋๋ ๊ทธ ์ดํ๋ผ๋ ๋ป์ผ๋ก, ์ ์ฐจ ์์์ง๋ ๊ฒ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์)
@media (max-width:1600px){์คํ๋ฌธ}
@media (max-width:1024px){์คํ๋ฌธ}
@media (max-width:768px){์คํ๋ฌธ}
/*max-width๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ์คํฌํ์ฉ์ ๊ฐ์ฅ ํฐ ํ๋ฉด ์ฌ์ด์ฆ์ ๋ ์ด์์์
๊ธฐ๋ณธ์ผ๋ก ํ๊ณ , ์ ์ฐจ ์ถ์ํ๋ ํํ๋ก CSS๋ฅผ ์์ฑ*/
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!--
- ๋ฐ์คํฌํ์ ๋์ํ๋๋ก ๋ง๋ค์ด์ง ๋ฌธ์๋ฅผ ์ค๋งํธํฐ์ผ๋ก ์ด๋ฉด ๋ณดํต 3~4๋ฐฐ ์ด์ ์ค ์์ ๋์ด
๊ธ์จ๋ฅผ ์์ ๋ณผ ์ ์๋ ํํ๋ก ์๊ฒ ํ์ํ๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด viewport๋ฅผ ์ค์ ํ๋ค.
- ๋ชจ๋ฐ์ผ ๋ทฐ ํฌํธ๋ฅผ ์ฌ์ค์ ํ๋ <meta>
์ค๋งํธํฐ ์น ๋ธ๋ผ์ฐ์ ์์๋ง ํด์
๋ทฐ ํฌํธ๋ฅผ ๋ฌธ์๊ฐ ์๋ ์คํฌ๋ฆฐ ์์ญ์ผ๋ก ์ฌ ์ค์
์น ๋ฌธ์๋ฅผ ๊ฐ์ ๋ก ์คํฌ๋ฆฐ ์ฌ์ด์ฆ์ ๋ง๊ฒ ์ค ์์ ํ์ง ์์
- content ์์ฑ
width=device-width : ํ์ด์ง์ ๋๋น๋ฅผ ๊ธฐ๊ธฐ์ ์คํฌ๋ฆฐ ๋๋น๋ก ์ค์ .
์ฆ, ๋ ๋๋ง ์์ญ์ ๊ธฐ๊ธฐ์ ๋ทฐํฌํธ์ ํฌ๊ธฐ์ ๊ฐ๊ฒ ์ค์
initial-scale=1.0 : ์ฒ์ ํ์ด์ง ๋ก๋ฉ์ ํ๋/์ถ์๊ฐ ๋์ง ์์ ์๋ ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์
๊ธฐ๋ณธ๊ฐ์ 1์ด๋ฉฐ, 1๋ณด๋ค ์์ผ๋ฉด ์ถ์๋ ํ์ด์ง, 1๋ณด๋ค ํฌ๋ฉด ํ๋๋ ํ์ด์ง๋ฅผ ํ์
-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<style type="text/css">
.box {
width: 300px;
height: 300px;
margin: 30px auto;
border: 3px dotted #333;
padding: 10px;
background: #e6e6e6;
}
@media ( max-width :600px) {
.box {
display: none; /*๋ธ๋ผ์ฐ์ ๋์ด๊ฐ 600์ดํ์ด๋ฉด none*/
}
}
</style>
</head>
<body>
<h3>๋ฐ์ํ ์น(Responsive Web)</h3>
<p>๋ฏธ๋์ด ์ฟผ๋ฆฌ : ๊ฐ ๋ฏธ๋์ด ๋งค์ฒด์ ๋ฐ๋ผ ๋ค๋ฅธ ์คํ์ผ์ ์ ์ฉํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ</p>
<div class="box"></div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<style type="text/css">
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body {
font-size: 14px;
font-family: "๋ง์ ๊ณ ๋", ๋๋๊ณ ๋, ๋์, sans-serif;
}
.container {
width: 1200px;
margin: 20px auto 10px;
border: 3px solid black;
}
.header {
width: 100%;
background: #e4f7ba;
padding: 20px;
text-align: center;
}
.body-main {
content: '';
clear: both;
display: block;
}
.article {
float: left;
width: 75%;
height: 500px;
background: #eee;
padding: 15px;
}
.side {
float: left;
width: 25%;
height: 500px;
background: yellow;
padding: 15px;
}
.footer {
width: 100%;
background: gray;
padding: 20px;
text-align: center;
}
/*
-max-width๋ฅผ ์ฌ์ฉ ํ๋ ๊ฒฝ์ฐ
๊ฐ์ฅ ํฐ ํ๋ฉด ์ฌ์ด์ฆ์ ๋ ์ด์์์ ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ ์ ์ฐจ ์ถ์ํ๋ ํํ๋ก css ์์ฑ
-
*/
/*ํ๋ฉด ๋๋น:0~768*/
@media ( max-width :1200px) {
.container {
width: 95%;
border: 3px solid red;
}
}
/*ํ๋ฉด ๋๋น:0~468*/
@media ( max-width :768px) {
.container {
width: 100%;
border: 3px solid green;
}
}
/*ํ๋ฉด ๋๋น:0~320*/
@media ( max-width :468px) {
.container {
width: 100%;
border: 3px solid green;
}
.header {
height: 300px;
}
.article {
float: nene;
width: 100%;
height: 300px
}
.side {
float: none;
width: 100%;
border: 3px solid red;
}
}
@media ( max-width :320px) {
.container {
width: 100%;
border: 3px solid tomato;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>ํค๋์
๋๋ค.</h1>
</div>
<div class="body-main">
<div class="article">๋ฉ์ธ์
๋๋ค.</div>
<div class="side">์ฌ์ด๋์
๋๋ค.</div>
</div>
<div class="footer">
<h3>ํธํฐ์
๋๋ค.</h3>
</div>
</div>
</body>
</html>'๐ป > CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| (45) [CSS] 3์ผ ๋ ์ด์์๊ณผ ํฌ์ง์ ๋ - Grid (0) | 2024.04.18 |
|---|---|
| (44) [CSS] 2์ผ ๋ ์ด์์๊ณผ ํฌ์ง์ ๋ - flex (0) | 2024.04.17 |
| (44) [CSS] 2์ผ ๋ ์ด์์๊ณผ ํฌ์ง์ ๋ (0) | 2024.04.17 |
| (43) [CSS] 1์ผ ํ ์คํธ ๋ฐ ๋ฐฐ๊ฒฝ ๊ด๋ จ ์คํ์ผ (0) | 2024.04.16 |
| (43) [CSS] 1์ผ CSS ๊ธฐ์ด (0) | 2024.04.16 |