CSS 라이브 데모: perspective-origin 슬라이더를 직접 조절해서 확인해보세요.
관찰자가 자식 요소의 3D 입체감을 바라보는 가로(X)·세로(Y) 기준 위치를 설정하는 역할을 합니다.
selector {
    perspective-origin: /* value */
}
/* 두 개 키워드 값 구문: 가로 축 | 세로 축 */
perspective-origin: left top;
perspective-origin: left center;
perspective-origin: left bottom;
perspective-origin: right top;
perspective-origin: right center;
perspective-origin: right bottom;
perspective-origin: center top;
perspective-origin: center center; /* 초깃값 */
perspective-origin: center bottom;

/* 한 개 키워드 값 구문: 가로 축 | 생략한 세로 축은 무조건 center 값 */
perspective-origin: left; /* left center;와 동일 */
perspective-origin: right; /* right center;와 동일 */
perspective-origin: center; /* center center;와 동일 */

/* 백분율(%) 값 */
perspective-origin: 0% 0%; /* left top;과 동일 */
perspective-origin: 50% 50%; /* center center;와 동일 */
perspective-origin: 100% 100%; /* right bottom;과 동일 */
perspective-origin: 25% 40%;

/* 길이 값 */
perspective-origin: 10px 25px;
perspective-origin: 2em 5em;
perspective-origin: 2rem 5rem;
perspective-origin: 20vw 40vh;

/* 두 개 값 구문: 가로 축 | 세로 축 */
perspective-origin: left 2em;
perspective-origin: 2em bottom;
perspective-origin: 2em 50%;

/* 한 개 값 구문: 가로 축 | 생략한 세로 축은 무조건 center 값 */
perspective-origin: 0; /* left center;와 동일 */
perspective-origin: 20px; /* 20px center;와 동일 */
perspective-origin: 50%; /* center center;와 동일 */

/* 글로벌 값 */
perspective-origin: inherit;
perspective-origin: initial;
perspective-origin: revert;
perspective-origin: revert-layer;
perspective-origin: unset;
<div class="container"> <!-- perspective 속성으로 지정된 기준 영역 -->
    <div class="rotator">Rotator</div> <!-- 3D transform이 적용될 요소 -->
</div>
.container {
    width: 150px; height: 150px;
    border: 3px dashed #663399;
    perspective: 300px; /* perspective 속성으로 지정된 요소가 기준 영역이 됨 */
    perspective-origin: center center; /* 50% 50%;와 동일 */
}
.rotator {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 0, 200, .4);
    transform: rotateX(45deg);
}
실제 적용된 모습
.container {
    width: 150px; height: 150px;
    border: 3px dashed #663399;
    perspective: 300px; /* perspective 속성으로 지정된 요소가 기준 영역이 됨 */
    perspective-origin: left center; /* 0 50%;와 동일 */
}
.rotator {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 0, 200, .4);
    transform: rotateX(45deg);
}
실제 적용된 모습
.container {
    width: 150px; height: 150px;
    border: 3px dashed #663399;
    perspective: 300px; /* perspective 속성으로 지정된 요소가 기준 영역이 됨 */
    perspective-origin: right center; /* 100% 50%;와 동일 */
}
.rotator {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 0, 200, .4);
    transform: rotateX(45deg);
}
실제 적용된 모습
.container {
    width: 150px; height: 150px;
    border: 3px dashed #663399;
    perspective: 300px; /* perspective 속성으로 지정된 요소가 기준 영역이 됨 */
    perspective-origin: center top; /* 50% 0;과 동일 */
}
.rotator {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 0, 200, .4);
    transform: rotateX(45deg);
}
실제 적용된 모습
.container {
    width: 150px; height: 150px;
    border: 3px dashed #663399;
    perspective: 300px; /* perspective 속성으로 지정된 요소가 기준 영역이 됨 */
    perspective-origin: center bottom; /* 50% 100%;와 동일 */
}
.rotator {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 0, 200, .4);
    transform: rotateX(45deg);
}
실제 적용된 모습
.container {
    width: 150px; height: 150px;
    border: 3px dashed #663399;
    perspective: 300px; /* perspective 속성으로 지정된 요소가 기준 영역이 됨 */
    perspective-origin: -50% 50%;
}
.rotator {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 0, 200, .4);
    transform: rotateX(45deg);
}
실제 적용된 모습
.container {
    width: 150px; height: 150px;
    border: 3px dashed #663399;
    perspective: 300px; /* perspective 속성으로 지정된 요소가 기준 영역이 됨 */
    perspective-origin: -50px 50px;
}
.rotator {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 0, 200, .4);
    transform: rotateX(45deg);
}
실제 적용된 모습
selector {
    perspective-origin: <가로 축>;
}
/* 한 개 값 구문: 가로 축 | 생략한 세로 축은 무조건 center 값 */
perspective-origin: left; /* left center;와 동일 */
perspective-origin: center; /* center center;와 동일 */
perspective-origin: 0; /* left center;와 동일 */
perspective-origin: 20px; /* 20px center;와 동일 */
perspective-origin: 50%; /* center center;와 동일 */