CSS 레이아웃

jhree333·2023년 11월 5일

CSS

목록 보기
4/7

display

  • 요소의 렌더링 박스 유형을 결정하는 속성
display: value;

display와 box model의 관계

displaywidthheightmarginpaddingborder
block
inlineXX좌/우
inline-block

실제로 inline 요소의 padding/border는 좌/우뿐만 아니라 상/하에도 적용이 됩니다.

parent 는 <div>, child 는 <span>
하지만 상/하 padding/border는 line-box에는 영향을 주지 못하기 때문에 위와 같이 부모 요소의 박스에 반영 X

parent 는 <div>, child 는 <span>
또한 인접한 다른 line-box 에도 반영 X. 즉 콘텐츠가 겹칠 수 있기 때문에 실무에서는 잘 사용 X

visibility

  • 요소의 화면 표시 여부를 지정하는 속성
visibility: visible | hidden | collapse | initial | inherit;

visibility: visible;  /* 보임 기본값 */
visibility: hidden;  /* 숨김, 자신의 박스 영역은 유지(margin까지 모두 포함) */
visibility: collapse; /* 셀간의 경계를 무시하고 숨김(박스영역 없음, 테이블의 행과 열 요소에만 지정 가능, 그 외 요소 지정은 hidden과 같음) */

display: none과 차이점

display: none: 요소가 렌더링 되지 않음(DOM에 존재하지 않음)
visibility: hidden: 요소가 보이지는 않지만 렌더링 되며 화면에 공간을 가지고 있음(DOM에 존재함)

float

  • 요소를 float(요소를 보통의 흐름에서 벗어나게 함) 시킬지 지정하는 속성
float: none | left | right | initial | inherit;
  • 요소를 보통의 흐름에서 벗어나 띄어지게 함
  • 주변 텍스트나 인라인 요소가 주위를 감싸는 특징이 있음
  • 대부분 요소의 display 값을 block으로 변경함 (display 값 변경 예외: inline-table, flex 등)

clear

  • 요소를 floating 된 요소의 영향에서 벗어나게 하는 속성
clear: none | left | right | both | initial | inherit;
  • block-level 요소만 적용 가능

position

  • 요소의 위치를 정하는 방법을 지정하는 속성
position: static | absolute | fixed | relative | sticky | initial | inherit;
< 속성 값 >
static
Normal-flow 에 따라 배치되며 offset 값이 적용되지 않음 (기본값)

absolute
부모 요소의 위치를 기준으로 offset 에 따라 배치
부모가 position 값(static 제외)을 가지면 offset 값의 시작점이 됨
* 부모의 position 값이 static 인 경우 조상의 position 값이 static이
    아닐 때까지 거슬러 올라가 기준으로 삼음
Normal-flow의 흐름에서 벗어남

fixed
뷰포트(브라우저의 창)를 기준으로 offset 에 따라 배치
즉, 화면 스크롤에 관계없이 항상 화면의 정해진 위치에 정보가 나타남
부모의 위치에 영향 X

relative
자신이 원래 있어야 할 위치를 기준으로 offset 에 따라 배치됨
부모의 position 속성에 영향 X
Normal -flow의 흐름에 따름
주변 요소에 영향을 주지 않으면서 offset 값으로 이동

** Normal-flow 란? 일반적인 상황에서 각의 요소들의 성질에 따라 배치 되는 순서(흐름). 예를 들면, block 레벨 요소들은 상하로 배치되고, inline 레벨 요소들은 좌우로 배치되는 것

offset(top/left/bottom/right)
top: 50%;
left: 10px;
bottom: -10px;
right: auto;

offset의 %단위 사용 이전에 padding과 margin에서 % 값을 적용할 때, 상하좌우 방향에 관계없이  가로 사이즈를 기준으로 %값을 계산된다고 배웠음. 
그러나 offset은 top, bottom (상하) 는 기준이 되는 요소의 height 값 left, right (좌우) 는 width값에 대하여 계산되어집니다.

z-index

  • 요소가 겹치는 순서(쌓임 순서 또는 stack order)를 지정하는 속성
z-index: auto | number | initial | inherit;

z-index: 1;
position 값이 static이 아닌 경우 지정가능
순서 값이 없을 경우 생성순서(코드상 순서)에 따라 쌓임
부모가 z-index 값이 있을 경우 부모 안에서만 의미있음
큰 값이 가장 위쪽(음수 사용 가능)

HTML/CSS 유효성 검사

  • HTML/CSS 코드를 작성하고 나면 항상 유효성 테스트를 실시해야 함
  • 유효성 검사를 통해 마크업 문법상 에러가 없는지 표준에 맞게 작성되었는지 알 수 있고, 사용성과 접근성, SEO 최적화 개선에도 도움이 됨
profile
안녕하세요.

0개의 댓글