<style></style>
의 내용으로 스타일을 작성하는 방식<style>
div {
color: red;
margin: 20px;
}
</style>
<link/>
로 외부 CSS 문서를 가져와서 연결하는 방식 (병렬로 연결)<link rel="stylesheet" href="./css/main.css">
<div style="color: red; margin: 20px;"></div>
@import url("./box.css");
기본
(1) * (전체 선택자) : 모든 요소를 선택
(2) 태그이름 (태그 선택자) : 태그 이름으로 요소 선택
(3) 클래스 속성 값(클래스 선택자) : HTML class 속성의 값으로 요소 선택
(4) id 속성 값(아이디 선택자) : HTML id 속성의 값으로 요소 선택
복합
(1) 일치 선택자 : 선택자 ABC와 XYZ를 동시에 만족하는 요소 선택
<span class="orange></span>
span.orange { }
(2) 자식 선택자 : 선택자 ABC의 자식 요소 XYZ 선택
<ul>
<li>사과</li>
<li>딸기</li>
<li class="orange">오렌지</li>
</ul>
ul > .orange {}
(3) 하위(후손) 선택자 : 선택자 ABC의 하위 요소 XYZ 선택. '띄어쓰기'가 선택자의 기호
<div>
<ul>
<li>딸기</li>
<li>딸기</li>
<li class="orange">오렌지</li>
</ul>
<div>당근</div>
<p>토마토</p>
<span class="orange">오렌지</span>
</div>
<span class="orange">오렌지</span>
div .orange {}
(4) 인접 형제 선택자 : 선택자 ABC의 다음 형제 요소 XYZ 하나를 선택
<ul>
<li>딸기</li>
<li>딸기</li>
<li class="orange">오렌지</li>
<li>망고</li>
<li>사과</li>
</ul>
.orange + li {} // 망고
(5) 일반 형제 선택자 : 선택자 ABC의 다음 형제 요소 XYZ 모두를 선택
<ul>
<li>딸기</li>
<li>딸기</li>
<li class="orange">오렌지</li>
<li>망고</li>
<li>사과</li>
</ul>
.orange ~ li {} // 망고, 사과
가상 클래스
.box {
width: 100px;
height: 100px;
background-color: orange;
transition: 1s; // 자연스럽게 변화
}
.box:hover {
width: 300px;
background-color: royalblue;
}
a:active {
color: red;
}
input:focus {
background-color: orange;
}
<div class="fruits">
<span>딸기</span>
<span>딸기</span>
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
.fruits span:first-child {
color: red;
}
<div class="fruits">
<span>딸기</span>
<span>딸기</span>
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
.fruits h3:last-child {
color: red;
}
<div class="fruits">
<span>딸기</span>
<span>딸기</span>
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
.fruits *:nth-child(2n+1) { // n은 0부터
color: red;
}
<div class="fruits">
<span>딸기</span>
<span>딸기</span>
<div>오렌지</div>
<p>망고</p>
<h3>사과</h3>
</div>
.fruits *:not(span) {
color: red;
}
<div class="box"> Content! </div>
.box::before { content: "앞!"; }
<div class="box"> Content! </div>
.box::after { content: "뒤!"; }
<input type="text" value="H">
<input type="password" value="1234">
<input type="text" value="ABCD" disabled> // 세번째가 선택
[disabled] { color: red; }
<input type="text" value="H">
<input type="password" value="1234"> // 두번째가 선택
<input type="text" value="ABCD" disabled>
[type="password"] { color:red; }
상속되는 CSS 속성들은 모두 글자/문자 관련 속성들
속성: inherit;
1st !important; 99999점
2nd 인라인 선언 1000점
3rd ID 선택자 100점
4th class 선택자 10점
5th 태그 선택자 1점
6th 전체 선택자 0점
7th 상속 x
margin : 요소의 외부 여백(공간)을 지정하는 단축 속성
[값]
padding : 요소의 내부 여백(공간)을 지정하는 단축 속성 -> 요소의 크기가 커짐
[값]
border: 선-두께 선-종류 선-색상; : 요소의 테두리 선을 지정하는 단축 속성
border: border-width border-style border-color;
border-radius : 요소의 모서리를 둥글게 깎음
box-sizing : 요소의 크기 계산 기준을 지정
overflow : 요소의 크기 이상으로 내용이 넘쳤을 때, 보여짐을 제어하는 단축 속성
display : 요소의 화면 출력(보여짐) 특성
opacity : 요소 투명도
font-style : 글자의 기울기
font-weight : 글자의 두께(가중치)
font-size : 글자의 크기
line-height : 한 줄의 높이, 행간과 유사
font-family : sans-serif
color : 글자의 색상
text-align : 문자의 정렬 방식
text-decoration : 문자의 장식(선)
text-indent : 문자 첫 줄의 들여쓰기
background-color : 요소의 배경 색상
background-image : 요소의 배경 이미지 삽입
background-repeat : 요소의 배경 이미지 반복
background-position : 요소의 배경 이미지 위치
background-size : 요소의 배경 이미지 크기
backgroud-attachment : 요소의 배경 이미지 스크롤 특성
position : 요소의 위치 지정 기준
=> absolute, fixed가 지정된 요소는 display 속성이 block으로 변경됨
top, bottom, left, right : 요소의 각 방향별 거리 지정
: 어떤 요소가 사용자와 더 가깝게 있는지(위에 쌓이는지) 결정
1. 요소에 position 속성의 값이 있는 경우 위에 쌓임(기본값 static 제외)
2. 1번 조건이 같은 경우, z-index 속성의 숫자 값이 높을 수록 위에 쌓임
3. 1번과 2번 조건까지 같은 경우, HTML의 다음 구조일 수록 위에 쌓임
: 요소의 쌓임 정도를 지정
display : Flex Container의 화면 출력(보여짐) 특성
flex-direction : 주 축을 설정
flex-wrap : Flex Items 묶음(줄 바꿈) 여부
justify-content : 주 축의 정렬 방법
align-content : 교차 축의 여러 줄 정렬 방법
align-items : 교차 축의 한 줄 정렬 방법
order : Flex Item의 순서
flex-grow : Flex Item의 증가 너비 비율
flex-shrink : Flex Item의 감소 너비 비율
flex-basis : Flex Item의 공간 배분 전 기본 너비
transition: 속성명 지속시간 타이밍함수 대기시간; : 요소의 전환(시작과 끝) 효과를 지정하는 단축 속성
transition: transition-property transition-duration transition-timing-function transition-delay;
transform : 원근법 이동 크기 회전 기울임; : 요소의 변환 효과
perspective : 하위 요소를 관찰하는 원근 거리를 지정 -> 관찰 대상의 부모에 적용
backface-visibility : 3D 변환으로 회전된 요소의 뒷면 숨김 여부