CSS3 perspective-origin 属性

设置一个3D元素的基数位置:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <style>
    #div1 {
      position: relative;
      height: 150px;
      width: 150px;
      margin: 50px;
      padding: 10px;
      border: 1px solid black;
      perspective: 150;
      perspective-origin: 10% 10%;
      -webkit-perspective: 150;
      /* Safari and Chrome */
      -webkit-perspective-origin: 10% 10%;
      /* Safari and Chrome */
    }

    #div2 {
      padding: 50px;
      position: absolute;
      border: 1px solid black;
      background-color: red;
      transform: rotateX(45deg);
      -webkit-transform: rotateX(45deg);
      /* Safari and Chrome */
    }
  </style>
</head>

<body>

  <div id="div1">
    <div id="div2">HELLO</div>
  </div>

</body>
</html>

尝试一下 »


浏览器支持

表格中的数字表示支持该属性的第一个浏览器版本号。

紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持该前缀属性的第一个浏览器版本号。

属性
perspective-origin 36.0
12.0 -webkit-
10.0 16.0
10.0 -moz-
9.0
4.0.3 -webkit-
23.0
15.0 -webkit-

属性定义及使用说明

perspective-origin 属性定义 3D 元素所基于的 X 轴和 Y 轴。该属性允许您改变 3D 元素的底部位置。

定义时的perspective -Origin属性,它是一个元素的子元素,透视图,而不是元素本身。

注意: 对于Chrome和Safari用户:为了更好地理解perspective属性!

对于 Chrome 和 Safari 用户: 为了更好地理解perspective-Origin属性,请查看 - 查看实例.

<!DOCTYPE html>
<html>
<head>
  <style>
    #div1 {
      position: relative;
      height: 200px;
      width: 200px;
      margin: 50px;
      padding: 10px;
      border: 1px solid black;
    }

    #div2 {
      padding: 50px;
      position: absolute;
      border: 1px solid black;
      background-color: red;
      transform: rotateX(45deg);
      -webkit-transform: rotateX(45deg);
      /* Safari and Chrome */
    }
  </style>
  <script>
    function changePersp(value) {
      document.getElementById('div1').style.webkitPerspective = value;
      document.getElementById('persp').innerHTML = value;
    }

    function changeOrgPersp() {
      var x = document.getElementById('operspx').value;
      var y = document.getElementById('operspy').value;
      document.getElementById('div1').style.webkitPerspectiveOrigin = x + '% ' + y + '%';
      document.getElementById('opersp').innerHTML = x + "% " + y + "%";
    }
  </script>
</head>

<body onload="changePersp(200);updateOrigPerpective()">

  <div id="div1">
    <div id="div2">HELLO</div>
  </div>

  Change perspective:<br>
  <input type="range" min="45" max="5000" value="200" onchange="changePersp(this.value)" /><br> webkit-perspective: <span id="persp"></span>;<br>
  <br> Change the Origins:<br> X-axis:
  <input type="range" min="-100" max="200" value="50" onchange="changeOrgPersp()" id="operspx" /><br> Y-axis:
  <input type="range" min="-100" max="200" value="50" onchange="changeOrgPersp()" id="operspy" /><br> webkit-perspective-origin: <span id="opersp">50% 50%</span>;
</body>
</html>

尝试一下 »

默认值: 50% 50%
继承: no
版本: CSS3
JavaScript 语法: object.style.perspectiveOrigin="10% 10%"

语法

perspective-origin: x-axis y-axis;

描述
x-axis

定义该视图在 x 轴上的位置。默认值:50%。

可能的值:

  • left
  • center
  • right
  • length
  • %
y-axis

定义该视图在 y 轴上的位置。默认值:50%。

可能的值:

  • top
  • center
  • bottom
  • length
  • %