css-Rendering


영역 나누기(GeoMetry Calculate)

  • 현대의 렌더링은 geometry를 계산하고 Fragement를 한다
  • Geometry를 계산하는 과정을 reflow라 한다
  • width ,height, position

    칠하기(Fragment Fill)

  • fragement는 픽셀
  • Fragment를 칠하는 과정을 repaint라 한다
  • background

현대의 시스템은 영역을 나누고 색을 칠하는 것이 기본이다
부하는 fragment fill에서 많이 받는 것 같지만
reflow의 변화가 일어나면 전부 다시그려야해서 부하를 더 많이 받는다.
geomery쪽 표현을 이해하는 것이 더 어렵다
색칠하는 쪽은 위에 비해 국소적인 표현이기 때문에 더 쉽다

CSS specifications

본질은 약속이다

~~ 하면 ~~ 해줘.
과거에는 W3c 현재는 HTML재단에서

  • CSS LEVEL1
    • A4용지 한장 짜리 분량
  • CSS LEVEL2 + MODULE

    • 통합레벨, 표현과 내용을 분리하자, CSS의 활성화
    • CSS 모듈을 쪼개서 관리할래
  • CSS LEVEL 2.1

    • 통합레벨이 있다.
    • 모듈들의 통합이라 거의레벨 3이라고 볼수 있다
  • Module level
    • 레벨은 사라졌다
    • 모듈이 계속 제안되고 있다.
    • 새 모듈 태반이 초안이다
    • CSS 3 는 존재하지않는다. 2.1에서 튀어나온 것이다.
      즉 모듈들이 개별적으로 발전하는 것이다.(너무 많은 모듈들이 중구난방으로 발전)

NORMAL FLOW

  • 공부는 정확한 용어를 정확하게 설명
  • 왜그런지 말을 못하면 구현도 못한다(스펙 문서가 중요하다)

-NORMAL FLOW가 핵심이다. 이걸 이해 못하면 HTML을 모른다.

-POSITION

  • static
  • relative
  • 위의 두가지만 노말플로우의 영향을 받음
  • Block Formatiing Context, inline Formatting Context, relative Position
    • BFC, IFC, RP
    • 노말 플로우의 핵심
    • BFC가 오프셋의 값을 계산해준다.
    • 인라인 요소를 만나면 인라인 블락을 만든다
    • 새로운 BFC를만드는 알고리즘 또한있다
    • 많은 BFC가 모여서 그려진다.
    • word-breaking을 걸어두면 글자하나하나를 span처럼 계산하는 구나
    • ifc의 알고리즘을 변경해준다.
    • BFC, IFC가 중요하지 돔이 중욯지 않다
    • RP
      • static으로 그리고나서 스태틱으로 그려진 위치에서 상대적으로 얼마 줄거냐 라는 것을 나타낸다
      • 노말 플로를 계산하고 relative를 얼마를 주겠다라는 뜻이다.
    • Float
      • left, right, none, inherit
      • css reset 속성은 속성별로 따로 외워야한다(다양한 모듈 때문에)
      • NEW BFC -> Float over Normal flow -> Text, Inline Guard(ifc 요소의 가이드 ifc요소들이 float 요소의 자리에 못들어간다.) -> Linebox(float은 line box의 개념으로 그려지게된다, ifc,bfc nomral flow로 그려지지 않는다.)
      • 인라인 가드가 플로트 가드에 걸리면 부모의 크기를 확장시키지 않는다. 블락가드에걸리면 부모의 크기를 확장시킨다
      • 플롯 가드에 걸리면 뒤를 안보고 내려버린다.
      • 레프트 플롯가드보다 왼쪽 라이트 플롯가드보다 오른쪽에 있어야 한다.
    • Overflow
      • VISIBLE, HIDDEN, SCROLL, INHERIT, AUTO
      • VISIBLE이 아닌 경우에 노말 플로우에 영향을 끼친다.
      • 다른 걸 쓰면 NEW BFC를 만든다.
      • 기본 값은 VISIBLE 자동으로 공간이 확장된다.
        • BFC, IFC와 동일한 알고리즘을 가지는 것이라고 볼 수 있다.
    • OverFLOW -X, -Y
      • VISIBLE, HIDDEN, SCROLL, CLIP, AUTO
      • 판단하는 모듈이 다른 css 모듈에 의존해야 한다
    • TEXT-OVERFLOW
      • 2.1 ui module 표준안
      • CLIP, ELLIPSIS(…해주게하는거)
- absolute
- fixed
- inherit