专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

css 倾斜:skew()_CSS学习

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/4 1:06:06       共计:3597 浏览

在CSS3中,我们可以使用transform属性的skew()方法来实现元素的倾斜效果。

语法:

transform: skewX(x);        /*沿X轴方向倾斜*/transform: skewY(y);        /*沿Y轴方向倾斜*/transform: skew(x, y);       /*沿X轴和Y轴同时倾斜*/

说明:

跟translate()、scale()方法类似,倾斜也有3种情况:skewX()、skewY()、skew()。

参数x表示元素在x轴方向的倾斜度数,单位为deg(即degree的缩写)。如果度数为正,则表示元素沿下x轴方向逆时针倾斜;如果度数为负,则表示元素沿x轴方向顺时针倾斜。

参数y表示元素在y轴方向的倾斜度数,单位为deg。如果度数为正,则表示元素沿y轴方向顺时针倾斜;如果度数为负,则表示元素沿y轴方向逆时针倾斜。

对于倾斜的方向,我们不需要去记忆,因为在实际开发中,稍微测试一下就知道了。

举例:skewX(x)

在线测试<!DOCTYPE html><html><head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        /*设置原始元素样式*/
        #origin
        {            width:200px;            height:100px;            border:1px dashed gray;
        }        /*设置当前元素样式*/
        #current
        {            width:200px;            height:100px;            color:white;            background-color: lightskyblue;            transform:skewX(30deg);
        }    </style></head><body>
    <div id="origin">
        <div id="current"></div>
    </div></body></html>

浏览器预览效果如下图所示。

分析:

transform:skewX(30deg);表示元素沿x轴方向逆时针倾斜30°。如果把30°改为-30°,则元素会沿x轴方向顺时针倾斜30°,此时预览效果如下图所示。

实际上,transform:skewX(30deg);其实可以等价于transform:skew(30deg, 0);,小伙伴们可以自行测试一下。此外在实际开发中,如果忘了究竟什么时候顺时针倾斜,什么时候逆时针倾斜,只需要稍微写一小段代码测试一下就知道了。

对于初学者来说,可能一时半会看不出skewX()方法是怎么一回事。其实skewX()方法的变形原理是这样的:由于元素限定了高度为100px,而skewX()方法是沿着x轴方向倾斜的。因此只要倾斜角度不超过180°,元素都会保持100px的高度,同时为了保持倾斜,元素只能沿着x轴方向拉长本身。

举例:skewY(y)

在线测试<!DOCTYPE html><html><head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        /*设置原始元素样式*/
        #origin
        {            width:200px;            height:100px;            border:1px dashed gray;
        }        /*设置当前元素样式*/
        #current
        {            width:200px;            height:100px;            color:white;            background-color: lightskyblue;            transform:skewY(30deg);
        }    </style></head><body>
    <div id="origin">
        <div id="current"></div>
    </div></body></html>

浏览器预览效果如下图所示。

分析:

transform:skewY(30deg);表示元素沿y轴方向顺时针倾斜30°。如果把30°改为-30°,则元素会沿y轴方向逆时针倾斜30°,此时预览效果如下图所示。

实际上,transform:skewY(30deg);其实可以等价于transform:skew(0, 30deg);,小伙伴们可以自行测试一下。

举例:skew(x, y)

在线测试<!DOCTYPE html><html><head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
        /*设置原始元素样式*/
        #origin
        {            width:200px;            height:100px;            border:1px dashed gray;
        }        /*设置当前元素样式*/
        #current
        {            width:200px;            height:100px;            color:white;            background-color: lightskyblue;            transform:skew(10deg, 20deg);
        }    </style></head><body>
    <div id="origin">
        <div id="current"></div>
    </div></body></html>

浏览器预览效果如下图所示。

分析:

transform:skew(10deg, 20deg);表示元素同时在x轴和y轴两个方向倾斜,x轴方向逆时针倾斜10°,y轴方向顺时针倾斜20°。如果把10deg改为-10deg,20deg改为-20deg,此时预览效果如下图所示。

实际上,transform:skew(10deg, 20deg);其实可以等价于以下代码:

transform:skewX(10deg);transform:skewY(20deg);


版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:CSS背景图片样式:background-image_CSS学习 | ·下一条:css 旋转:rotate()_CSS学习

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有