transform-origin接受两个参数,它们可以是百分比,em,px等具体的值,也可以是left,center,right,或者 top,center,bottom等描述性参数,第一个参数表示X方向,第二个参数表示Y方向,但是,当用 left,right,center 来表示的时候,是不区分先后的!也就是说 left center 和 center left 是一回事。具体见下表:

    - top left | left top 等价于 0 0;
    - top | top center | center top 等价于 50% 0
    - right top | top right 等价于 100% 0
    - left | left center | center left 等价于 0 50%
    - center | center center 等价于 50% 50%(默认值)
    - right | right center | center right 等价于 100% 50%
    - bottom left | left bottom 等价于 0 100%
    - bottom | bottom center | center bottom 等价于 50% 100%
    - bottom right | right bottom 等价于 100% 100%
 
坑啊,今天第一次用CSS3 做3D 立方体,旋转的时候总是出错,后来看到了codepen 上的一个例子,研究了一下,总是不明白 transform-origin 这一点,后来仔细研究了下才发现不用考虑顺序……“左上角”也可以说“上左角”,“东南角”也可以说“南东角”。听着别扭,但意思一样。
codepen 的链接在这里:http://codepen.io/mirceageorgescu/pen/roblc
 
这个例子里还有一点让人困惑,就是 X Y Z 坐标系。之前一直以为坐标系是想三维建模软件里的世界坐标系一样不随着物体改变而改变,折腾了一整天立方体还是转不对。后来仔细研究下,发现坐标系是相对于元素自身的,也就是随着元素的旋转而旋转。X 指向右方,Y 指向下方,Z 指向前方。
 
第三点让人困惑的地方在于transform ,transform 中的属性是有先后顺序的。比如:transform: rotateY(180deg) translateZ(100px),表示,先沿Y轴旋转180度,然后向前(即元素的正面)移动100px;这一句和下面这句是相同效果:transform: translateZ(-100px) rotateY(180deg) ,这个表示,先向后面(元素的背面)移动100px,然后旋转180度。这两句的效果是相同的,但顺序不同让它们的值也不同。

transform-origin 的定位的更多相关文章

  1. CSS3中的transform

    CSS3 转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸. transform 在2D里主要是4个方法.除了rotate 其他都是接受x y值 translate skew rotate sca ...

  2. relative 和 absolute 定位关系

    问题: relative 和 absolute 之间的关系是什么?有什么区别? 那,答案呢? relative  相对定位, 以自己没有设置relative 属性之前的位置来定位,占用没有设置rela ...

  3. jquery.transform

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 如何让position fixed不再基于浏览器窗口定位

    position:fixed默认是相对浏览器定位的. 就是将某个元素固定在浏览器的某个确定的位置,不随滚动条的移动而变化: MDN对position: fixed有一个注释: 当元素祖先的 trans ...

  5. css之变形(transform)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 游戏编程模式 Game Programming Patterns (Robert Nystrom 著)

    第1篇 概述 第1章 架构,性能和游戏 (已看) 第2篇 再探设计模式 第2章 命令模式 (已看) 第3章 享元模式 (已看) 第4章 观察者模式 (已看) 第5章 原型模式 (已看) 第6章 单例模 ...

  7. Angular 学习笔记 (动态组件 & Material Overlay & Dialog 分析)

    更新: 2019-11-24  dialog vs router link refer : https://stackoverflow.com/questions/51821766/angular-m ...

  8. 移动Web利器transformjs入门

    简介 在过去的两年,越来越多的同事.朋友和其他不认识的童鞋进行移动web开发的时候,都使用了transformjs,所有必要介绍一下,让更多的人受益,提高编程效率,并享受编程乐趣.(当然transfo ...

  9. git 常用操作

    查看某文件的某些行的变化历史: $ git log --pretty=short -u -L 2003,2005:Executor.cpp http://stackoverflow.com/quest ...

  10. 【转】Styling And Animating SVGs With CSS

    原文转自:http://www.smashingmagazine.com/2014/11/03/styling-and-animating-svgs-with-css/?utm_source=CSS- ...

随机推荐

  1. 如何用好消息推送(JPush)为app拉新、留存、促活

    如何用好消息推送(JPush)为app拉新.留存.促活 作为移动端APP产品运营最重要的运营手段,消息推送(JPush)被越来越多的APP厂商所重视,在信息泛滥的移动互联网时代,手机APP应用安装得越 ...

  2. JAVA-FTP批量大文件传输

    FTP的具体使用      FTP是一种网络协议,用于进行不同服务器主机之间的文件传输,或者简单地说两台不同IP的机器之间的文件传输.在java中我们什么时候需要用到FTP文件传输呢?比如两台服务器的 ...

  3. SpringBoot之旅 -- SpringBoot 项目健康检查与监控

    前言 You build it,You run it, 当我们编写的项目上线后,为了能第一时间知晓该项目是否出现问题,常常对项目进行健康检查及一些指标进行监控. Spring Boot-Actuato ...

  4. java异常详解

    java异常需要弄清楚如下几个问题: 1.java异常的层次结构 2.搞清楚问题:java中异常抛出后代码还会继续执行吗? 答:该问题可以参考该博文,完美的回答了我的疑惑:http://www.cnb ...

  5. [SQL] SQL 基础知识梳理(七)- 集合运算

    SQL 基础知识梳理(七)- 集合运算 目录 表的加减法 联结(以列为单位) 一.表的加减法 1.集合:记录的集合(表.视图和查询的执行结果). 2.UNION(并集):表的加法 -- DDL:创建表 ...

  6. BootStrap入门教程 (二)

    文本转自 http://www.cnblogs.com/ventlam/archive/2012/05/29/2520807.html 上讲回顾:Bootstrap的手脚架(Scaffolding)提 ...

  7. ATS来了,网页HTTP访问怎么办?

    推荐理由 ATS(App Transport Security),是苹果在WWDC 15提出的,苹果将收紧http的访问,这样会造成我们周边的许多站点和应用均不能正常访问,这里就对ATS进行了简单分析 ...

  8. java入门了解02

    1:JDK,JRE,JVM的作用关系    (一)作用            JVM:提供java跨平台            JRE:java运行环境            JDK:java开发环境 ...

  9. ceph集群安装

    所有 Ceph 部署都始于 Ceph 存储集群.一个 Ceph 集群可以包含数千个存储节点,最简系统至少需要一个监视器和两个 OSD 才能做到数据复制.Ceph 文件系统. Ceph 对象存储.和 C ...

  10. Hadoop/Spark开发环境配置

    修改hostname bogon 为localhost 查看ip地址 [training@bogon ~]$ sudo hostname localhost [training@bogon ~]$ h ...