CSS - LayOut(레이아웃)

김효식 (HS KIM)·2021년 10월 3일
0
post-thumbnail

display

inline, block, inline-block

  • inline은 요소의 내부 콘텐츠 크기만큼만 영역을 차지해서, widthheight의 값을 임의로 지정할 수 없습니다. 요소가 여러개면 가로로 배치 됩니다.
  • block은 요소의 내부 콘텐츠와 상관없이 가로는 세로로 배치되어 가로 한 줄을 모두 사용합니다.
  • inline-block은 가로로 배치되고 콘텐츠 영역만큼만 차지하지만, widthheight값을 지정할 수 있습니다.

display: none vs visibility: hidden

  • display: none(위)은 브라우저 화면에서 요소 자체가 사라지고, visibility: hidden(아래)은 브라우저 화면에 보이지는 않지만 원래 요소가 차지하는 공간만큼 영역을 차지합니다.

position

static

  • 기본값으로 normal flow에 따라 인라인 요소는 인라인의 영향을, 블록 요소는 블록의 영향을 받습니다.

relative

  • normal flow에 따르지만, top, bottom, left, right속성을 이용하여 원래 본인의 요소를 기준으로 해당 요소를 이동할 수 있습니다. topbottom처럼 상반되는 요소가 같이 사용된다면, topleft가 우선시됩니다.

absolute

  • 요소를 normal flow에서 제거하고, 해당 요소는 별도의 공간을 차지않고 다른 요소의 위에 겹쳐집니다. 부모 요소를 타고 올라가면서 position이 static이 아닌 요소 중 가장 가까운 요소를 기준으로 하여, top, bottom, left ,top을 이용하여 상대적으로 배치할 수 있습니다. 조상 요소 중에 static이 아닌 요소가 없다면, 최상위 요소(body)를 기준으로 합니다.
  • 일반적으로 absolute를 사용하는 경우에는 부모 요소에 relative속성을 주고 사용합니다.

fixed

  • 요소를 normal flow에서 제거하고, absolute와 달리 뷰포트를 기준으로 하여 위치를 지정합니다. 뷰포트를 기준으로 하기 때문에, 뷰포트가 변하지 않는다면 위치가 고정됩니다.

sticky

  • 요소를 normal flow에 맞게 배치하고, 스크롤이 되는 대상의 자식 요소에 값을 지정했을 때만 동작합니다. top, bottom, left, right의 값에 따라 해당 위치에 다다랐을 때, fixed처럼 요소가 고정됩니다.

overflow

  • visible은 기본 값으로 콘텐츠가 요소의 영역을 벗어나더라도, 요소의 영역이 아닌 부분까지 콘텐츠가 보이게 됩니다. 해당 요소의 영역이 아닌 부분은 브라우저 화면에서 공간을 차지하지 않으므로, 다른 요소와 겹치게 됩니다.
  • hidden은 콘텐츠가 해당 요소의 영역을 벗어난 부분은 잘라서 보이지 않게 합니다.
  • scroll은 해당 요소에 스크롤을 생성해서, 해당 요소의 영역은 유지한 채로 모든 콘텐츠를 확인할 수 있습니다.
  • auto는 콘텐츠의 양에 따라, 콘텐츠가 요소의 영역 이상을 차지한다면 자동으로 스크롤을 생성합니다.

z-index

  • z축x축(가로), y축(세로)이 아닌 입체적인 개념입니다.
  • 기본값은 auto이고, 정수를 값으로 사용할 수 있습니다. 값이 높을수록 상위에 존재하게 됩니다.
  • z-index속성이 아니더라도, static이 아닌 다른 display속성을 사용하면 z-index가 우위에 있는 효과를 나타낼 수 있습니다.
profile
자기개발 :)

0개의 댓글