CSS
20210524 CSS01 : css syntax, html에 연결방식, 선택자(기본, 복합), 가상 클래스 선택자
CSS01
CSS syntax
선택자{속성: 값; 속성: 값}
- 선택자 : 스타일을 적용할 대상
- 속성 : 스타일의 종료 (예.color)
- 값 : 스타일의 값 (예.blue)
- 속성과 값은 한줄에 하나의 속성과 값만 들어가게 하고 indent를 사용해서 쓴다.
CSS 선언 방식
- 내장 방식
- : html내부에 style 태그 내부에 내용을 작성하는 방식
- 인라인 방식 : html의 요소에서 style의 전역속성을 통해 직접 스타일을 작성하는 방식
- 최우선 순위라서 나중에 덮어쓰며 수정이 불가능 하다.
- 수정 시 악영향을 미침
- 링크 방식 :
<link />
로 외부 CSS 문서를 가져와서 연결하는 방식 (보통 링크방식 사용)- 병렬 방식, 한번에 가져와서 연결하고 빨리 해석되는 CSS를 먼저 연결
- import 방식 : 최초 연결은 링크방식으로 html에 연결하고 나머지 CSS 파일들은 최초 연결파일에 import를 통해서 연결하는 방식 (직렬 방식 , 많이 사용되진 않음)
- 링크방식으로 연결한 최초 CSS 파일에서
@import url("다른 CSS 경로");
를 통해 다른 CSS 파일 연결 - 앞에 작성한 최초 CSS 파일의 연결이 끝나야 import한 파일이 연결을 시작함 그래서 지연이 생김
- 의도 없이 지연이 생기면 단점이지만, 지연을 의도하면 장점이되기도 함
- 링크방식으로 연결한 최초 CSS 파일에서
CSS 선택자
기본 선택자
이름 | 기호 | 설명 |
---|---|---|
전체 선택자 | * |
모든 요소를 선택 |
태그 선택자 | .abc |
html에서 태그명이 abc인 요소 선택 |
클래스 선택자 | .abc |
html에서 class 속성의 값이 abc인 요소 선택 |
아이디 선택자 | #abc |
html에서 id 속성의 값이 abc인 요소 선택 |
복합 선택자
- 기본 선택자를 조합해서 사용하는 선택자
이름 | 기호 | 설명 |
---|---|---|
일치 선택자 | abcxyz |
선택자 abc , 선택자xyz를 붙여 사용시 둘다 동시에 만족하는 요소 선택 (태그는 기호가 안들어가고 구분하기 어렵기 때문에 태그 선택자는 항상 제일 앞에다 사용) |
자식 선택자 | abc > xyz |
선택자 abc의 자식 요소 xyz 선택 (후손X, 바로 아래 해당 모든 요소, > 사용) |
하위(후손) 선택자 | abc xyz |
선택자 abc의 후손 요소 xyz인 모든 것을 선택 (아래에 해당하는 모든 요소,띄어쓰기) |
인접 형제 선택자 | abc + xyz |
선택자 abc의 다음 형제 요소 xyz 하나를 선택 (형제 요소 : 어디에 포함되지 않고 동등한 위치인 요소) |
일반 형제 선택자 | abc ~ xyz |
선택자 abc의 다음 형제 요소 xyz 모두를 선택 (형제 요소 : 어디에 포함되지 않고 동등한 위치인 요소) |
가상 클래스 선택자
- 어떤 행동을 했을때 동작하는 선택자 또는 특정한 요소를 선택하는 선택자
동작 관련 가상 클래스 선택자
이름 | 기호 | 설명 |
---|---|---|
hover | abc:hover |
선택자 abc요소에 마우스 커서가 올라가 있는 동안 선택 |
active | abc:active |
선택자 abc요소에 마우스를 클릭하고 있는 동안(누르고 있는 상태) 선택 |
focus | input:focus |
선택자 abc 요소가 포커스 되면 선택 focus가 될수 있는 요소 : html 대화형 콘텐츠(input, a, button, label, select 등 여러 요소) 또는 tabindex 속성을 사용한 요소 |
- 대화형 콘텐츠가 아니 일반 요소들이 focus를 가능케 하려면 해당 요소에
tabindex="-1"
속성을 넣어주면 된다. - tabindex는 tab키를 사용해 focus 할수 있는 순서를 지정하는 속성임 (
-1
값이 아닌 값은 논리적 흐름을 방해 하므로 -1을 권장)
tabindex 사용 예시
<div class="tabindex_test" tabindex="-1"></div>
.tabindex_test {
width: 100px;
height: 100px;
background-color: orange;
transition: 1s;
}
.tabindex_test:focus {
width: 300px;
height: 300px;
background-color: royalblue;
}
선택 관련 가상 클래스 선택자
이름 | 기호 | 설명 |
---|---|---|
First child | abc:first-child |
선택자 abc가 형제 요소 중 첫째 라면 선택 (부모 요소 안에 구성하고 있는 요소들 중에서 첫째 라면 해당 선택이 됨) |
Last child | abc:last-child |
선택자 abc가 형제 요소중 막내라면 선택 (부모 요소 안에 구성하고 있는 요소들 중에서 막내 라면 해당 선택이 됨) |
Nth child | abc:nth-child(n) |
선택자 abc가 형제요소중 n째 라면 선택 ( *:nth-child(2n) 괄호에 2n, 3n 등 배수로 넣으면 해당 배수의 요소만 선택가능하다.) |
부정 선택자(not) | abc:not(xyz) |
선택자 xyz가 아닌 abc요소 선택 ( .fruits *:not(span) 처럼 어느 범위 내에서 span이 아닌 요소를 선택, 일단 범위를 제한해서 여러개의 요소들 중에 선택할 수 있는 상황을 만들어야 함) |
- child 의 기준은 항상 부모 요소가 가지고 있는 요소들 중에 몇번째 인지를 만족하고, abc는 따로 같이 만족하는 로직이다.
- nth-child에서 n은 0부터 시작하는 zero-based numbering이라서 홀수 표현시
(2n+1)
도 가능하다. - 또한
(n+3)
를 넣어서 3번째 부터 주르륵 선택할 수도 있음 (1,2 배제되는 것임) (-n+3)
을 넣으면 1,2,3 만 선택하게 됨
'CSS' 카테고리의 다른 글
20210525 CSS03 : CSS 속성, (width, height) 관련 속성, 표현단위, margin, padding, border 관련 속성, 색상 표현 (0) | 2021.05.25 |
---|---|
20210525 CSS02 : 가상 요소 선택자, 속성 선택자, 스타일 상속, 선택자 우선순위, CSS 속성 (0) | 2021.05.25 |
20210120_웹 프론트엔드 기초05 , HTML 및 CSS Reference, 실제 CSS 적용! (0) | 2021.01.21 |
20210119_웹 프론트엔드 기초04 , CSS 선택자 정리 (0) | 2021.01.19 |
20210118_웹 프론트엔드 기초03 , 사이트 분석하여 html 작성 (0) | 2021.01.19 |