ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CSS스터디] 1회 - CSS란?
    WEB Dev/StudyNote 2022. 8. 25. 21:52
    728x90
    CSS 흑마법사가 되어봅시다.

     

    • CSS란?
      • 캐스캐이딩 스타일 시트
      • 시트는 데이터가 나열된 공간
      • 논리적인 결과물을 만들지는 않는다.
      • 캐스캐이딩은 폭포 라는 영단어로 폭포같은 특성을 지님
      • 버전이 의미있지 않음
      • 특정한 스타일에 대한 표준이 만들어지고 표준을 관리한다.
      • 모듈 단위로 관리 된다.
    • 셀렉터 101
      • CSS는 Style의 나열
      • Style을 HTML 요소를 선택해서 적용
      • 요소 셀렉터
      • 클래스 셀렉터
      • 콤비네이터
    • 콤비네이터 101
      • 셀렉터의 조합은 이론상 무제한 
      • 특정한 요소의 자손 요소에 스타일을 주고싶은 경우
        • 자손 콤피네이터 공백
        • 조상 요소공백자식 요소 { } ex) .box .title { }
        • 자식 요소에 관계 없이, 자손 요소 중 해당 요소가 있다면 적용
      • 특정한 요소의 자식 요소에 스타일을 주고싶은 경우
        • 자식 콤비네이터 >
        • 부모 요소 > 자식 요소 { } ex) .box > .title { }
      • 특정한 요소의 형제 요소에 스타일을 주고싶은 경우
        • 첫째는 형제를 몰라요 (앞의 요소를 기준으로 형제를 따진다)
        • 형제 콤비네이터 ~
          • 특정한 요소의 형제이기만 하면 적용됨
          • 첫째 요소 ~ 막내 요소 { } 
        • 인접 형제 콤비네이터 + 
          • 특정한 요소의 형제이면서 해당 요소에 바로 붙어있는 형제 요소
          • 첫째 요소 + 둘째 요소 { }
          • ul>li 로 네비게이터 만들 때 형제 콤비네이터 많이 씀
      • 콤비네이터는 부모를 몰라요...
         
    • 가상 셀렉터, 가상 요소
      • 가상 (psuedo, 의사) : 코드 상으로 존재는 하나 개념적으로 존재하는 것들
      • 가상 셀렉터 : 특정한 요소에 마우스를 올린 상태와 같은
        • 마우스를 올린 상태 :hover (터치 스크린에서는 한 번 클릭한 상태)
        • 마우스를 클릭한(활성화 된) 상태 :active
        • 특정한 링크를 이미 사용한 상태 :visited
        • 특정한 요소에 포커스가 간 상태 :focus
      • 가상 요소 : 어떤 스타일을 넣기 위해 요소를 추가해야 하지만 의미론적으로는 필요 없는 것에 활용
        • 요소의 앞에 ::before
        • 요소의 뒤에 ::after
        • placeholder ::placeholder
        • before, after는 content 속성이 필수, display를 지정하지 않으면 text로 취급
    • 캐스케이딩
      • 스타일이 중복되거나, 여러 스타일을 한 요소에 적용했을 때 어떤 걸 적용할지 결정
      • 가장 마지막의 것
      • 캐스케이딩 계산
        • 스타일이 어느 위치에 존재하는지 - 같은 특정성이라면 뒤쪽에 존재하는 게 적용
        • 특정성이 높은 순서대로 적용
        • 특정성 계산 알고리즘
          • 셀렉터 하나당 1점 - 셀렉터의 갯수를 세서 a b c 순으로 나열
          • 셀렉터 중 ID 셀렉터의 갯수를 셉니다. a 
          • 셀렉터 중 클래스 셀렉터, 속성 셀렉터, 가상 클래스의 갯수를 셉니다. b 
          • 셀렉터 중 타입 셀렉터와 의사 요소의 갯수를 셉니다. c
          • 전역 셀렉터는 무시합니다.
          • 특정성의 숫자가 높을 수록 반영
        • !important (안 쓰는게 좋아..)
    • 상속
      • 부모에 적용된 스타일이 자손 요소까지 영향을 주는 경우
      • inherit 이라는 속성 값을 지정해서 자체적인 스타일을 명시적으로 상속
      • body의 폰트 사이즈 값이 input에 상속되게 하는 것이 좋다 
    • 스타일 적용법과 각 적용법별 장단점
      • 3가지 방법
        • 특정한 요소에 style 인라인 속성을 이용해서 style 부여
          • 장점 : 딱 해당 요소에만 스타일이 들어가고 우선 순위가 높음
          • 단점 : 확장성 저하, 그 외 모든 것
        • 해당 페이지에 <style></style> 요소를 사용해서 style 부여
          • 리액트 같은 모던 웹 애플리케이션 개발에서 많이 쓰임 (Styled Component에서 쓰임)
          • 장점 : 페이지 내에서 필요한 스타일만 지정해서 사용, CSSOM을 통해 자바스크립트로 제어하기 수월
          • 단점 : 모든 페이지 내에서 공통 스타일을 관리하기에는 어려움
        • 외부 파일로 .css 파일을 만들어 <link rel="stylesheet" href="" />로 style 부여
          • 장점 : 공통으로 쓰이는 스타일 관리가 쉬움
          • 단점 : 외부에 파일이 있어서 HTTP 요청이 한 번 발생, 이해도가 낮은 상태에서 공통 스타일을 만들면 ..
    • 다음 시간 맛보기 (레이아웃)

    728x90

    'WEB Dev > StudyNote' 카테고리의 다른 글

    [React] Udemy 강의 노트 3-1  (0) 2022.11.23
    [React] Udemy 강의 노트 2  (0) 2022.11.13
    [React] Udemy 강의 노트  (0) 2022.11.08
    [CSS스터디] 3회 - flex와 grid  (0) 2022.09.15
    [CSS스터디] 2회 - CSS 레이아웃  (0) 2022.09.01

    댓글

Designed by Tistory.