3열 : 3n + 1
, x열 : xn + 1
vbox
라는 빈 형제요소를 추가하여 그 곳에 clear를 하는 방법이지만 추천하는 방법은 아니다.overflow: hidden
을 적용하면 되는 간단한 방법인데 정식 방법이 아닌 버그성이 있는 방법이므로 추천하지 않는다.<!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>
/* ct 클래스를 추가하여 공통부분을 넣음 */
.ct {
width: 700px;
/* height: auto*/
padding: 20px;
border: 3px solid;
margin: 20px;
}
.container1 {
border-color: red;
}
/* 해제하는 클래스를 따로 만들어서 설정 */
.clearfix::after {
/*
- 도형을 만드려면
display속성 필수
- before, after에는
content속성은
무조건 써야함
*/
content: "";
display: block;
clear: both;
}
.container2 {
border-color: blue;
}
.container3 {
border-color: orange;
}
.box {
width: 200px;
height: 150px;
border: 3px solid green;
background: yellowgreen;
border-radius: 20px;
float: left;
}
</style>
</head>
<body>
<div class="ct container1 clearfix">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="ct container2 clearfix">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
<div class="ct container3 clearfix">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
</body>
</html>
::after
속성을 이용해서 clear: both;
를 통해 해제 가능clearfix
는 부모에게 씀!!!container
의 공통 부분은 ct라는 클래스를 생성하여 css를 입력해주어 깔끔하게 보일 수 있도록 리팩토링하였다. height: auto
로 설정하였다..container
에 width는 600px이다. 나같은 경우에는 마진을 2%씩 주고 싶었기 때문에 5군데 = 총 10%이다..box
에 margin-right를 2%씩 주게되면 1번을 제외한 모든 곳에 margin이 들어가게된다. 하지만 제일 왼쪽은 margin-left를 통해 줄 수 있으므로 수도 클래스를 통해 따로 지정하면된다. 또한 width는 90% / 4이므로 자손인 .box
에 22.5%씩 주면된다.
시작에 앞서 항상 css에 들어가는 부분을 처리하는 법을 배웠다.
common.css
라는 css 파일에 매 번 입력되는 공통부분을 작성해주어 import 기능을 통해 불러와서 쉽게 사용할 수 있게 해주었다.reset css
부분도 common.css
에 import 해주어서 common.css
를 부르게되면 reset css
도 같이 불러주게 설정!/* 공통 css를 적는 파일 */
/* css파일이 다른 css파일을 불러오는 것 */
/* 즉 common.css를 부르면 아래 reset.css도 같이 불러옴 */
@import url("https://cdn.jsdelivr.net/npm/reset-css@5.0.2/reset.min.css");
* {
box-sizing: border-box;
}
.clearfix::after {
content: "";
display: block;
clear: both;
}
a {
color: inherit;
text-decoration: none;
}
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<!-- layout-prac1 -> common 부름 -> reset과 box-sizing, clearfix, a 부름 -->
<link rel="stylesheet" href="layout-prac1.css" />
</head>
<body>
<div class="container">
<h1>녹차와 커피</h1>
<div class="contents clearfix">
<div class="green">
<p>
녹차는 은은한 향을 좋아하는 사람들이 애용하는 차이다. 녹차를 마실 줄
모르는 사람들은 티백들을 모두 뜯어 주전자에 넣고 끊이기도 하는데
강한 차의 향기도 견디기 힘들겠지만 보관도 힘들고 그때그때 방금 끓인
듯한 맛을 느끼지 못하게 되며 진한 카페인 덕에 밤에 잠들기도 힘들
것이다.
</p>
</div>
<div class="coffee">
<p>
커피는 독한 향을 좋아하는 사람도 매우 좋아하며 심한 경우 태어나기
전부터 커피를 마신 듯 강한 중독 증세를 보이는 경우가 많다. 심지어
원두를 씹어서 향에 자신을 담그는 사람도 있고 설탕, 시럽 등 다른
조미를 절대로 허락하지 않는 오직 커피맛만을 고집하는 마니아들 이
늘고 있다.
</p>
</div>
</div>
</div>
</body>
</html>
/* common.css를 불러옴 */
@import url("../../common.css");
.container {
width: 70%;
background: pink;
border: 5px solid #caa;
margin: 50px auto;
padding: 20px;
}
.container h1 {
font-size: 1.5em;
font-weight: 700;
text-align: center;
margin-bottom: 20px;
}
.container .contents div {
float: left;
width: 45%;
}
.container .contents .green {
background: #dda;
margin-right: 10%;
}
.container .contents .coffee {
background: #ba7;
}
.container .contents div p {
padding: 15px;
text-align: justify;
line-height: 1.3;
text-indent: 7px;
}
<span>
태그를 입력해주어 만들어준다.<!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 rel="stylesheet" href="layout-prac2.css" />
</head>
<body>
<div class="container">
<h1 class="main-title">나의 아름다운 정원</h1>
<h2 class="sub-title">
사람들은 아마 자신에게
<span class="yellow">자신감을 복돋워 주는</span>
표정 있는 꽃들을 선호할 것이다.
</h2>
<!-- ul>li#*4>img-box+p.text -->
<ul class="gallery clearfix">
<li id="tulip">
<div class="img-box"></div>
<p class="text">
너무 화려하지 않으며 고귀한 느낌을 가지고 있다. 붉은 색이 단연
으뜸이며 한 송이만 있어도 빼어나다.
</p>
</li>
<li id="jebi">
<div class="img-box"></div>
<p class="text">
드물게 푸른색을 띠고 있으며 작지만 시원해 보이는 어린 꽃이라고 할 수
있다. 여럿이 함께 있을 때 더욱 아름답다
</p>
</li>
<li id="hobak">
<div class="img-box"></div>
<p class="text">
색도 모양도 화려하며 이름과 걸맞지 않게 아름다운 꽃으로 매우 완숙한
이미지를 풍기는 꽃이다.
</p>
</li>
<li id="sunflower">
<div class="img-box"></div>
<p class="text">
태양만 바라보는 일편단심의 꽃으로 얼굴이 큰 편에 속하며 송이가
적어야 제격이다.
</p>
</li>
</ul>
</div>
</body>
</html>
@import url("../../common.css");
.container {
width: 80%;
border: 3px double #123456;
color: #333;
margin: 20px auto;
}
.container .main-title {
font-size: 3em;
font-weight: 700;
font-family: "궁서체" cursive;
text-align: center;
background: #ccc;
padding: 20px 0;
}
.container .sub-title {
font-size: 1.2em;
background: #333;
color: #fff;
text-align: center;
padding: 10px 0;
border-bottom: 2px solid #ccc;
}
.container .sub-title .yellow {
font-size: 1.1em;
color: #ff0;
}
.container .gallery {
background: #6a6a6a;
padding: 20px 0;
}
.container .gallery li {
border: 1px solid #ccc;
float: left;
width: 23.75%; /* 4칸이 25%씩 나눠먹기 */
height: 350px;
margin-right: 1%;
padding: 5px;
}
.container .gallery li:first-child {
margin-left: 1%;
}
.container .gallery li .img-box {
border: 1px solid #888;
height: 45%;
margin-bottom: 10px;
background-size: cover;
background-repeat: no-repeat;
}
.container .gallery li .text {
font-size: 1.1em;
font-weight: 700;
line-height: 1.2;
text-align: justify;
padding: 0 10px;
}
#tulip {
background-color: #d31515;
}
#tulip .img-box {
background-image: url(../../../img/tulip.jpg);
}
#jebi {
background-color: #e941f9;
}
#jebi .img-box {
background-image: url(../../../img/jebi.jpg);
}
#hobak {
background-color: #fe692b;
}
#hobak .img-box {
background-image: url(../../../img/hobak.jpg);
}
#sunflower {
background-color: #f3ea33;
}
#sunflower .img-box {
background-image: url(../../../img/sunflower.jpg);
}