帮忙看下这段代码里面的perspective-origin
下面这段代码中,有两个疑问:1. persective-origin:top center;没有起到作用,不知道为什么 2. perspective和perspective-origin 只能放在body标签中,放进.cube 的div中没有效果,求解。
<!DOCTYPE html><html><head><title>cube</title><style type="text/css">
body{
-webkit-perspective: 800px;
-moz-perspective: 800px;
-o-perspective: 800px;
perspective: 800px;
-webkit-perspective-origin: top center;
-moz-perspective-origin: top center;
-ms-perspective-origin: top center;
-o-perspective-origin: top center;
perspective-origin: top center;
}
.cube{
position: absolute;
transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
width: 100px;
height: 100px;
margin:50px;
}
.c2{
position: absolute;
left:300px;
}
.c2>div{
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
}
.cube>div{
position: absolute;
width: 100%;
height: 100%;
border: 1px solid #ccc;
background: rgba(255,255,255,.8);
box-shadow: inset 0 0 20px rgba(0,0,0,.2);
font-size: 100px;
line-height: 100px;
text-align: center;
color: #333;
}
.front{
transform: translateZ(50px);
-webkit-transform: translateZ(50px);
}
.back{
transform: rotateY(180deg) translateZ(50px);
-webkit-transform: rotateY(180deg) translateZ(50px);
}
.top{
transform: rotateX(90deg) translateZ(50px);
-webkit-transform: rotateX(90deg) translateZ(50px);
}
.bottom{
transform: rotateX(-90deg) translateZ(50px);
-webkit-transform: rotateX(-90deg) translateZ(50px);
}
.left{
transform: rotateY(-90deg) translateZ(50px);
-webkit-transform: rotateY(-90deg) translateZ(50px);
}
.right{
transform: rotateY(90deg) translateZ(50px);
-webkit-transform: rotateY(90deg) translateZ(50px);
}</style></head><body>
<div class="cube c1">
<div class="front">1</div> <div class="back">2</div> <div class="left">3</div> <div class="right">4</div> <div class="top">5</div> <div class="bottom">6</div> </div> <div class="cube c2">
<div class="front">1</div> <div class="back">2</div> <div class="left">3</div> <div class="right">4</div> <div class="top">5</div> <div class="bottom">6</div> </div></body></html>
正在回答 回答被采纳积分+1
perspective字面意思是:透视。
在w3school中它的解释为:设置元素被查看位置的视图:通俗讲,就是我们看看一个物体的所处的视角,近大远小。就比如我们正对着电脑:当我无限贴近电脑屏幕的时候,电脑的屏幕就无限大;当我们站起来远离电脑的时候,电脑的屏幕就无限变小。
如果我们不要perspective这个属性的话,那么你看到的就不再是一个矩形的旋转,而是一个矩形逐渐变窄,然后逐渐变宽,因为他没有透视(perspective)。
perspective属性的值是一个数字,他有2种实现方法:
1.transform: perspective(800);
2.perspective: 800;
perspective可以写在画布(父元素)上,也可以直接写在元素本身上,对于一张画布只有一个变型体的时候,几乎没有差别。但是当一个画布上 有多个变型体的时候,两种写法的差别立即就表现出来了。就像这张图,黄色的部分,perspective直接写在色块上,紫色的部 分,perspective写在了父容器上,以画布作为透视元素,所以子元素的形态都是不一样的。
perspective的值,则是决定3D变形效果的强度的,这个值大致可以理解为远近。只越大,你离物体就越远。就像一个离你很远的正方体(比如魔方)在做旋转,他的视觉效果就比较弱,但是如果这个魔方在你的眼前旋转,那么效果就比较强烈。
关于perspective-origin,是指设置元素被查看位置的视图:perspective-origin 属性定义 3D 元素所基于的 X 轴和 Y 轴。该属性允许您改变 3D 元素的底部位置。当为元素定义 perspective-origin 属性时,其子元素会获得透视效果,而不是元素本身,它是和perspective属性一起使用的,而且只影响 3D 转换元素。
希望可以帮到你~
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星