translate
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2022.
translate
CSS 속성은 transform
속성과 별개로 독립적으로 변환을 지정할 수 있게 합니다. 이는 일반적인 사용자 인터페이스 사용에 더 적합하며, transform
값에 지정할 변환 함수의 정확한 순서를 기억할 필요가 없습니다.
시도해 보기
translate: none;
translate: 40px;
translate: 50% -40%;
translate: 20px 4rem;
translate: 20px 4rem 150px;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
<div class="face front">1</div>
<div class="face back">2</div>
<div class="face right">3</div>
<div class="face left">4</div>
<div class="face top">5</div>
<div class="face bottom">6</div>
</div>
</section>
#default-example {
background: linear-gradient(skyblue, khaki);
perspective: 800px;
perspective-origin: 150% 150%;
}
#example-element {
width: 100px;
height: 100px;
perspective: 550px;
transform-style: preserve-3d;
}
.face {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
position: absolute;
backface-visibility: inherit;
font-size: 60px;
color: white;
}
.front {
background: rgba(90, 90, 90, 0.7);
transform: translateZ(50px);
}
.back {
background: rgba(0, 210, 0, 0.7);
transform: rotateY(180deg) translateZ(50px);
}
.right {
background: rgba(210, 0, 0, 0.7);
transform: rotateY(90deg) translateZ(50px);
}
.left {
background: rgba(0, 0, 210, 0.7);
transform: rotateY(-90deg) translateZ(50px);
}
.top {
background: rgba(210, 210, 0, 0.7);
transform: rotateX(90deg) translateZ(50px);
}
.bottom {
background: rgba(210, 0, 210, 0.7);
transform: rotateX(-90deg) translateZ(50px);
}
구문
/* 키워드 값 */
translate: none;
/* 단일 값 */
translate: 100px;
translate: 50%;
/* 두 개의 값 */
translate: 100px 200px;
translate: 50% 105px;
/* 세 개의 값 */
translate: 50% 105px 5rem;
/* 전역 값 */
translate: inherit;
translate: initial;
translate: revert;
translate: revert-layer;
translate: unset;
값
- 단일
<length-percentage>
값 -
X축 방향의 변환을 지정하는
<length>
또는<percentage>
. 단일 값이 지정된translate()
(2D 변환) 함수와 동일합니다. - 두 개의
<length-percentage>
값 -
2D 변환의 X축 및 Y축 변환 값(각각)을 지정하는 두 개의
<length>
또는<percentage>
. 두 값이 지정된translate()
(2D 변환) 함수와 동일합니다. - 세 개의 값
-
3D 변환의 X, Y, Z축 변환 값(각각)을 지정하는 두 개의
<length-percentage>
와 하나의<length>
값.translate3d()
(3D 변환) 함수와 동일합니다. none
-
변환이 적용되지 않아야 함을 지정합니다.
형식 정의
초기값 | none |
---|---|
적용대상 | transformable elements |
상속 | no |
Percentages | refer to the size of bounding box |
계산 값 | as specified, but with relative lengths converted into absolute lengths |
Animation type | a transform |
Creates stacking context | yes |
형식 구문
예제
호버 시 요소 이동하기
이 예제는 translate
속성을 사용하여 요소를 세 개의 축에서 이동하는 방법을 보여줍니다.
첫 번째 박스는 X축을 따라 이동하고 두 번째 박스는 X축과 Y축을 따라 이동합니다.
세 번째 박스는 X, Y, Z축을 따라 이동하며, 부모 요소에 perspective
가 추가되어 관찰자를 향해 이동하는 것처럼 보입니다.
HTML
<div class="wrapper">
<div id="box1">translate X</div>
<div id="box2">translate X,Y</div>
<div id="box3">translate X,Y,Z</div>
</div>
CSS
.wrapper {
perspective: 100px;
display: inline-flex;
gap: 1em;
}
.wrapper > div {
width: 7em;
line-height: 7em;
text-align: center;
transition: 0.5s ease-in-out;
border: 3px dotted;
}
#box1:hover {
translate: 20px;
}
#box2:hover {
translate: 20px 20px;
}
#box3:hover {
translate: 5px 5px 30px;
}
결과
명세서
Specification |
---|
CSS Transforms Module Level 2 # individual-transforms |