[국비지원교육] [패스트캠퍼스] React 강의 2주차 (1) - CSS 기본문법
- CSS 기본 문법, 주석
- 선언방식
- 선택자(기본, 복합, 가상클래스)
1. CSS 기본 문법, 주석
- 기본문법 : 스타일(CSS)을 적용할 대상 (Selector)
- 주석 : 브라우저는 이 범위를 해석하지 않음
선택자 {속성 : 값; }
ex)
span {
font-size: 50px;
color: blue;
text-decoration: underline;
}
(주석시작) /*설명 작성*/ (주석 끝)
span {
font-size: 50px;
color: blue;
text-decoration: underline;
}
2. 선언방식
- 내장 방식 : <style></style>의 내용(Contents)으로 스타일을 작성하는 방식
- 링크 방식 : <link />로 외부 CSS 문서를 가져와서 연결하는 방식, 병렬연결
- 인라인 방식 : 요소의 style 속성에 직접 스타일을 작성하는 방식 (선택자 없음) / 권장하지 않음
- @import 방식 : CSS @import 규칙으로 CSS문서 안에서 또 다른 CSS문서를 가져와 연결하는 방식, 직렬연결
<!-- 내장 방식 -->
<style>
div {
color: red;
margin: 20px;
}
</style>
<!-- 링크 방식 -->
<link rel="stylesheet" href="./css/main.css">
(main.css)
div {
color: red;
margin: 20px;
}
<!-- 인라인 방식 -->
<div style="color: red; margin: 20px;"></div>
<!-- @import 방식 -->
(main.css)
@import url("./box.css");
(box.css)
.box {
background-color: red;
padding: 20px;
}
3. 선택자(기본, 복합, 가상클래스, 가상 요소, 속성)
기본 선택자 | |
* | 전체선택자 (모든 요소를 선택) |
태그 선택자 (태그명) | 태그 이름이 ABC인 요소 선택. |
클래스 선택자 (.클래스명) | HTML class 속성의 값이 ABC인 요소 선택. |
아이디 선택자 (#아이디명) | HTML id 속성의 값이 ABC인 요소 선택. |
/* 기본 선택자 */
(*) : 전체선택자(모든 요소를 선택)
* {
color: red;
}
/* 태그 선택자 */
div {
color: red;
}
(index.html)
<div>오렌지</div>
<div>오렌지</div>
<div>오렌지</div>
/* 클래스 선택자 */
.orange {
color: red;
}
(index.html)
<div class="orange">오렌지</div>
<div class="orange">오렌지</div>
<div>오렌지</div>
/* 전체 선택자 */
#orange {
color: orange;
}
(index.html)
<div class="orange">오렌지</div>
<div id="orange">오렌지</div>
<div>오렌지</div>
복합 선택자 | |
일치 선택자 | 선택자 ABC와 XYZ를 동시에 만족하는 요소 선택 |
자식 선택자 | 선택자 ABC의 자식 요소 XYZ선택 |
하위(후손) 선택자 | 선택자 ABC의 하위 요소 XYZ 선택. '띄어쓰기'가 선택자의 기호 |
인접 형제 선택자 | 선택자 ABC의 다음 형제 요소 XYZ 하나를 선택 |
일반 형제 선택자 | 선택자 ABC의 다음 형제 요소 XYZ 모두를 선택 |
(index.html)
<div>
<ul>
<li><span>오렌지</span></li>
<li>오렌지</li>
</ul>
</div>
<span class="orange">오렌지</span>
(main.css)
/* 일치 선택자 */
span.orange { //span태그 중에서 class orange
color: red;
}
/* 자식 선택자 */
ul > .orange { //ul태그 자식 중 class orange
color: red;
}
/* 하위(후손) 선택자 */
div .orange { //div태그 안에 있는 class orange
color: red;
}
/* 인접 형제 선택자 */
.orange + li { //orange 클래스의 다음에 있는 li 하나
color: red;
}
/* 일반 형제 선택자 */
.orange ~ li { //orange 클래스의 다음에 있는 li 모두
color: red;
}
가상 클래스 선택자 | |
hover | 선택자 ABC요소에 마우스 커서가 올라가 있는 동안 선택 |
active | 선택자 ABC요소에 마우스 커서가 클릭하는 동안 선택 |
focus | 선택자 ABC 요소가 포커스되면 선택 |
first-child | 선택자 ABC가 형제 요소 중 첫째 선택 |
last-child | 선택자 ABC가 형제 요소 중 막내 선택 |
nth-child(number) | 선택자 ABC가 형제 요소 중 (number)째 선택 |
not | 부정 선택자. 선택자 XYZ가 아닌 ABC요소 선택 |
(index.html)
<div>
<ul>
<li><span>오렌지</span></li>
<li>오렌지</li>
<li>딸기</li>
</ul>
</div>
<span class="orange">오렌지</span>
//focus : 실제로 포커스가 가능한 요소에만 가능(input, select, textarea)하지만,
//tabindex="-1" 속성을 추가할경우 focus를 적용할 수 있다.
<input type="text" />
<div class="box" tabindex="-1"></div>
(main.css)
/* hover */
span:hover{ //span태그에 마우스를 올려두는 동안
color: red;
}
/* active */
.orange:active { //class명이 orange에 마우스로 클릭하는 동안
color:red;
}
/* focus */
input:focus { //input 태그에 포커스가 되어있는 동안
background-color: red;
}
/* first-child */
ul li:first-child { //li의 첫째 선택
color: red;
}
/* last-child */
ul li:last-child { //li의 막내 선택
color: red;
}
/* nth-child */
ul li:nth-child(2) { //li의 2번째 선택
color: red;
}
:nth-child(2n) // 2 x n 번째 = 짝수
:nth-child(2n + 1) // 2 x n + 1 = 홀수
:nth-child(n+2) // n은 2부터 시작
/* not */
div *:not(span) { //div하위에 있는 span을 제외
color: red;
}
'스터디 > React' 카테고리의 다른 글
[React] 강의 2주차 (3) - CSS 속성 (width, height, margin, padding) (0) | 2022.10.25 |
---|---|
[React] 강의 2주차 (2) - CSS 기본문법 (선택자, 스타일 상속, 우선순위) (0) | 2022.10.25 |
[React] 강의 1주차 (5) - HTML [3] 핵심 요소 및 주석, 전역 속성 (0) | 2022.10.18 |
[React] 강의 1주차 (4) - HTML [2] 기본지식 (emmet,태그, 스타일 초기화, codepen) (2) | 2022.10.18 |
[React] 강의 1주차 (3) - HTML [1] 구조 (1) | 2022.10.18 |