HTML/CSS : CSS를 이용한 HTML 레이아웃

i_sy_code·2022년 2월 19일
0
post-thumbnail

CSS의 꽃이라 할 수 있는 레이아웃 속성 기초에 대해 알아보자!

1. Box-model

html 문서의 요소들은 기본적으로 박스 형태로 정의된다.
따라서 웹페이지 레이아웃이란, 이런 박스를 상하좌우로 적절하게 배치하는 것을 뜻한다.
박스모델은 테두리, 내용, 안쪽여백(padding), 바깥여백(margin) 4요소로 구성된다.

css box-model

* 요소는 실질적으로 border-box 영역이라고 생각하면 편하다.
Contents-box : 컨텐츠 영역으로 텍스트 및 이미지가 차지하는 영역.
Padding-box : 테두리와 박스 사이의 안쪽 여백.
Border-box : 박스를 둘러싼 테두리 영역.
Margin-box : 박스의 외부 영역으로, 근처 박스와의 바깥쪽 여백.






2. display 속성

css로 작업을 하다 개발자도구를 열면
display : block / display : inline / display : inline-block을 본 적 있을 것이다.
이것은 HTML에서 각 요소가 차지하는 공간에 대한 개념이라고 이해하는 것이 좋다.

display 속성 그림

가장 직관적으로 display 속성을 설명한듯한 그림을 가져왔다.
블록은 해당 요소가 문서의 가로 전체를 차지하고, 인라인은 다른 요소와 한줄에 나란히 있을 수 있다.
인라인-블록은 애매하지만, 이름처럼 인라인과 블록의 특징을 반반 갖고있는 것 같다.
그 특징 차이에 대해 표로 정리해 봤다.

display 속성 특징 정리표

인라인의 경우 높이와 너비를 설정해줄 수 없으며, 마진과 패딩 또한 좌우로만 적용이 가능하다.

이러한 인라인이 갖는 단점을 인라인-블록 속성을 통해 보완할 수 있는 것이다.
즉, 요소들을 한 줄에 배치하고 싶은데 그 요소 크기에 대한 제약을 벗어나고 싶다면 인라인-블록을 쓰면 된다.

위에서 예시로 들은 태그들의 경우 기본으로 설정된 display 속성일뿐, 충분히 변경 가능하다.
CSS에서 display 속성을 줌으로써 해당 태그의 속성을 얼마든지 바꿀 수 있다.





3. position 속성

css position 속성 그림

position은 요소의 위치에 대한 속성이다.

position : static (정적인)

=> position 속성의 기본값으로, 요소 순서대로 배치되며 왼쪽에서 오른쪽으로 추가된다.

position : relative (상대적인)

=> 자신이 원래 있던 위치를 기준으로 상하좌우에 배치시킬 수 있는 속성이다.

position : absolute (절대적인)

=> relative position을 갖는 가장 가까운 부모 요소가 위치의 기준이 된다.
      마치 부모가 자식에게 있어 절대적 권위을 갖는 것처럼, 그런식으로 이해해 두는 것도 좋다.
      직계 부모가 relative가 아니라면 더 조상 요소를 찾아간다. 기준을 따라 상하좌우 배치가 가능하다.

position : fixed (고정적인)

=> 브라우저 창(window)이 위치의 기준이다. 따라서 페이지를 스크롤해도 계속 고정되어 표시된다.


  * position : static에서는 float 속성을 이용해 요소를 좌측이나 우측으로 배치시킬 수 있다.

    float: left; 혹은 float: right;를 지정하여 요소를 띄워 다른 요소가 들어올 만큼의 공간을 비워 둔다.

profile
삶은 끊임없이 나의 한계와 맞서는 일이다.

0개의 댓글