-인라인 엘리먼트
<a>, <img>, <span>과 같은 태그는 css inline element입니다.
주로 박스 안의 요소로 들어가게 됩니다. 다른 엘리먼트에 비해 정렬이 까다롭습니다.
- 메모리에 열 단위로 저장됩니다.
- 내용이 담긴 크기만큼 영역을 차지합니다.
- 줄바꿈이 없고, 문장 중간에 들어갈 수 있습니다.
내용물의 크기만큼 영역을 점유하기 때문에, 임의로 너비나 높이를 설정할 수 없습니다. 패딩, 마진도 마찬가지입니다.
따라서 블록이나 인라인 블록 엘리먼트로 성질을 변경하거나 다른 성질을 가진 부모 안에 넣어서 사용하는 경우가 많습니다.
a태그나 img, span과 같은 css inline 태그를 div나 p같은 태그안에 넣어서 사용합니다.
-블록 엘리먼트
<div>, <h1>, <p>, <ul>, <ol>과 같은 태그는 block element 입니다.
위에서부터 네모박스를 채워넣는 것 같은 구조를 가지고 있습니다. 가장 기본적이고, 안에 다른 요소를 넣기에도 좋습니다.
너비가 꽉 차게 생성되어, 자동적으로 다음 태그는 줄바꿈이 된다는 특징이 있습니다.
- 메모리에 행단위로 저장됩니다.
- 블록은 기본 너비 100%로 생성되어 자동으로 줄바꿈이 됩니다.
- 따라서 width 크기를 줄여야 배치, 정렬이 가능합니다.
-인라인 블록 엘리먼트
inline-block element는 css inline 엘리먼트의 성질을 가지지만, 블록 엘리먼트처럼 정렬하기 좋습니다.
우리가 워드나 한글에서 글자 정렬을 하듯이, 글자라고 생각하면 쉽습니다. 크기를 임의로 지정할 수 있습니다.
- 외부에서는 인라인처럼 내용물 만큼의 크기를 가집니다.
- 내부에서는 블록처럼 너비 높이 마진 설정이 가능해서, 웹 사이트의 메뉴나 내비게이션 바를 만들 때 자주 사용합니다.
글자같은 성질을 가지고 있기 때문에, 부모의 text-align과 line-height를 통해 정렬할 수 있습니다.
주로 메뉴 리스트를 수평으로 정렬할 때 사용합니다.
-엘리먼트 성질 바꾸기
태그는 생성과 동시에 엘리먼트의 성질이 기본적으로 주어지지만, 필요에 따라 바꿀 수 있습니다.
디자인한 레이아웃에 따라 그 위치와 크기를 조정하기 위해 필수적인 작업이라고 할 수 있습니다.
태그를 만듭니다.
display: inline 또는 block, inline-block 이라고 스타일을 줍니다.
그러면 css inline 성질을 가진 a태그 라고 해도, 블록 또는 인라인 블록 엘리먼트의 성질을 가질 수 있습니다.
주로 인라인 요소가 정렬하기 까다롭기 때문에, 인라인 요소를 정렬하기 위해 다른 성질로 바꾸는 경우가 많습니다.
-display: block에 대해
스타일을 줘서 정렬하기 위해 쓰기도 하지만, display: block;은 다른 의미도 가지고 있습니다.
어떤 요소에 display: none; 을 부여하고, 원하는 타이밍에 요소를 나타날 수 있도록 합니다.
예를 들어, 메뉴에 마우스를 올렸을 때 하위 메뉴가 보이도록 할 수 있습니다.
visibility: hidden; 이라는 것도 있지만 태그가 차지하고 있는 공간을 없애지 않고 투명하게만 한다는 차이가 있습니다.
-visibility는 뭐야?
visible: 요소를 나타냅니다. 기본값이므로 숨겼을 때 보이게 하는 용도 입니다.
hidden: 화면에서 요소를 숨기지만, 여전히 레이아웃 영역에 존재하고 있습니다.
collapse: 동적인 테이블에서 테이블 테두리를 한줄만 보여줍니다. 잘 사용하지 않습니다.
드래그하거나 하면 바로 볼 수 있기 때문에 민감한 정보에는 사용하지 않아야 하고, 툴팁에 주로 사용됩니다.
css inline, block, inline-block element의 성질에 대해 알아보았습니다. 기본 태그의 성질이 무엇인지, 처음에는 헷갈리지만 쓰다보면 점점 자연스럽게 떠올리게 되므로, 전환이 필요한 요소에만 display 속성을 바꿔주게 되더군요.
'웹, 게임 제작' 카테고리의 다른 글
css 선택자 기본 (0) | 2021.08.20 |
---|---|
html 태그 자주 쓰이는 태그 순위 (0) | 2021.08.19 |
vscode 단축키 및 환경설정 vscode live server, FTP, ftp simple, Emmet, Beautify (0) | 2021.08.19 |
Phaser 기본세팅과 플랫포머 튜토리얼 (0) | 2021.02.26 |
생활코딩_WEB2 JS요약 (0) | 2021.02.16 |
댓글