요소의 위치 지정 기준을 지정한다.
top, bottom, left, right 속성을 이용해서 직접 위치를 지정할 수 있다.
z-index 속성을 이용해서 쌓인 순서를 정할 수 있다.
위의 속성들은 음수를 지정할 수도 있다.
요소의 각 방향별 거리를 지정한다.
어떤 요소가 사용자와 더 가깝게 있는지(위에 쌓이는지) 결정한다.
.container .item:nth-child(1) {
position: relative;
z-index: 1;
}
.container item:nth-child(2) {
position: relative;
}
.container item:nth-chile(3) {
z-index: 2;
}
위의 코드에서는 1, 2, 3 순서대로 위를 차지하게 된다. 1, 2는 둘다 position값이 있지만 1에만 z-index가 부여되어 있으므로 1 > 2가 되고 3은 z-index 값이 가장 높지만 position속성이 없어 가장 밑에 깔리게 된다.
요소의 쌓임 정도를 지정한다.
position 속성의 값으로 absolute, fixed가 사용된 요소는 display속성이 block으로 변경된다.
.item:nth-child(1) {
display: block;
position: absolute;
}
.item:nth-child(1) {
position: absolute;
}
위의 코드에서 첫번째 스타일과 두번째 스타일은 결과적으로 같은 내용이다. position값으로 absolute가 들어가 자동으로 display속성의 값이 block으로 들어가게된다. 즉 position값으로 absolute나 fixed가 들어가있으면 따로 display를 block으로 설정할 필요가 없다.
플레스로 수평정렬을 하게 되면 자동으로 Flex Container(부모요소)와 Flex Item(자식요소)들이 생성된다. 각각만의 개별 속성들이 존재한다.
Flex Container의 화면 출력(보여짐) 특성이다.
Flex Container가 block요소가 될지 inline요소가 될지 정한다.
주 축을 설정한다.
정렬의 방향을 설정한다.
Flex Items 묶음(줄 바꿈) 여부를 정한다.
/*자식요소들이 자신의 크기를 줄이면서까지 한줄안으로 정렬한다*/
.container1 {
width: 400px;
display: flex;
}
/*자식요소들이 넘칠거 같으면 다음줄로 넘어가서 다시 정렬을 이어간다*/
.container2 {
width: 400px;
display: flex;
flext-wrap: wrap;
}
예를 들어 위 코드에서 ‘container1’ 클래스의 부모요소안에 가로너비가 100px인 자식요소들이 5개가 들어오게될경우 자식요소들이 각각 가로너비를 80px까지 줄이면서 한줄안에 모두 채우려고 한다.
반면에 ‘container2’ 클래스의 부모요소안에 똑같은 크기의 자식요소들을 5개를 넣게 될경우 1줄에 4개(총 400px)까지는 허용하고 나머지 1개는 다음줄로 넘어가게 된다.
주 축의 정렬의 방법을 정한다. (수평정렬일 경우 주축은 x축)
보통 수평정렬을 사용하게되기 때문에 각각 왼쪽, 오른쪽, 가운데정렬이라고 생각하면 된다.
교차 축의 여러 줄 정렬 방법을 정한다.
여러줄의 정렬방법을 정하기 때문에 줄바꿈(flex-wrap)이 있어야하고 줄이 넘어갈 여분의 공간이 필요하며 아이템이 2줄이상일때만 동작을 한다.
조건이 많기때문에 활용도가 높지는 않다.
교차 축의 한 줄 정렬 방법을 정한다.
align-content의 경우 여러줄의 내용이 시작점, 끝점, 가운데로 정렬되지만, align-itmes의 경우에는 수직으로 각줄의 시작점, 끝점, 가운데로 정렬이 된다.
Flex Items의 순서를 지정한다.
Flex Item의 증가 너비 비율
Flex Item의 감소 너비 비율
Flex Item의 공간 배분 전 기본 너비
요소의 전환(시작과 끝) 효과를 지정하는 단축속성이다.
단축형으로 작성할 때 ‘지속시간’은 필수로 포함해야 하는 속성이다.
transition: 속성명 지속시간 타이밍함수 대기시간;
전환효과를 사용할 속성 이름을 지정한다.
transition: width 1s;
위와 같이 작성할경우 width속성에 대해서만 전환효과가 1초 적용된다.
전환 효과의 지속시간을 지정한다.
transition:
width .5s,
background-color 2s;
위와 같이 “,’ (쉼표)를 이용해서 여러개의 속성마다 각각 다른 전환시간을 부여할 수도 있다.
가독성을 위해서 줄바꿈을 해주는 것이 좋다.
전환효과의 타이밍(Easying)함수를 지정한다.
전환 효과가 몇 초 뒤에 시작할지 대기시간을 지정한다.
transition: 1s .5s;
위와 같이 시간 단위 2개를 단축속성으로 지정하게 될경우 첫번재는 지속시간, 두번째는 대기시간으로 자동으로 지정된다.
요소의 변환 효과를 지정하는 속성이다.
transform : 변환함수1 변환함수2 변환함수3 … ;
transform : 원근법 이동 크기 회전 기울임;
transform: translate(40px, 40px);
x축(가로)으로 40px, y축(세로)으로 40px으로 이동한다.
transform: translateX(40px);
transform: translate(40px, 0);
x축(가로)으로 40px 이동한다.
translateX()가 직관적이므로 사용하는 것이 권장된다.
transform: translateY(40px);
transform: translate(0, 40px);
y축(세로)으로 40px 이동한다.
translateY()가 직관적이므로 사용하는 것이 권장된다.
transfrom: scale(1.5);
transform: scale(1.5, 1.5);
요소의 가로, 세로 크기를 1.5배 증가시킨다.
transform: scaleX(1.3);
요소의 가로크기를 1.3배 증가시킨다.
(한쪽의 크기만을 늘리게되는 경우는 거의 없기때문에 자주 사용되지 않는다)
transform: rotate(45deg);
요소를 45도 만큼 회전시킨다.
transform: perspective(400px) rotateX(45deg);
원근함수를 가장 먼저 써야 한다.
원근 거리 400px를 명시했고 x축을 기준으로 45deg만큼 회전시킨다.
하위 요소를 관찰하는 원근 거리를 지정한다.
perspective: 600px;
transform: perspective(600px);
3D 변환으로 회전된 요소의 뒷면 숨김 여부를 지정한다.
(rotateX, rotateY 등의 속성으로 인해 요소가 회전되었을때 뒷면을 보여줄지 말지 정한다)
transform: rotateY(180deg);
backface-visibility: hidden;
위 코드는 Y축을 기준으로 180도 돌렸을때 뒷면을 보이지 않게 설정했다.