블록은 위아래로 쌓는다.
그래서 블록 속성인 태그들을 사용하면 콘텐츠 크기에 상관없이 한 칸 , 한 칸씩을 몽땅 차지한다.
<div>
<p>
<img>
<footer>
<h1~h6>
<hr>
... 등등
<style>
.bigbox {
border: 1px solid red;
width: 700px;
height: 300px;
margin: auto;
}
.samllbox {
border: 1px solid green;
width: 400px;
height: 200px;
margin: auto;
}
</style>
<body>
<div class = "bigbox">700X300 크기의 블록 박스</div>
<div class = "samllbox">400X200 크기의 블록 박스</div>
</body>
in line , 말 그대로 라인 안에.. 라인 한 줄에 쭈우우욱 위치한다.
inline는 콘텐츠 내용의 크기가 inline의 크기가 된다.
예를 들어서 '안녕' 이라는 단어를 inline 요소로 써주면 안녕 딱 두 글자만큼의 길이와 글자 크기만큼의 높이를 가진다.
<span>
<a>
<br>
<strong>
... 등등
inline의 특징과 block의 특징을 섞었다.
inline처럼 옆으로 나란히 위치시킬 수 있고, block 처럼 width,height 로 크기 조정이 가능하다
<button>
<img>
<input>
<select>
<textarea>
... 등등
block이나 inline의 요소를 가진 태그를 썼는데 inline-block처럼 사용해야한다면??
display될 상태를 정한다.
inline-block 속성 부여
span {
display: inline-block;
}
block 속성 부여
span {
display: block;
}
화면에서 보이지 않게 한다. none을 활용해서 검색어 목록 등의 더 인터랙티브한 웹 페이지를 만들어줄 수 있다.
div {
display: none;
}
float을 이용해서 inline처럼 사용해줄 수 있다.
아래처럼 코드를 적어주면 img 태그에 있는 요소가 왼쪽 혹은 오른쪽으로 붙는다!
img {
float: left 혹은 right;
}
display: inline; 과 float: left;의 차이점
display: inline 도 왼쪽 정렬이고, float: left;도 왼쪽 정렬이다. 뭐가 다르지?? 눈으로 확인하고 싶었다.
block 요소를 가진 div 태그를 사용해서 테두리를 설정해 박스 2개를 만들었다.
(인라인은 width, height가 따로 설정할 수 없기 때문에 노란색 밑줄 표시가 뜬다..! 일종의 경고!)
그리고 박스와 박스 사이에 여백이 있다.
또 박스와 박스사이에 여백이 없었다.
근데 float 너는 진짜 뭐니..?
사실 float은 주로 이미지 주변에 텍스트를 감싸기 위해 만들어진 속성이며 위에서 찾았듯, block의 정렬이다.
float 속성은 3가지가 있다.
그러나 ....
float 속성을 가진 요소는 부모가 높이를 인지할 수 없어서 부모의 위치를 벗어나고,
float을 사용한 후 뒤에 오는 요소는 무조건 바로 옆으로 붙어버린다! (위에서 여백이 없었던 것처럼!!)
이걸 해결하기 위해서는 clear 속성이 필요하다.
clear? float 요소 옆에 채워지는 요소들에게 적용하는 속성이다.
clear 속성은 4가지가 있다.
.parent {
float : left 혹은 right;
}
이렇게 하면 부모 요소는 자식 요소의 높이를 인지하게 되지만 부모 요소도 float 된 요소가 되어 인라인 블럭의 특징을 가지게 된다. 때문에 비주얼 디자인 레이아웃에 따라 상황에 맞도록 사용해야한다.
.parent {
display: linline-block;
}
부모 요소는 자식 요소의 높이를 인지하게 되지만 되지만 부모 요소에 정의된 인라인블럭 속성 특성 때문에 본인 영역만큼만 너비를 가지게 된다.
.parent {
overflow: hidden;
}
이 속성은 자식 요소가 부모 요소 박스보다 클 경우에 자식 요소 박스의 콘텐츠를 숨기는 속성이다.
overflow: auto;를 적용해도 되지만 자식 요소 박스의 너비가 부모 요소 박스의 너비보다 클 경우에 스크롤이 생기기 때문에 권장되지 않습니다.overflow 특징대로 넘치는 것을 숨겨주는 속성인데, 여기선 다른 의미도 포함하고 있습니다.
넘치는 콘텐츠를 숨긴다는 의미는 부모 요소 박스가 그 자식 요소 콘텐츠를 숨긴다는 것입니다.
그런데 부모 요소가 플롯된 자식 요소로 인해 높이를 인지하지 못하고 있는 상황에서 overflow: hidden; 속성을 적용하게 되면 부모 요소(컨테이닝 박스)는 넘치는 요소를 숨김 처리를 하려고 하기 때문에 자식 요소의 높이를 인지하기 위해 자동으로 높이값을 계산하게 됩니다.
출처: https://webclub.tistory.com/606 [Web Club]
float된 요소 마지막에 형제 요소로 아무 태그를 사용해서 clear 속성을 적용한다. 의미없는 태그를 사용하는 거라 보통은 권장하지 않는다.
<div class="box-group">
<div class="box is-blue"></div>
<div class="box is-yellow"></div>
<div class="box is-green"></div>
<div class="clear"></div> </div>
.clear {
clear: none, left, right, both 중 사용;
}