Block에서 inline으로, inline에서 Block으로 바꾸는게 가능할까? 가능하다. 이걸 Display 속성이라고 한다.
<span></span>
의 디폴트 display 속성은 inline이다. 아무것도 적용하지 않으면 <span></span>
은 기본적으로 inline으로 인식된다. block으로 바꿔주면 span도 block이 될 수 있다.
그렇다면 <div></div>
를 inline으로 바꾸면 어떻게 될까? div자체가 사라진다.
그 이유는 inline은 높이와 너비를 가질 수 없지만 block은 가질 수 있기 때문이다.
내용과 너비, 높이 모두 없기 때문에 div가 사라져 보이고 내용이 있으면 그 내용만큼의 크기를 가지고 보여지게 된다.
<head>
<style>
div{
display: inline; <!--div를 inline으로 바꾸면 div box가 사라짐-->
height: 150px;
width: 150px;
background-color: yellow;
}
span{
display: block; <!--span이 block이 되었다.-->
}
</style>
</head>
<body>
<div>내용이 있어야 웹사이트 상에서 보여요</div>
<span>hello</span>
</body>
</html>
<style>
html{
background-color: pink;
}
body{
background-color: turquoise;
margin: 0;
}
div{
height: 150px;
width: 150px;
background-color: yellow;
}
</style>
또는
body{
margin: a b c d;
}
body{
margin: 20px;
}
body{
margin: 20px 10px;
}
body{
margin: 20px 5px 10px 15px;
}
body 안에 div의 위아래 margin 경계가 body의 margin 경계와 만나면 둘 중 큰 값의 margin으로 body에 적용이 되고, 이 현상을 collapsing margins라고 한다.
위아래
에서만 발생한다.
body와 div box의 상하 margin이 다름에도 불구하고 경계가 하나로 합쳐져버렸다.
둘 중 큰값인 margin 50px로 마진 상쇄가 일어났다.