CSS学习笔记 07、2D与3D转换(一)

简介: CSS学习笔记 07、2D与3D转换(一)

一、2D变形


1.1、旋转变形


transform: rotate(度数)-旋转角度,默认中心点旋转

介绍


含义:将transform属性的属性的值设置为rotate(),即可实现旋转变形。


语法:transform: rotate(度数)。角度正的顺时针旋转,负的逆时针旋转。饶中心点进行旋转。



demo



<style>
    * {
        padding: 0px;
        margin: 0px;
    }
    img {
        border: 1px solid #000;
    }
    /* 正数都是正向旋转,360d°表示旋转一整圈 */
    img.img1 {
        transform: rotate(30deg);
    }
    img.img2 {
        transform: rotate(60deg);
    }
    img.img3 {
        transform: rotate(90deg);
    }
    img.img4 {
        transform: rotate(180deg);
    }
    img.img5 {
        transform: rotate(359deg);
    }
</style>
<body>
    <p>
        <img src="./elves.jpg" alt="" class="img1">
        30°
    </p>
    <p>
        <img src="./elves.jpg" alt="" class="img2">
        60°
    </p>
    <p>
        <img src="./elves.jpg" alt="" class="img3">
        90°
    </p>
    <p>
        <img src="./elves.jpg" alt="" class="img4">
        180°
    </p>
    <p>
        <img src="./elves.jpg" alt="" class="img5">
        359°
    </p>
</body>



transform-origin属性(定义旋转点)

介绍


含义:若是不使用该属性,默认是以元素的中心为旋转点。


语法:transform-origin: 0px,0px,第一个参数是x轴,第二个参数是y轴,从元素的左上角开始。


通过定义x轴、y轴来进行确定旋转点:




演示


将旋转点设置为左上角:transform-origin: 0 0;,接着配合transform: rotate属性来进行测试



<style>
    * {
        padding: 0px;
        margin: 0px;
    }
    p {
        height: 80px;
        width: 1000px;
        border: 1px solid #000;
        text-align: center;
        margin-top: 50px;
    }
    img {
        border: 1px solid #000;
    }
    /* 正数都是正向旋转,360d°表示旋转一整圈 */
    img.img1 {
        transform-origin: 0 0;
        transform: rotate(30deg);
    }
</style>
<body>
    <p>
        <img src="./elves.jpg" alt="" class="img1">
    </p>
</body>



1.2、缩放变形


transform: scale(数字)-缩小与放大

介绍


含义:能够指定的属性进行缩小与放大。


语法:transform: scale(3)。其中的数字没有单位,指的是缩放倍数,当数值小于1时,表示缩放元素;大于1时,表示放大元素。



demo1:演示缩小与放大效果



<style>
    * {
        padding: 0px;
        margin: 0px;
    }
    p {
        text-align: center;
        margin-top: 30px;
    }
    img.img2 {
        /* scale:指的是规模的意思。这里缩小为0.5倍 */
        transform: scale(.5);
    }
    img.img3 {
        /* 这里放大为1.5倍 */
        transform: scale(1.5);
    }
</style>
<body>
    <p>
        <img src="./elves.jpg" alt="" class="img1">
        <img src="./elves.jpg" alt="" class="img2">
        <img src="./elves.jpg" alt="" class="img3">
    </p>
</body>




demo2:触碰放大1.5倍


<style>
    * {
        padding: 0px;
        margin: 0px;
    }
    p {
        text-align: center;
        margin-top: 30px;
    }
    /* 图片被触碰时放大1.5倍 */
    img:hover {
        transform: scale(1.5);
    }
</style>
<body>
    <p>
        <a href=""> <img src="./elves.jpg" alt="" class="img1"></a>
    </p>
</body>



1.3、斜切变形


transform: skew(角度,角度)

介绍


含义:左右斜切与上下斜切。


语法:transform: skew(角度,角度)。(skew是斜的意思)第一个参数是横向扭曲,第二个参数是竖向扭曲。



demo



<style>
    * {
        padding: 0px;
        margin: 0px;
    }
    p {
        text-align: center;
        margin-top: 30px;
    }
    img {
        width: 100px;
        height: 100px;
        transform: skew(0deg, 0deg);
    }
</style>
<body>
    <p>
        <a href=""> <img src="./elves.jpg" alt="" class="img1"></a>
    </p>
</body>



1.4、位移变形


transform:translate(px,px)

介绍


含义:实现元素进行位移,与相对定位的效果一致,兼容性比相对定位差,兼容到IE9。


语法:transform:translate(px,px)。第一个参数向右移动,第二个参数向下移动。


与相对定位非常想,位移变形也会"老家留坑",效果显示在指定位置。


demo



<style>
    * {
        padding: 0px;
        margin: 0px;
    }
    div.box1 {
        width: 100px;
        height: 100px;
        border: 1px solid #000;
        background-color: red;
    }
    div.box2 {
        width: 100px;
        height: 100px;
        border: 1px solid #000;
        background-color: blue;
        /* 位移变形 */
        transform: translate(200px, 0px);
        /* 使用外边距也会影响其他元素 */
        margin-bottom: 20px;
    }
    div.box3 {
        width: 100px;
        height: 100px;
        border: 1px solid #000;
        background-color: yellow;
    }
</style>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</body>


相关文章
|
30天前
|
前端开发 JavaScript API
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
本文通过构建一个 3D 翻卡动画深入探讨了 CSS Houdini 的强大功能,展示了如何通过 Worklets、自定义属性、Paint API 等扩展 CSS 的能力,实现高度灵活的动画效果。文章首先介绍了 Houdini 的核心概念与 API,并通过构建一个动态星空背景、圆形进度条以及交互式 3D 翻卡动画的实际示例,展示了如何利用 CSS Houdini 赋予网页设计更多创造力。最后,还演示了如何将这种 3D 翻卡效果集成到公司网站中,提升用户体验。CSS Houdini 的创新能力为网页设计带来了前所未有的灵活性,推动了前端开发迈向新的高度。
26 0
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
|
2月前
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
3月前
|
前端开发
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
|
5月前
|
前端开发 JavaScript UED
CSS进阶-3D变换与透视效果
【6月更文挑战第15天】CSS3的3D变换和透视效果增强了网页的深度感。通过`rotateX/Y/Z`旋转和`translateZ`移动,结合`perspective`属性可创建3D空间。`perspective`定义观察者与Z轴的距离,影响元素的缩放感。常见问题包括过度失真和元素遮挡顺序,可通过调整`perspective`值和使用`z-index`解决。进阶技巧涉及层叠上下文理解和3D卡片翻转效果,通过实践与探索,设计师能更好地利用这些工具创新用户体验。
105 6
|
4月前
|
前端开发 JavaScript
【HTML+CSS+JavaScript】3d-boxes-background
【HTML+CSS+JavaScript】3d-boxes-background
34 0
|
4月前
|
前端开发 JavaScript
前端 CSS 经典:3D Hover Effect 效果
前端 CSS 经典:3D Hover Effect 效果
50 0
|
4月前
|
前端开发 JavaScript
前端 CSS 经典:3D 渐变轮播图
前端 CSS 经典:3D 渐变轮播图
106 0
|
前端开发
web前端之CSS3(3):2D和3D转换
CSS3 转换可以可以对元素进行移动、缩放、转动、拉长或拉伸。 2D 转换 以下列出了所有的转换属性:

热门文章

最新文章