<div class="container">
<div class="box1">Box 1</div>
</div>
.container {
position: relative; /* 본인의 위치를 기준으로 이동 */
width: 400px;
height: 300px;
background-color: #f2f2f2;
}
.box1 {
position: absolute; /* 부모요소에 relative설정이 있는지 확인하고 설정이 있는 부모 기준으로 이동 */
/*없다면 body태그 기준으로 이동*/
top: 20px; /* 부모 요소의 위쪽으로부터 20px만큼 이동 */
left: 30px; /* 부모 요소의 왼쪽으로부터 30px만큼 이동 */
width: 100px;
height: 100px;
background-color: #ff0000;
}
<!-- HTML -->
<div class="container">
<div class="box">Box 1</div>
<div class="box">Box 2</div>
<div class="box">Box 3</div>
</div>
/* CSS */
.container {
display: flex; /* Flex 컨테이너로 설정하여 내부 요소들을 가로로 배치 */
flex-wrap: wrap; /* 화면 크기에 따라 요소들이 줄바꿈되도록 설정 */
justify-content: center; /* 가로 방향으로 요소들을 가운데 정렬 */
}
.box {
width: 200px; /* 박스의 너비를 200px로 설정 */
height: 200px; /* 박스의 높이를 200px로 설정 */
display: flex; /* 내부 요소들을 가운데 정렬하기 위해 다시 Flex 컨테이너로 설정 */
align-items: center; /* 세로 방향으로 요소들을 가운데 정렬 */
justify-content: center; /* 가로 방향으로 요소들을 가운데 정렬 */
}
HTML에서는 .container라는 클래스를 가진 부모 요소와 .box라는 클래스를 가진 자식 요소들을 정의하고 있다.
CSS에서는 .container에 display: flex 속성을 적용하여 자식 요소들을 배치하고, flex-wrap: wrap을 통해 화면 크기에 따라 요소들이 줄바꿈되도록 설정한다.
/* CSS */
.container {
display: grid; /* 그리드 컨테이너로 설정하여 내부 요소들을 그리드로 배치 */
grid-template-rows: 1fr 1fr 1fr; /* 그리드 행의 크기를 동일한 비율로 설정 */
}
.box {
background-color: #f2f2f2; /* 박스의 배경색을 회색으로 설정 */
border: solid 1px black; /* 박스에 테두리를 설정 */
}
/* CSS */
.container {
display: flex; /* Flex 컨테이너로 설정하여 내부 요소들을 유연하게 배치 */
flex-wrap: wrap; /* 화면 크기에 따라 요소들이 줄바꿈되도록 설정 */
justify-content: center; /* 가로 방향으로 요소들을 가운데 정렬 */
}
.box {
width: 200px; /* 박스의 너비를 200px로 설정 */
height: 200px; /* 박스의 높이를 200px로 설정 */
background-color: #f2f2f2; /* 박스의 배경색을 회색으로 설정 */
margin: 10px; /* 박스들 간의 간격을 10px로 설정 */
display: flex; /* 내부 요소들을 가운데 정렬하기 위해 다시 Flex 컨테이너로 설정 */
align-items: center; /* 세로 방향으로 요소들을 가운데 정렬 */
justify-content: center; /* 가로 방향으로 요소들을 가운데 정렬 */
font-size: 18px; /* 텍스트의 글자 크기를 18px로 설정 */
@media screen and (max-width: 600px) {
width: 100%; /* 화면 너비가 600px 이하일 때, 박스의 너비를 100%로 설정하여 한 줄에 하나씩 배치 */
}
}