px
단위는 픽셀이라는 뜻, 화면에 고정적인 길이를 의미하며 절대적인 수치를 의미%
는 부모요소 대비 비율<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
margin: 0;
padding: 0;
}
div {
border: 2px solid gray;
}
/* %는 항상 부모대비 ! */
.root {
width: 500px;
}
.parent {
width: 50%;
margin-left: 10%;
}
.child {
width: 50%;
}
</style>
</head>
<body>
<!-- .root>.parent>.child*3 -->
<div class="root">
ROOT
<div class="parent">
PARENT
<div class="child">CHILD1</div>
<div class="child">CHILD2</div>
</div>
</div>
</body>
</html>
-> 위 코드에서 root의 자식은 parent이다. 여기서 root의 width가 500px이므로 parent의 width: 50%는 250px를 의미
em
은 요소 자기 자신의 font-size에 영향5 x 10px의 50px
rem
는 html태그에서 지정한 font-size에 영향2rem은 32px
vw, vh
는 뷰포트(디바이스 화면)를 기준으로 설정되는 길이 단위, 0~100사이의 값을 가짐vw
는 width를 지정할 때 사용,vh
는 height를 지정할 때 사용100vh
로 지정하면 데스크탑 화면이든 태블릿, 모바일 화면과 관계없이 높이가 화면 전체를 꽉 채우게 됨100vw, 100vh
가 전체 화면의 기준이 됨!! .box {
background: orange;
width: 100vw;
height: 70vh;
}
vh, vw
는 열려있는 화면 전체의 상대적길이
이기 때문에 스크롤바를 포함한 길이를 반환%
는 창이 중심이 아닌, %를 쓰고 있는 요소의 부모 요소대비 비율에 맞게 반환margin: 0 auto; /* 중앙 정렬을 위한 마진 설정 */
box-sizing: border-box;
을 같이 입력해줘서 box사이즈 유지!<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link
href="
https://cdn.jsdelivr.net/npm/reset-css@5.0.2/reset.min.css
"
rel="stylesheet"
/>
<style>
#container {
width: 550px;
height: 30vh;
border: 2px solid #123456;
}
.main_first {
background: #abcdef;
text-align: center;
font-size: 20px;
font-weight: bold;
height: 50px;
padding-top: 20px;
border-bottom: 2px solid #123456;
}
.main_second {
height: 10vh;
}
.main_third {
height: 10vh;
}
.main_big {
font-size: 24px;
font-weight: bold;
padding:10px 0 5px 5px;
}
.smallone {
padding-bottom: 5px;
border-bottom: 2px solid #123456;
}
.main_small {
padding:0 0 5px 5px;
}
</style>
</head>
<body>
<div id="container">
<div class="main_first">속 담 풀 이</div>
<div class="main_second">
<div class="main_big">말 한마디에 천냥 빚진다.</div>
<div class="main_small smallone">
생각해보지 않고 나오는 대로 말하다가 실수하면 상대의 마음에 아픔을
남기게 된다.
</div>
</div>
<div class="main_third">
<div class="main_big">웃는 얼굴에 침 못 뱉는다.</div>
<div class="main_small">
호의적인 의사소통 방법은 자기 말만 하는 것보다 좋은 결과로 이어진다.
</div>
</div>
</div>
</body>
</html>
-> div를 남발하여 제대로 구분이 되지 않았다. 또한 height를 주지 않아도 되었지만 주어서 풀었다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<!-- reset css -->
<link
href="
https://cdn.jsdelivr.net/npm/reset-css@5.0.2/reset.min.css
"
rel="stylesheet"
/>
<!-- custom css -->
<link rel="stylesheet" href="practice(1).css" />
</head>
<body>
<section id="container">
<h1 id="title">속 담 풀 이</h1>
<div class="content">
<h2>말 한마디에 천냥 빚진다.</h2>
<p>
생각해보지 않고 나오는 대로 말하다가 실수하면 상대의 마음에 아픔을
남기게 된다.
</p>
</div>
<div class="content">
<h2 class="secondTitle">웃는 얼굴에 침 못 뱉는다.</h2>
<p>
호의적인 의사소통 방법은 자기 말만 하는 것보다 좋은 결과로 이어진다.
</p>
</div>
</section>
</body>
</html>
#container {
width: 550px;
margin: 50px auto;
border: 3px double #123456;
}
section #title {
font-size: 1.5em;
font-weight: bold;
text-align: center;
background: #abcdef;
padding: 20px 0;
border-bottom: 3px solid #123456;
}
section .content {
padding: 10px;
}
section .content h2 {
font-size: 1.2em;
font-weight: bold;
}
section .content p {
font-size: 0.8em;
padding-top: 5px;
}
section .content:last-child {
border-top: 3px dotted #123456;
}
font-size
를 em을 이용하여 더 간단하게 표현했다.<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link
href="
https://cdn.jsdelivr.net/npm/reset-css@5.0.2/reset.min.css
"
rel="stylesheet"
/>
<style>
#container {
width: 600px;
height: 210px;
border: 1px solid #000;
font-size: 23px;
background: lightgray;
}
#first_sentence,
#second_sentence,
#third_sentence {
padding: 23px 23px 23px 30px;
color: white;
font-weight: bold;
text-shadow: 0 1px 1px black;
}
#second_sentence:hover {
display: inline-block;
background: skyblue;
color: yellow;
}
</style>
</head>
<body>
<div id="container">
<div id="first_sentence">
[주문] 긴급재난지원금을 쿠x에서 사용할 수 있나요?
</div>
<div id="second_sentence">
<span>다슬기를 키우고 싶은데 어떤 환경이 필요한가요?</span>
</div>
<div id="third_sentence">달팽이가 집을 나갔습니다. 어떻게 하죠??</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<!-- reset css -->
<link
href="
https://cdn.jsdelivr.net/npm/reset-css@5.0.2/reset.min.css
"
rel="stylesheet"
/>
<!-- custom css -->
<link rel="stylesheet" href="practice(2).css" />
</head>
<body>
<div id="container">
<ul>
<li>[주문] 긴급재난지원금을 쿠X에서 사용할 수 있나요?</li>
<li>다슬기를 키우고 싶은데 어떤 환경이 필요한가요?</li>
<li>달팽이가 집을 나갔습니다. 어떻게 하죠??</li>
</ul>
</div>
</body>
</html>
* {
box-sizing: border-box;
}
#container {
width: 50%;
margin: 50px auto;
background: lightgray;
padding: 10px;
color: white;
}
div ul {
display: inline-block;
}
div ul li {
font-size: 1.5em;
font-weight: bold;
margin: 30px;
text-shadow: 1px 1px 2px black;
}
div ul li:hover {
background: skyblue;
color: yellow;
}