저번 글에 display 속성과 positon속성을 알아보겠다고 했느네, 바로 가보자!
1. display 속성으로 HTML 태그의 혈앨형 바꾸기
display 속성은 HTML 태그가 가진 두 가지 혈액형인 Block 요소와 InLINE 요소를 사용한다.
여기서 혈액은 요소의 고유특징이라고 생각하시면 됩니다.
Block 요소와 Inline 요소에는 다음 세 가지 특징이 있다.
- 줄 바꿈 현상 유무
- width 와 height 속성 적용 유무
- margin-top, margin-bottom, padding-top, padding-bottom 속성 적용 유무
Inline 요소의 혈액형을 가진 <span> 태그의 특징을 살펴보자!
<span> 태그는 inline 요소의 특징을 가지므로 줄 바꿈 현상이 안 나타남. 또한 width, height, margin-top, margin-bottom 속성에 작동되지 않는다.
예제를 통해 살펴봅시다.
그림과 같이 inline속성인 span태그에 여러 속성을 부여했습니다.
실행 결과를 보면 background를 제외하고, 전혀 적용되지 않는 모습을 보입니다. 앞서 설명한것과 같습니다.
그럼 이제 display 속성을 사용하여 <span> 태그의 혈액형을 Block 요소로 바꿔 보겠다.
태그 안에 display: block; 만 추가하면 된다!!
그림을 보면 block 속성으로 바꾸니 span에 적용한 다른 적용 값을 정상적을 작동됨을 보입니다.
반대로 block 요소의 특징을 가지는 <h>태그에 display: inline 속성 값을 주면 어떻게 될 거 같나요?
이전에 본 그림에 반대로 나타나게 될겁니다. 이 부분은 스스로 해보시길..
마지막으로, inline 요소와 block 요소를 섞은 상태 줄 바꿈 현상이 일어나지 않고 width, height, margin-botton 속성이 적용되도록 할 수도 있다.
적용은 display: inline-block; 형식으로 적용하면 된다.
2. position 속성으로 HTML 태그에 차원 부여하기
차원은 우리가 알고있는 1,2,3차원을 이야기하며 태그에 차원을 부여함으로써 좀 더 입체적인 웹페이지 구성을 도모할 수 있다.
position 속성은 선택된 태그의 상태를 2차원 또는 3차원으로 지정한다. 여기에 맞춰 레이어가 생기고 좌표 기준점이 달라진다. position 속성의 속성 값에는 static, fixed, relative, absolute가 있다. 각 속성 값에는 다음 세 가지 조건으로 확인할 수 있다.
- 부모 자식 간에 발생하는 마진 병합 현상 유무
- top, right, bottom, left 속성 적용 유무
- 부모가 높이를 갖고 있지 않을 때 자식의 높이가 부모에 높이에 영향을 주는지 유무
2차원 특징을 갖는 position 속성값은 부모 자식 간에 발생하는 마진 병합 현상이 일어나고, top, right, bottom, left 속성을 사용할 수 없으며, 자식의 높이가 부모의 높이에 영향을 미친다. 반면 3차원 특징을 갖는 속성 값은 부모 자식 간에 발생하는 마진 병합 현상이 일어나지 않으며, top, right, bottom, left 속성을 사용할 수 있으며, 자식의 높이가 부모에 높이에 영항을 주지 않는다.
2-1. 2차원 세계, static 속성값
# static 속성 값 특징
- 부모 자식 간에 발생하는 마진 병합 현상이 일어난다
- top, right, bottom, left 속성이 적용되지 않는다.
- 부모가 높이를 갖고 있지 않을 경우에 자식의 높이가 부모에게 영향을 준다.
이 부분은 곰곰이 생각해보시면 쉽습니다. 2차원이라고 갑자기 새로운 용어가 나온 거 같지만 이전에 보여준 마진 병합 협상의 모든 예시는 2차원이라 생각하시면 앗!! 그렇구나!! 하게 될 것입니다.
2-2. 3차원 세계, fixed 속성 값
# fixed 속성 값 특징
- 부모 자식 간에 발생하는 마진 병합 현상이 일어나지 않는다.
- top, right, bottom, left 속성이 적용된다.
- 부모가 높이를 가지고 있지 않더라도 자식의 높이가 부모에게 영향을 주지 않는다.
그림은 여러 개의 네모 박스들을 여 러크기로 만들어 논 후, 파란색의 사각형만 fixed 설정을 하였습니다.
그림을 보면 노란색 사각형 위로 fixed 설정된 파랑색 박스가 위로 올라간 것을 볼 수 있습니다. 그림으로 보면 같은 면에 있는 것처럼 보이지만, 실제로는 3차원으로 파란색이 좀 더 위에 있기 때문에 겹친 것처럼 보이는 거죠. 어렸을 적 위에서 본 모양을 문제로 푼 적 있다면, 쉽게 이해하실 수 있을 것입니다.
그리고 실행 결과 웹 페이 제어서 마우스 휠을 돌려며 보면 휠에 따라 이동하는 것을 알 수 있습니다. fixed의 고유 특성이고 이건 인터넷 웹 뉴스를 보면 웹 광고가 휠에따라 이동한 것을 보신 적이 있을 겁니다. 네 바로 그렇습니다 그 광고는 바로 fixed 속성을 값이 적용된 광고인 것 이죠.
2-3. 2차원과 3차원의 세계, relative 속성 값
- 부모 자식 간에 발생하는 마진 병합 현상이 일어난다.
- top, right, left, bottom 속성이 적용된다.
- 부모가 높이를 갖고 있지 않으면 자식의 높이가 부모에게 영향을 준다.
앞서 본 두 속성의 짬뽕인 셈입니다. 예시를 들여 설명하면 좋겠지만, 실제로 해보시면 더 좋을 것입니다.
이제 전체적으로 요약하면 아래와 같다.
position 주요 속성값 | 차원 | 부모 자식 간에 발생하는 마진 병합 현상 | top, right, left, bottom 적용 | 자식의 높이 값이 부모에게 미치는 영향 |
static | 2차원 | o | x | o |
fixed | 3차원 | x | o | x |
relative | 2차원, 3차원 | o | o | o |
absolute | 3차원 | x | o | x |
후기
지금까지 주요 position 속성 값의 주요 특징을 알아봤다. 2차원 3차원에 따라 레이아웃에 영향을 준다.
또한 2차원을 3차원으로 3차원을 2차원으로 변경이 가능하며, 3차원 사용 시 top을 사용할 때는 좌표 기준점 등이 레이아웃 작업에 중요한 요소이므로 꼭 숙지가 필요하다.
이제 레이아웃에 영향을 미치는 요소중 z 축에 대해 다음 글로 알아보겠습니다.
'HTML + CSS' 카테고리의 다른 글
HTML + CSS 주요 개념 정리(8) - 마무리 (0) | 2021.01.22 |
---|---|
HTML + CSS 주요 개념 정리(7) - 레이아웃에 영향을 미치는 요소 Ⅲ (0) | 2021.01.22 |
HTML + CSS 주요 개념 정리(5) - 레이아웃에 영향을 미치는 요소 Ⅰ (0) | 2021.01.20 |
HTML + CSS 주요개념 정리(4) - CSS 사용하기 (0) | 2021.01.18 |
HTML + CSS 주요개념 정리(3) - CSS 이용 (0) | 2021.01.13 |