[WEB] 2. CSS

CSS 원칙

1. 모든 요소는 박스모델이고 좌측 상단에 배치된다.

2. display에 따라 크기와 배치가 달라진다.

3. position으로 위치의 기준을 변경한다. relative : 본인의 원래 위치 absolute: 특정 부모의 위치, fixed : 화면의 위치

 

box-sizing

기본적으로 모든 요소의 box sizing은 content-box이다. padding을 제외한 순수 contents 영역만을 box로 지정한다. 다만, 우리가 일반적으로 영역을 볼 때는 border 너비를 100px 보는 것을 원하고, 그러한 경우에는 box-sizing을 border-box로 결정한다.

 

대표적으로 활용되는 display

display : block

  • 줄 바꿈이 일어나는 요소(다른 요소들을 밀어낸다)
  • 화면 크기 전체의 가로 폭을 차지한다
  • 블록 레벨 요소 안에 인라인 레벨 요소가 들어갈 수 있다.
  • 대표적인 블록 레벨 요소 : div, ul,ol,lu,p,hr,form
  • block의 기본 너비는 가질 수 있는 너비의 100 %

display : inline

  • 줄 바꿈이 일어나지 않는 행의 요소
  • content를 마크업 하고 있는 만큼만 가로 폭을 차지한다.
  • width, height, margin-top, margin-bottom을 지정할 수 없다. (딱 컨텐츠 만큼만 차지한다.)
  • 상하 여백은 line-height로 지정한다.
  • 대표적인 인라인 레벨 요소 : span, a, img, input, label, em, i, strong
  • inline의 기본 너비는 컨텐츠 영역만큼이다.

속성에 따른 수평 정렬

block을 정렬할 때는 margin을 정렬하여 컨텐츠를 움직여서 정렬한 것처럼 보이도록 한다.

display : inline-block

  • block과 inline 레벨 요소를 모두 가진다. inline처럼 한 줄에 표시가 가능하고 block처럼 margin, width, height 속성을 모두 지정할 수 있다

display : none

  • 해당 요소를 화면에 표시하지 않고, 공간조차 부여되지 않는다.
  • 이와 비슷한 visibility:hidden은 해당 요소가 공간은 차지하나 화면에 표시만 하지 않는다.

CSS position

문서 상에서 요소의 위치를 지정한다.

static : 모든 태그의 기본 값(기준 위치)으로, 일반적인 요소의 배치 순서에 따른다(기본적으로 좌측 상단에 배치된다). 부모 요소 내에서 배치될 때에는 부모 요소의 위치를 기준으로 배치된다.

relative: 상대 위치로, 자기 자신의 static 위치를 기준으로 이동한다. 레이아웃에서 요소가 차지하는 공간은 static일 때와 같다.

absolute: 절대 위치로, 요소를 일반적인 문서 흐름에서 제거 후 레이아웃에 공간을 차지하지 않는다.(normal flow에서 벗어난다.) static이 아닌 가장 가까이 있는 부모/조상 요소를 기준으로 이동한다. 부모와 조상이 없는 경우 body를 기준으로 이동한다.

fixed : 고정 위치로, 요소를 일반적인 문서 흐름에서 제거하고 레이아웃에 공간을 차지하지 않도록 한다. 부모 요소와 관계없이 viewport를 기준으로 이동하며, 스크롤 시에도 항상 같은 곳에 위치한다. (포스트잇을 붙여놓은 것과 비슷하다.)

'SSAFY > TIL' 카테고리의 다른 글

[Javascript] 1  (0) 2023.05.01
[WEB] 1. HTML  (0) 2023.03.08
[Python] [알고리즘] 6. 큐  (0) 2023.02.20
[Python] [알고리즘] 5. 스택(3)  (0) 2023.02.16
[Python] [알고리즘] 4. 스택(2)  (0) 2023.02.15
TAGS.

Comments