.box {
width: 100px;
height: 100px;
animation: slidein 2s infinite alternate;
/* slidein을 2초동안, 무한반복, 반대로도 적용 */
}
/* 두 가지만 적용할 때 */
@keyframes slidein {
from{
margin-left: 100%;
width: 100%;
}
to{
margin-left: 0%;
witdh: 300%;
}
}
/* 그 이상을 적용했을 때, 지점에 마다 바뀌게 됨
이 설정으로 시작과 끝을 같게 만들어 연결되게 만들 수 있음 */
@keyframes identifier {
0% { top: 0; left: 0;}
30% { top: 50px; }
68%, 72% { left: 50px;}
100% { top: 100px; left: 100%; }
}
animation-name: [사용할 keyframes의 이름 작성]
⚠ 작성 방법 주의사항
- 대소문자 구분
- a-z, A-Z,
-
,_
만 사용 가능- global 속성을 이름으로 사용하면 X
- 되도록 상속되지 않게 별도로 작성
animation-duration: 1.5s
ex) 처음에는 빠르게, 나중에는 느리게
animation: my-first-animation 1s infinite;
animation-delay: 1.5s;
animation-timing-function: ease;
**animation-iteration-count**: infinite;
/* 무한 반복 */
animation-direction: reverse;
/* 매 사이클마다 역방향으로 재생 */
animation-direction: alternate;
/* 매 사이클마다 각 주기의 방향을 뒤집음 */
animation-play-state: paused;
animation-fill-mode: forwards;
/* 애니메이션의 마지막 keyframe에 의해 설정된 계산된 값을 유지 */
animation-fill-mode: backwards;
/* 애니메이션이 적용되는 즉시 첫 번째 관련 keyframe에 의해 설정된 계산된 값 적용 */
animation-fill-mode: both;
/* 모두 적용 */
animation: deration, timing-function, delay, iterneation-count, direction, fill-mode, lay-state, name;
/* 이름과 duration은 작성해야함 */
display: flex;
/* 부모 요소에 속성 추가 */
flex container: 부모 요소
flex item: 자식 요소
main axis: 주축(왼쪽에서 오른쪽)
cross axis: 교차축(주축에 수직을 이루는 축)
display
<display-outside>
)나 내부 layout( <display-inside>
)을 동시에 같이 사용<display-outside>
: inline, block<display-inside>
: flex, grid/* css3 이전 */
display: inline flex;
/* css3 */
display: inline-flex;
/* - 로 내외부 동시에 사용 가능 */
flex-direction
flex-direction: row;
/* main axis, 좌->우 */
flex-direction: row-reverse;
/* main axis, 우->좌 */
flex-direction: column;
/* cross axis, 상->하 */
flex-direction: column-reverse;
/* cross axis, 하->상 */
flex-wrap
flex-wrap: wrap;
/* 너비가 줄어들면, 본인의 너비를 유지한 채 여러 행에 걸쳐 표현됨 */
flex-flow
direction
과 wrap
의 단축 속성flex-flow: row wrap;
order
order: -1;
order: -4;
/* 두 아이템이 각각의 속성을 갖고 있다면 -4를 가진 아이템이 앞으로 옴 */
flex-grow
flex-grow: 1;
/* 양 옆의 남은 공간 없이 item이 동일하게 커져 모두 차지 */
✔ 남은 공간을 n으로 자른 후, 각가의 grow에 설정해준 값 만큼 가져감(설정해준 대로 비율이 달라짐)
flex-shrink
flex-shrink: 2;
/* n만큼 줄어드는 크기가 늘어남 */
flex-basis
flex-basis: 0;
/* content 이후의 영역 기준X, box 전체가 기준이 됨 */
flex-grow: 5;
/* item의 크기를 container 기준으로 5만큼 가져감 */
flex (shorthand)
flex: grow, shrink, basis;
/* 2개 작성 시, 숫자만 나열 -> grow, shrink
뒤에 단위를 줌 -> grow, basis */
flex: initial;
/* 0 1 auto */
flex: auto;
/* 1 1 auto */
flex: none;
/* 0 0 auto */
⚠ flex shorthand 작성 시 주의사항
기본값: 0 1 auto 이지만 1개 또는 2개의 단위 없는 숫자 값을 사용할 때, basis는 작성하지 않으면 auto가 아닌, 0이 됨
justify-content
justify-content: flex-start;
/* 주축이 시작되는 위치부터 정렬 - 왼쪽 정렬처럼 보임(주축에 따라 달라지기 때문에 정렬과 같은 값은 아님 !) */
/* justify-content를 설정할 때는, flex-direction을 함께 작성해야 보다 정확한 설정이 됨 */
justify-content: flex-end;
/* 주축이 끝나는 위치부터 정렬 - 오른쪽 정렬처럼 보임 */
justify-content: center;
/* 가운데 정렬 */
justify-content: space-between;
/* 화면 크기에 따라 item끼리의 여백이 동일하게 늘어남 */
justify-content: space-around;
/* 화면 크기에 따라 item의 양 옆으로 동일한 여백을 줌 */
/* 간격을 계산할 때, between은 item사이의 여백, around는 item 양 옆에 여백 */
align-items
align-items: stretch;
/* 기본값: flex container 세로 전체의 값을 가짐 */
align-items: start;
/* 맨 위쪽, 시작 부분에 위치 */
align-items: end;
/* 맨 위쪽, 끝 부분에 위치 */
align-items: center;
/* 맨 위쪽, 가운데 부분에 위치 */
align-content
align-content: start;
/* 교차축의 시작 부분이 맨 위 */
align-content: end;
/* 교차축의 끝 부분이 맨 위 */
align-content: center;
/* 교차축의 가운데 부분이 맨 위 */
align-content: space-between;
/* item 간이 아닌 items 간의 간격이 동일하게 늘어남 */
align-content: space-around;
/* item의 양옆 간격이 아닌 items의 상하 간격이 동일하게 늘어남 */
align-self
align-self: stretch;
/* align-items와 속성값이 같음 */
/* align-items로 정렬된 것 중, 별도로 작성하고 싶다면 self로 따로 변경할 수 있음 */