width
그리고 높이는 height
와 같은 속성을 사용해서 설정padding
과 관련 속성을 사용해 제어border
와 관련 속성을 사용하여 제어margin
과 관련 속성을 사용하여 제어width
와 height
속성을 사용하여 스타일을 컨트롤 할 수 있습니다.width
와 height
속성을 사용할 수 없습니다.display
속성은 박스의 성질을 지정하여 다른 박스들과 어떤 방식으로 위치가 배치 될지 결정합니다. border-width에 사용 되는 값들은 아래와 같은 유형이 있습니다.
선의 형태는 실선, 점선, 파선 등 다양하게 설정할 수 있으며 아예 없앨 수도 있습니다.
h1 {
padding: 10px 15px 20px 25px; /* 앞에서부터 top, right, bottom, left 입니다. */
padding: 10px;/* 패딩박스의 top, right, bottom, left가 모두 동일하게 10px일 경우 */
padding: 10px 20px; /* 패딩박스의 top,bottom이 10px, left, right가 20px일 경우 */
padding: 10px 20px 15px; /* top이 10px, bottom 15px, left와 right가 20px일 경우 */
}
h1 {
margin: 10px 15px 20px 25px; /* 앞에서부터 top, right, bottom, left 입니다. */
margin: 10px;/* 마진박스의 top, right, bottom, left가 모두 동일하게 10px일 경우 */
margin: 10px 20px; /* 마진박스의 top,bottom이 10px, left, right가 20px일 경우 */
margin: 10px 20px 15px; /* top이 10px, bottom 15px, left와 right가 20px일 경우 */
/*
마진 속성에는 auto값이 존재합니다.
요소의 크기를 제외한 나머지 마진영역을 반으로 나눠 left와 right에 골고루 분배합니다.
덕분에 auto 를 이용하면 손쉽게 수평 정렬을 만들 수 있지만 아쉽게도
top, bottom 에는 auto 값을 적용할 수 없습니다.
*/
margin: 10px auto;
}
<div class="first"></div>
<div class="second"></div>
div{
width:100px;
height:100px;
border:1px solid black;
}
.first{
margin-bottom:30px;
}
.second{
margin-top:60px;
}
/* 마진 값이 높은 쪽의 마진만 적용됩니다. second의 margin-top 60px 가 더 크므로 second margin-top만 적용*/
<div class="parent">
<div class="child"></div>
</div>
.parent{
background-color:yellow;
}
.child{
width:100px;
height:100px;
margin-top:50px;
background-color:red;
}
/* 부모의 높이를 따로 지정하지 않으면 자식의 높이만큼 부모의 높이가 지정됩니다.
하지만 위와 같은 경우 자식의 마진 탑, 바텀 값이 부모의 높이에 영향을 미치지 않게 됩니다. */
위와 같은 문제를 해결하는 방법
1. 부모 요소에 overflow 속성 값을 적용해줍니다.
2. 부모 요소에 display: inline-block 값을 적용해줍니다.
3. 부모 요소에 border 값을 적용해줍니다.
h1 {
box-sizing: border-box;
/*box-sizing: content-box; --> box-sizing의 기본 값입니다. 표준 박스 모델에서 사용됩니다. */
}
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}