CSS入坑之三

关于css 3d

rotateX rotateY rotateZ 都是3d方面的属性,rotateX表示元素以X轴为旋转轴来旋转。(轴从左往右插入元素默认中心),rotateY表示以Y轴为轴来旋转。rotateZ表示以z轴为轴来旋转(又屏幕往里插入元素默认中心)。屏幕是x轴和Y轴构成的二维平面,通常情况下,我们的能看到的都只能在这个平面,所以,当一个矩形rotateX(45deg)的时候,它上部分低于屏幕平面,下部分高于屏幕平面,从而我们看到的只是它旋转后在屏幕平面的投影,这个“压缩”后的面积可以通过勾股定理算出来(实际上还要结合视锥来算,近大远小)。

perspective 透视点(视点),大概含义就是镜头的到屏幕屏幕的距离。有说法是他的默认距离是2000px .通过perspective可以调整这个默认距离,如果一正方形边长200px,rotateX(45deg),perspective设置为200/根号2 ,那么正方形的底边刚好接触到“视点平面”,视点平面可以认为是设置了perspective了的父元素。

 .box {
     margin: 0 auto;
        height: 200px;
        width: 200px;
        overflow: hidden;
        perspective: 1410px;
        .box-a {
          text-align: center;
          transform: rotateX(45deg) translateZ(0px);
          float: left;
          height: 200px;
          width: 200px;
          background-size: 100% 100%;
          background-image: url("image/Bantou.jpg");
          h1 {
            position: absolute;
            width: 100px;
            left: ~'calc(50% - 50px)';
            bottom: 0px;
            padding: 0;
            color: #3bf0f3;
          }
        }
        .box-b {
          height: 200px;
          width: 200px;
          background-color: @blue-500;

        }

translateX 改变元素每个点的X坐标,同理translateZ改变元素Z坐标的“深浅”,使元素远离本来的屏幕平面,正就是凸出来,负值就是塌下去,近大远小。如果translateZ的值超过perspective的值,就是跑到视点后面了,这就元素就显示不到了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、写在前面的秋裤 早在去年的去年,我就大肆介绍了2D transform相关内容。看过海贼王的都知道,带D的家伙...
    MrZengB阅读 1,377评论 2 9
  • 看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印象,因...
    DCbryant阅读 1,906评论 0 4
  • 当我看到下面这张基本图的时候,我的右侧的浓眉毛不由自主抖动了两下,呵,呵呵~~ rotateY( angle ) ...
    追風逸少丶阅读 1,551评论 0 3
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,357评论 0 11
  • CSS里transform变形这个属性有点学习难度,尤其在CSS3里加上了3D效果之后,2维变3维学习成本更是成倍...
    张歆琳阅读 28,089评论 5 81