[css] 요소 배치

Maria Kim·2021년 11월 2일
0

[위치 조정하기]

정교하게 요소를 배치하기 위해서는 position 값을 정하고 top, right, bottom, left 를 주어 이동시킬 수 있다.

position

  • 초기값 : static
  • postion을 지정해 주면 zindex 값을 지정해서 순서를 변경할 수 있음
  • top, right, bottom, left 를 지정해서 해당 요소를 이동시킴

relative

  • top, right, bottom, left 값을 주지 않으면 초깃값인 static과 레이아웃에서 요소가 차지하는 공간은 같음
  • 자식 요소에서 positon: absolute로 현재 요소를 기준으로 위치시키고 싶을 때 사용

absolute

  • 요소를 문서의 흐름에서 제거 -> 페이지 레이아웃에 공간을 배정하지 않음
    (다른 요소 위에 배치될 수 있음)
  • 가장 가까운 position 이 지정된 요소를 기준으로 상대적으로 배치
  • 조상 중에 position이 지정되어 있지 않다면 html 문서 기준으로 배치

fixed

  • 요소를 문서의 흐름에서 제거 -> 페이지 레이아웃에 공간을 배정하지 않음
    (다른 요소 위에 배치될 수 있음)
  • 뷰포트를 기준으로 배치

[정렬방법 정하기]

display

  • 기본적이 정렬 -> inline, inline-block, block
  • 최근에 나온 더 편하게, 세부적으로 정렬 -> grid, flex

inline

  • 컨텐츠 영역만큼 영역 차지
  • 라인 새로 추가 x
  • 높이는 폰트의 크기만큼
  • 높이 지정 안됨 -> margin & padding 위아래 지정 안됨
  • height와 width 값 지정 x

inline-block

  • 줄바꿈 x
  • height와 width 값 지정 가능
  • height와 width 값 지정 안 하면 -> 컨텐츠 영역만큼 잡힘

block

  • width : 100%
  • 라인 새로 추가
  • height와 width 값 지정 가능
  • margin과 padding을 지정 가능

grid & flex

나의 gird & flex 활용법

  • 기본적으로 더 세부적인 정렬이 필요할 때 -> flex를 사용
  • 큰 틀에서 항목별로 구간을 나누고 더 디테인 한 작업 -> grid
    ( 위와 같이 사용하는 이유
    -- flex는 wrap을 설정하면 뷰포트 크기에 따라 자동으로 줄바꿈이 되지만
    gird 사용시 media 에 따라 지정해줘야함.
    -- grid는 사용하기 위해서 더 작성해야 하는 코드가 많아서 인듯하다.
    -- 공간 비율을 편하게 하기 위해 fr 단위를 쓰기 위해 grid 를 사용하고 했다.
    But, 이 이유 때문이라면 flex의 flex 속성을 이제 사용해 보도록 하자.
display: flex 자식 요소에서의 flex 속성

속성 : 자신의 컨테이너가 차지하는 공간에 맞추기 위해 크기를 키우거나 줄이는 방법을 설정
값: auto, initial, none, 단위 없는 양의 수

  • 주의
    -- flex-basis 생략시 값 0으로 설정

단위없는 값 1개 -> flex-grow
단위있는 값 or 퍼센트 1개 -> flex-basis
단위없는 값 1개 , 단위있는 값 or 퍼센트 1개 -> flex-grow | flex-basis
단위없는 값 2개 -> flex-grow | flex-shrink
단위 3개 -> flex-grow | flex-shrink | flex-basis

flex: auto; // 1 1 auto
flex: initial; //  0 1 auto
flex: none; // 0 0 auto
flex: 2;
flex: 10em;
flex: 30%;
flex: 1 30px;
flex: 2 2 10%;

mozilla CSS/flex

profile
Frontend Developer, who has business in mind.

0개의 댓글