선택자는 html element를 선택하는 거죠.
선택자를 여러 개 써서 동일한 스타일을 줄 수 있습니다.
h1, .special {
color: blue;
}
선택자의 종류
선택자를 정하는 기준
주관적이고, 의견도 여러 개일 수 있는 부분이죠.
좀 더 유지보수가 가능한 CSS를 만들기 위해서, 최대한 DOM에 의존되지 않도록 작성하는 게 좋습니다.
그 말은, 타입 셀렉터를 최대한 사용하지 않는 것이고 따라서 class만 선택자를 쓰도록 규정하는 회사도 있습니다.
또 다른 의견으로 데이터나 변하지 않을 부분으로 태그에 속성을 주어 선택자를 작성하는 방법이 있습니다.
저의 경우에는 디자인에서 기본적으로 정한 룰들은 Dataset을 이용해 만들고, 다른 디자인 요소는 id나 class를 활용합니다.
아래의 예시는 scss기반으로 작성했습니다.
[data-type='nav'] {
[data-name] { color: red; }
[data-description] { font-size: smaller; }
}
선택자 학습링크
필수 30개 선택자
nth-child master
게임으로 즐겁게 익히기
n개의 선택자가 같은 html 엘리먼트를 가리키고 충돌하는 다른 속성값을 적용했다면, 브라우저는 어떤 선택을 할까요?
그 우선순위가 매겨지는 방식을 알아봅시다.
부모 요소의 속성을 자식 요소가 기본적으로 상속을 받습니다. 아닌 것도 있으므로 case by case ㅎㅎㅎ
상속의 속성 5가지
.fix-this {
all: unset;
}
브라우저가 기본적으로 html에 만들어 둔 스타일을 해제하여 우리가 원하고 예상한 대로 css를 작성하기 위해 필요합니다.
css를 아예 안쓰거나 디자인이 필요없는 상황이라면 브라우저의 기본스타일이 유용하겠으나,
대부분 우리가 만드는 웹페이지들은 디자인이 포함되어 있기에 예상할 수 없는 기본 스타일을 없애줍니다.
css는 고정된 값과 유동적으로 계산되는 값이 있습니다. 고정값은 환경에 유동적이지 못하기 때문에 유동적인 값을 사용하면 브라우저에 렌더링될 때 계산되어 고정값을 도출합니다.
참조: css 단위 사용하기
키워드
tan, orange, magenta, dotgerblue, crimpson ...
.box {
color: crimpson;
}
단위를 붙이지 않는 값들.
.box {
opacity: 0.6;
}
rgb or rgba
미술시간에 많이 배운 삼원색 기반의 색 표현입니다.
.one {
background-color: #02798b; /* 16진법 값 */
background-color: rgb(2, 121, 139); /* 16진법의 소수적 표현 */
background-color: rgba(2, 121, 139, .3); /* 마지막 칸은 opacity */
}
hsl or hsla
오래된 브라우저에서는 지원하지 않는기능이지만 IE11에서는 지원되는 것으로 보입니다.
디자이너들이 좋아할 만한 체계입니다. 색상(0~360), 채도(0~100%), 명도(0~100%) 값으로 정해집니다.
.one {
background-color: hsla(188, 97%, 28%, .3);
}