w3s 속성의 간단한 스펙과 예제를 확인
mdn 개발적 버그나 추가적인 스펙에 대해 확인
1. 요소 선택자
h1 {color: yellow;}
2. 클래스 선택자
.foo {font-size: 30px;} //css
<p class="foo">...</p> //html
<다중 class>
.foo {font-size: 30px;} //css
.bar {color: blue;}
<p class="foo bar">...</p> //html
3. 아이디 선택자
#bar {background-color: yellow;} //css
<p id="bar">...</p> //html
한 페이지에 한 개 쓸 수 있음
4. 속성 선택자
p[class] {color: silver;}
p[class][id] {text-decoration: underline;}
p[class="food"] {color: silver;}
부분 속성값으로 선택
class~="bar"
class^="bar
class$="bar"
class*="bar"
5. 문서 구조를 이용한 선택자
div span {color: red;} // div의 자손 span을 선택
div > span {color: red;} // div의 자식 span 선택
div + span {color: red;} // div요소에 인접한 span 형제 요소 선택
6. 가상 선택자
특정 요소의 상태를 미리 추정해 가상의 클래스로 스타일 적용
가상 클래스 : 상황에 적용
가상 요소 : 위치에 삽입
? 선택자가 겹칠 때
id > class > tag
선택자를 얼마나 명시적으로 선언했느냐를 수치화
구체성의 값이 높을 수록 우선 순위 가짐
0, 0, 0, 0
: 전체 선택자(*)
1, 0, 0 , 0
: inline
0, 1, 0 , 0
: 선택자에 있는 모든 id 속성값
0, 0, 1, 0
: 선택자에 있는 모든 class 속성값, 기타 속성, 가상 클래스
0, 0, 0, 1
: 선택자에 있는 모든 요소, 가상 요소
h1 {color: gray;} // CSS
<h1>hello, <em>world</em></h1> // HTML
em 요소가 부모 h1의 color를 상속 받음
* {color: red;} //CSS
h1#page {color: gray;}
<h1 id="page">hello, <em>world</em></h1> //HTML
상속된 값은 구체성을 가지지 않음
1. 중요도 & 출처
(개발자가 작성한 CSS)
(사용자가 작성한 CSS)
(일반 사용자의 환경. 브라우저에 내장된 CSS)
2. 구체성
3. 선언 순서
margin (transparent)
auto
margin collapse
border
padding
content
content-box
border-box
display
블록(인라인) 요소를 인라인(블록) 요소처럼 보여줌
display inline
width, height(X)
inline-block
inline 배치 / box model 속성
visibility
hidden
none
float
clear
Z-INDEX
box가 겹치는 순서를 지정
flex
미디어 매체에 따라 다른 스타일 시트 적용
미디어 타입
all print screen
미디어 특성
width orientation
S*
: 공백
[ ]
: 안의 내용이 있을 수도 없을 수도
a:b
: a or b
~?
: 앞의 내용이 0번 or 1번
~*
: 앞의 내용이 0번 or 1번 or 연속
@media : 미디어 쿼리가 시작됨을 알림
only : 미디어 쿼리 구문 해석해라 (생략O)
all : 미디어 쿼리를 해석해야 할 대상을 나타냄 (생략 O)
and : 앞과 뒤의 조건을 나타냄 (생략 O)
조건문 : 조건을 설정
실행문 : 조건에 따른 실행 설정
desktop first
body {background-color:lightpink;}
@media screen and (min-width: 768px) and (max-width: 1024px){
body {background-color: lightblue;}
}
@media screen and (max-width: 767px) {
body {background-color: gold;}
}
mobile first
body {background-color:gold;}
@media screen and (min-width: 768px) and (max-width: 1024px){
body {background-color: lightblue;}
}
@media screen and (min-width: 1025px) {
body {background-color: lightpink;}
}