我刚刚接触transform的skew属性值时一头雾水,根本不知道种东西到底是咋变的。上网查,各个网站上也只说这个使用来做扭曲变换的,具体是咋变的就是不说。。。。无奈我只好自己研究了,现把研究结果共享一下。

首先说变换的时候坐标系是咋建的,如下图(transform-origin:0px 0px;)。

既然skew(...)的括号里放的是坐标轴旋转的角度,那么接下来说一下旋转正方向的问题。y轴顺时针转为正,X轴逆时针转为正。

之后图形就可以确定了,因为两轴的位置确定了,然后用仿射变换即可确定。

方法/步骤

  1. skew属性是个比较少用到的属性,至少我用的比较少。

    用的好的话会让你的网页烨烨生辉,用不好的话,则是一大败笔。

  2. 现在就具体的介绍skew的用法:

    语法:transform:skew(<angle> [,<angle>]);

    包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。

    skewX(<angle>);表示只在X轴(水平方向)倾斜。

    skewY(<angle>);表示只在Y轴(垂直方向)倾斜。

  3. 先放示例,效果如图:

  4. 现在我们来看参数为一个的情况:

    transform:skew(45deg);

    它等同于transform:skewX(45deg);

    可以看到demo标签向左倾斜45度,产生变形。

    之所以会产生变形的,这是因为我给元素限定了高度为300px,所以只要倾斜的角度不为180°的倍数,他都会保持着300的高度,同时为了保持倾斜,只能拉长本身。(围绕X轴倾斜,保持高度;围绕Y轴倾斜,保留宽度。)

    若倾斜解读为180的倍数,元素将不可见。

  5. 参数值为一个的第二种情况:

    transform:skewX(45deg);【这个步骤就不说了,上面以提到】

    transform:skewY(45deg);

    效果如下图

  6. 再看看参数为2个的情况:

    transform:skew(45deg,45deg);

    此时元素将不可见,但实际上它应当在我画的箭头处。

    其实根据步骤4和5可以发现,当Y轴倾斜45度后,元素有了一个45°的锐角,而此时又向X轴倾斜,于是这个锐角正好被压缩为0;于是形成了一个类似180°倍数的角。

  7. 通过修改X轴的倾斜度数为44度,可以发现元素还是会露出一部分的,跟我上面箭头画的位置存在疑点偏移。

  8. 8

    说明:目前skew无Z轴的倾斜,说不定以后会又该属性。

CSS3 transform的skew属性值图文详解的更多相关文章

  1. CSS属性:背景属性(图文详解)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. background系列属性 常见背景属性 CSS样式中,常见的背景属性 ...

  2. CSS属性:定位属性(图文详解)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. CSS的定位属性有三种,分别是绝对定位.相对定位.固定定位. posit ...

  3. CSS样式----CSS属性:字体属性和文本属性(图文详解)

    本文最初于2015-10-04发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 本文重要内容 CSS的单位 字体属性 文本属性 定 ...

  4. CSS基础之浮动属性float图文详解

      宏观地讲,我们的web页面的制作,是个“流”,必须从上而下,像“织毛衣”.   标准流里面的限制非常多,导致很多页面效果无法实现.如果我们现在就要并排.并且就要设置宽高,那该怎么办呢?办法是:超脱 ...

  5. <meta>标签中http-equiv属性的属性值X-UA-Compatible详解

    X-UA-Compatible是针对IE8新加的一个设置,对于IE8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  6. css 13-CSS3属性:Flex布局图文详解

    13-CSS3属性:Flex布局图文详解 #前言 CSS3中的 flex 属性,在布局方面做了非常大的改进,使得我们对多个元素之间的布局排列变得十分灵活,适应性非常强.其强大的伸缩性和自适应性,在网页 ...

  7. css3浏览器私有属性前缀使用详解

    什么是浏览器私有属性前缀 CSS3的浏览器私有属性前缀是一个浏览器生产商经常使用的一种方式.它暗示该CSS属性或规则尚未成为W3C标准的一部分. 以下是几种常用前缀 -webkit- -moz- -m ...

  8. HTML标签----图文详解

    国庆节快乐,还在加班的童鞋,良辰必有重谢! 本文主要内容 头标签 排版标签:<p>     <br>     <hr>     <center>     ...

  9. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

随机推荐

  1. jmeter之json数据参数化 断言等

    在 http Load Testing 中,json 数据的提交是个让人头疼的问题.本文详细介绍如何进行 JMeter 的 json 测试提交,以及如何将其参数化.Step 1 http json 请 ...

  2. SharePoint加K2,将Portal系统与BPM系统完美整合!

    K2 blackPearl与Microsoft Office SharePoint 一起为解决人员和流程相互合作的解决方案而提供一个强大的平台. K2“blackpearl”根据企业的需求提供了设计, ...

  3. Android中findViewById()获取EditText 空指针问题

    因为EditText editText = (EditText)layout.findViewById(R.id.input_content);是从Dialog对话框布局layout中寻找ID为inp ...

  4. C语言中的getchar和putchar详解

    首先给出<The_C_Programming_Language>这本书中的例子: #include <stdio.h> int main(){    int c;     c ...

  5. Android 自定义属性

    values新建一个attrs.xml<resource>    <declare-styleable name = "MyTextView">    &l ...

  6. ios上传应用后,审核流程完成前(reveiw)修改了程序内容,如何上传替换

    其实挺简单,只需要更改下version和build版本 看图说话就可以.我的程序之前版的版本设置 修改bug之后的设置: 然后重新打包就好了,提示打包成功后,在itunesconnect查看发现 选中 ...

  7. VS2013开发Android App 环境搭建

    下载并安装vs2013,(安装时发现多了with blend,百度后有人说是设计师用版本,这是不对的,害我花费不少时间查找程序员用版本).我安装的是Microsoft Visual Studio Ul ...

  8. 2013年7月份第3周51Aspx源码发布详情

    批量重命名文件工具源码  2013-7-19 [VS2010]功能介绍:这是一个新型的文件重命名,主要用了TreeView(树形视图)来选择文件夹,批量进行文件重命名.其中,有"编号在前,编 ...

  9. “java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp”

    最近在项目中使用hibernate查询时,总报错“java.sql.SQLException: Value '0000-00-00' can not be represented as java.sq ...

  10. MouseJack:利用15美元的工具和15行代码控制无线鼠标和键盘

    Bastille的研究团队发现了一种针对蓝牙键盘鼠标的攻击,攻击者可以利用漏洞控制你的电脑操作.研究团队将此攻击命名为MouseJack. 七大厂商皆中招 软件工程师马克纽林说:“利用假冒的无线电脑鼠 ...