display
주로 div 태그와 같이 사용하며 css를 사용하면서 가장 많이 쓰는 속성 중 하나가 아닐까 생각이 들 정도로 자주 쓰인다고 한다.
display 속성은 화면 레이아웃을 편하게 나누거나 정렬 할 수 있게 해 주기 때문에 중요한 속성이라고 할 수 있다.
display 자주 쓰는 속성
div 태그의 기본 display 속성은 block으로 되어 있으며 자주 쓰는 속성으로는 none, block, inline, inline-block, flex 가 있다.
간단한 실습을 통해 어떻게 동작하는지 알아보자.
display : block
- display : block -> 가로폭을 전부 차지하기 때문에 줄바꿈이 된다. width, height, margin, padding을 사용하여 크기나 위치를 지정해 줄 수 있다.
더보기

줄바꿈이 자동으로 된 것을 볼 수 있다.
소스 코드
<!-- CSS -->
<style>
.frame {
width: 330px;
height: 330px;
border: 1px solid;
}
.dp {
width: 100px;
height: 100px;
border: 1px solid;
margin: 5px;
}
</style>
<!-- html -->
<body>
<div class="frame">
<div class="dp dp1"></div>
<div class="dp dp2"></div>
<div class="dp dp3"></div>
</div>
</body>
결과

display : none
- display : none -> 해당 내용을 화면에 표시하지 않는다.
더보기

div 1개가 사라진 걸 볼 수 있다.
소스 코드
<!-- CSS -->
<style>
.frame {
width: 330px;
height: 330px;
border: 1px solid;
}
.dp {
width: 100px;
height: 100px;
border: 1px solid;
margin: 5px;
}
.dp3 {
display: none;
}
</style>
<!-- html -->
<body>
<div class="frame">
<div class="dp dp1"></div>
<div class="dp dp2"></div>
<div class="dp dp3"></div>
</div>
</body>
결과

display : inline
- display : inline -> 사용된 만큼만 공간을 차지하기 때문에 줄 바꿈이 되지 않고 가로, 세로 폭을 지정해 줄 수 없으며 margin과 padding은 좌우만 적용된다. 위치 지정이 불가능하며 text-align로 정렬은 가능하다.
더보기

으악이라고 써진 텍스트 만큼만 공간을 차지하고 옆으로 나열 된 것을 볼 수 있다.
소스 코드
<!-- CSS -->
<style>
.frame {
width: 330px;
height: 330px;
border: 1px solid;
}
.dp {
width: 100px;
height: 100px;
border: 1px solid;
margin: 5px;
display: inline;
}
</style>
<!-- html -->
<body>
<div class="frame">
<div class="dp dp1">으악</div>
<div class="dp dp2">으악</div>
<div class="dp dp3">으악</div>
</div>
</body>
결과

display : inline-block
- display : inline-block -> inline 속성과 비슷하지만 가로, 세로의 폭을 설정 할 수 있고 margin과 padding은 상하만 적용된다.
더보기

inline과 다르게 width, height 값이 적용된 것을 볼 수 있다.
소스 코드
<!-- CSS -->
<style>
.frame {
width: 330px;
height: 330px;
border: 1px solid;
}
.dp {
width: 100px;
height: 100px;
border: 1px solid;
margin: 5px;
display: inline-block;
}
</style>
<!-- html -->
<body>
<div class="frame">
<div class="dp dp1">으악</div>
<div class="dp dp2">으악</div>
<div class="dp dp3">으악</div>
</div>
</body>
결과

display : flex
- display : flex -> 가장 많이 사용 하는 속성으로 자식 태그의 넓이가 부모 태그의 넓이보다 넓을 때 자식 태그의 크기를 줄여주기도 하는 등 동적인 레이아웃을 유연하게 배치할 수 있게 해 준다.
더보기

자식 태그의 width가 100px이지만 부모 width의 350을 넘지 못하기에 자식 태그의 div의 width 값이 줄어든 것을 볼 수 있다.
소스 코드
<!-- CSS -->
<style>
.frame {
width: 350px;
height: 350px;
border: 1px solid;
display: flex;
}
.dp {
width: 100px;
height: 100px;
border: 1px solid;
margin: 5px;
}
</style>
<!-- html -->
<body>
<div class="frame">
<div class="dp dp1"></div>
<div class="dp dp2"></div>
<div class="dp dp3"></div>
<div class="dp dp4"></div>
<div class="dp dp5"></div>
<div class="dp dp6"></div>
<div class="dp dp7"></div>
<div class="dp dp8"></div>
<div class="dp dp9"></div>
</div>
</body>
결과

display를 활용한 게시판 레이아웃 만들기
소스 코드
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>게시판</title>
<style>
.boardtitle {
width: 1000px;
text-align: center;
}
.main {
width: 1000px;
height: 50px;
border-top: 1px solid;
border-bottom: 1px solid rgba(0,0,0,0.5);
display: flex;
}
.num {
width: 50px;
height: 50px;
}
.title {
width: 700px;
height: 50px;
}
.userid {
width: 110px;
height: 50px;
}
.date {
width: 80px;
height: 50px;
}
.cnt {
width: 60px;
height: 50px;
}
.main p {
text-align: center;
}
.sub {
width: 1000px;
height: 50px;
border-bottom: 1px solid rgba(0,0,0,0.2);
display: flex;
}
.sub p {
text-align: center;
}
.sub .title p {
text-align: left;
margin-left: 10px;
}
</style>
</head>
<body>
<div class="boardtitle"> <h1>게시판</h1> </div>
<div class="main">
<div class="num"> <p>No</p> </div>
<div class="title"> <p>제 목</p> </div>
<div class="userid"> <p>작성자</p> </div>
<div class="date"> <p>게시일</p> </div>
<div class="cnt"> <p>조회수</p> </div>
</div>
<div class="sub">
<div class="num"> <p>5</p> </div>
<div class="title"> <p>참치김밥</p> </div>
<div class="userid"> <p>동복이</p> </div>
<div class="date"> <p>2023.03.02</p> </div>
<div class="cnt"> <p>666</p> </div>
</div>
<div class="sub">
<div class="num"> <p>4</p> </div>
<div class="title"> <p>제육볶음</p> </div>
<div class="userid"> <p>동복이</p> </div>
<div class="date"> <p>2023.03.02</p> </div>
<div class="cnt"> <p>777</p> </div>
</div>
<div class="sub">
<div class="num"> <p>3</p> </div>
<div class="title"> <p>해물볶음짜장</p> </div>
<div class="userid"> <p>동복이</p> </div>
<div class="date"> <p>2023.03.02</p> </div>
<div class="cnt"> <p>888</p> </div>
</div>
<div class="sub">
<div class="num"> <p>2</p> </div>
<div class="title"> <p>치킨마요덮밥</p> </div>
<div class="userid"> <p>동복이</p> </div>
<div class="date"> <p>2023.03.02</p> </div>
<div class="cnt"> <p>999</p> </div>
</div>
<div class="sub">
<div class="num"> <p>1</p> </div>
<div class="title"> <p>안녕하세요</p> </div>
<div class="userid"> <p>동복이</p> </div>
<div class="date"> <p>2023.03.02</p> </div>
<div class="cnt"> <p>1,000</p> </div>
</div>
</body>
</html>
결과
728x90
'CSS' 카테고리의 다른 글
[CSS] POSITION 속성 이해하기 (0) | 2023.03.03 |
---|---|
[CSS] CSS 이해하기 (0) | 2023.03.02 |