element에 스타일이 적용되는 규칙 => selector(선택자)

Element selector

ID selector
: 고유하다는 성질을 갖고있어 하나의 element에 사용함.


Class selector
: 여러 개의 element를 분류하기 위해 사용함.
: class selector와 element selector를 함께 사용한 경우

ex) class selector와 element selector를 함께 사용한 예시

Universal selector
: 전체 element에 적용하기 위한 selector

Grouping selector
: 여러 가지 선택자를 하나로 묶어 사용함.
: 똑같은 스타일들이 각기 다른 selector를 사용하면 유지보수도 힘들고 굉장히 비효율적
: 코드 간결해지고, 유지보수도 쉬워짐
Element의 상태와 관련된 selector


Layout
: 화면에 Element들을 어떻게 배치할 것인가?
display
: 어떻게 표시할지 정하는 속성


visibility
: 가시성, 눈에 잘 보이는 속성


position
: element를 어디에 위치시킬건지 정하는 속성


가로, 세로 길이와 관련된 속성들
: 값으로 실제 픽셀 값을 쓰거나, 상대값인 %를 사용함.
: 기존 css의 레이아웃 사용의 불편한 부분을 개선하기 위해 나옴.










font-family
: 앞서 지정한 글자체가 없다면 다음 글자체가 쓰임


font-size
:px(pixel), em, rem, vw(viewport width)


font-weight

font-style


background-color
: 배경색을 투명하게 만들고 싶다면 transparent를 쓰면 됨


border
: 테두리를 위한 속성


: css 문법을 그대로 사용하면서 결과물을 스타일링된 컴포넌트 형태로 만들어주는 오픈 소스 라이브러리이다. 컴포넌트의 개념을 사용하기 때문에 리액트 개발에 잘 맞음



literal : 소스코드의 고정된 값 (상수와는 다른 개념)
: 정수 변수 number에 20이 들어감
다양한 종류의 literal
: var나 let을 사용하지 않고 상수를 의미하는 const로 선언했는데 이러면 해당 변수들이 모두 상수가 된다 (상수는 변하지 않는 수를 의미)
template literal
: 템플릿을 리터럴로 사용하는 자바스크립트의 문법
우리가 흔히 역따옴표(빽피스)를 사용하여 문자열을 작성하고 그 안에 대체 가능한 expression을 넣는다.
: Untagged literal과 Tagged literal로 구분됨.
(아래 코드는 Untagged template literal과 Tagged template literal를 나타낸 것)

(Tagged template literal을 사용한 예시)

styled-components 사용

styled-components의 props 사용하기

styled-components의 스타일 확장하기

Blocks.jsx


결과

개발자 도구에서 바꿈

align-item 속성을 flex-start에서 baseline으로 바꿈

flex-end로 바꾼 결과

stretch로 바꾼 결과


