시행착오에 의존하고 요행을 바라기 때문!
문제는 해결했지만 원인은 모름
=> 출력 결과를 분석하고 실수를 복기
"값 정의 구문"
CSS 속성의 유효한 값과 순서
- keywords
예약된 단어
따옴표 없이 사용, 대소문자 구별 안 함
ex) initial, inherit, unset, block, inline, auto, disc, collapse, separate,,,- <*> 기본 자료형
따옴표가 없으면 기본 자료형
따옴표가 있으면 그 이름의 속성 값을 참조
ex)<string>, <url>, <integer>, <number>, <length>, <percentage>, <position>, <color>, <angle>, <ratio>
- Combinators(결합기호)
공백(and): 둘 이상의 값이 필수, 순서 유지 필수
&&(and): 둘 이상의 값이 필수, 순서 변경 가능
||(or): 두 값 중 하나 이상 필수, 순서 변경 가능
|(only): 두 값 중 하나만
[]
(group): 그룹
=> 1~4는 우선 순위, 우선 순위가 높은 기호를 먼저 해석해야 함
대부분의 초기화 스타일은
1. 쓸모없다.
2. 덮어쓴다.
body { margin: 0; overflow-wrap: break-word; }
:lang(ko) {
word-break: keep-all;
}
#### img
>```
img {
max-width: 100%;
height: auto;
}
=> css 리셋에서 기본 html 요소의 스타일을 개발자가 임의로 많이 재정의 하는 것은 조심스러운 것
=> 가급적이면 위처럼 코드를 작성해서 class라는 속성이 들어 있는 요소만 찾아서 스타일을 리셋시킴
=> 그러나, 위처럼 사용하면 사용하지 않는, 필요없는 스타일을 과도하게 적용하게 됨
=> where 가상 클래스 선택자 사용(괄호 안에 선택자를 넣어서 사용 가능)
=> 비슷한 기능을 하는 is가 있음
=> 그러나, 이것은 삼성 인터넷 브라우저에서는 지원하지 않음
"컴퓨터 과학에는 두 가지 난제가 있다. 캐시를 무효로 만드는 것과 작명."
=> 선텍자 점수를 낮게 유지하는 것이 좋다(020 수준)
- Block
: 재사용 가능한 독립적인 블록- Element
: 블록을 구성하는 종속적인 하위 요소- Modifier
: 블록 또는 요소의 변형(모양, 상태, 동작)
.block {...}
.block__element {...}
.block__element {...}
.block--modifier {...}
키워드 연결 방법
- PascalCase
- camelCase
- kebab-case
- snake_case
=> 접두어 사용도 추천!