선택자 { 속성명: 속성값; … }
Inline
> Internal
> External
> defaultdisplay
객체의 노출 여부 / 표현방식
list-style
overflow
position
위치 / 좌표
float
clear
width/height
크기 / 여백
padding/margin
border/background
윤곽 / 배경
color/font
글자 / 정렬
text-decoration
text-align/vertical-align
white-space
other text
content
내용
→ 위치 선정 > 윤곽 > 외곽 디테일링 > 채색 > 타이포그래피
<tag style="color: red; text-align: center;">
<head>
</head>
사이에 <style>
태그로 지정<head>
<style>
**body {
color: blue;
}**
</style>
</head>
<head>
<link rel="stylesheet" href="style.css" />
</head>
Box 모양
width
height
content 대상box-sizing: content-box
기본값box-sizing: border-box
테두리 영역 기준
margin 영역부터 포함 X
직관적
전체 선택자
* { color: gold; }
HTML 요소 선택자
h2 { color: gold; }
id 선택자
<h2 id="jnary">css 재미없어</h2>
#jnary { color: gold; }
class 선택자
<h2 class="jnary">css 재미없어</h2>
.jnary { color: gold; }
여러 선택자 선택 : 쉼표로 구분
#jnary, .jnary { color: gold; }
결합(그룹) 선택자
공백
div p { color: gold; }
>
div > p { color: gold; }
형제 선택자
~
해당 요소보다 뒤에 존재
div ~ p { color: gold; }
+
해당 요소 바로 뒤에 존재
div + p { color: gold; }
가상 클래스
:link
:visited
:hover
:active
:focus
:checked
:enabled
:disabled
:first-child
:nth-child
:first-of-type
:nth-of-type
:not
:lang
input:focus { color: gold; }
가상 요소
::first-letter
::first-line
::before
::after
::selection
::marker
::placeholder
input::placeholder { color: gold; }
속성 선택자
[attributename]
특정 속성을 가진 모든 요소[attributename = "value"]
특정 속성, 속성값을 가진 모든 요소input[type="password"] { color: gold; }
!important
지양Inline
id
class
/ 가상 선택자static
relative
static
요소 기준으로 위치 설정absolute
static
이 아닌 요소 기준으로 위치 설정fixed
sticky
relative
fixed
속성으로 변경z-index
속성
stacking context에서 자신의 위치 지정
→ 부모의 쌓임 맥락을 벗어날 수 X
정수 값 사용
position ≠ static 일 때 동작
display: flex;
flex-direction
row
기본값 / column
row-reverse
/ column-reverse
flex-wrap
nowrap
기본값, 줄바꿈X, overflow 할 수도 wrap
줄바꿈 / wrap-reverse
역순 줄바꿈justify-content
flex-start
기본값 / flex-end
/ center
space-between
/ space-around
/ space-evenly
align-items
normal
기본값 / flex-start
/ flex-end
center
/ baseline
/ stretch
컨테이너에 맞춰서 늘림align-content
align-items
와 속성값 동일gap
order
flex-basis
auto
기본값 / content
컨텐츠의 크기 / px
flex-grow
flex-shrink
flex
flex: (flex-grow) (flex-shrink) (flex-basis)
align-self
align-items
설정 상속 받음 → 개별 설정 우선auto
기본값 / stretch
flex-start
flex-end
center
baseline
display: grid;
grid-template-rows
grid-template-columns
/* 고정 크기 */
grid-template-columns: 200px 200px 500px;
/* 가변 크기 (비율대로 나누기) */
grid-template-columns: 1fr 1fr 1fr;
repeat(반복횟수, 반복값)
grid-template-columns: 1fr 1fr 1fr;
grid-template-columns: repeat(3, 1fr);
minmax(최솟값, 최댓값)
grid-template-rows: repeat(3, minmax(100px, auto));
auto-fill
개수가 적을 때 공간 남기기 auto-fit
남는 공간 채우기grid-template-columns: repeat(auto-fill, minmax(20%, auto));
row-gap
column-gap
gap: (row-gap) (column-gap);
grid-auto-columns
grid-auto-rows
grid-template-rows: repeat(3, minmax(100px, auto));
/* row 개수 모를 때 */
grid-auto-rows: minmax(100px, auto);
grid-template-areas
grid-template-areas:
"header header header"
" a main b "
" . . . "
"footer footer footer";
.
none
grid-area
속성으로 이름 지정.header { grid-area: header; }
align-items
start
center
end
stretch
justify-items
place-items
place-items: (align-items) (justify-items)
align-content
start
center
end
stretch
space-between
space-around
space-evenly
justify-content
place-content
place-content: (align-content) (justify-content)
grid-column-start
grid-column-end
grid-column
grid-row-start
grid-row-end
grid-row
grid-column-start: 1;
grid-column-end: 3;
/* grid-column: 1 / 3; */
grid-row-start: 1;
grid-row-end: 2;
/* grid-row: 1 / 2; */
/* 1번 라인에서 2칸 */
grid-column: 1 / span 2;
grid-column: auto / span2; /* 시작지점 auto 가능 */
grid-column: 2;
end 생략 시 한 칸grid-auto-flow
row
순서대로 배치 후 들어갈 자리 없으면 칸 비워두고 개행 column
아래로 배치 dense
빈 셀을 채우는 알고리즘 (row dense
column dense
)align-self
justify-self
place-self
place-self: (align-self) (justify-self)
order
z-index