首页 > 其他分享 >perspective和transform系列属性

perspective和transform系列属性

时间:2024-08-27 21:16:24浏览次数:5  
标签:style 元素 transform perspective 3D 属性

在CSS3中,确实有一些属性可以用来创建3D效果和调整景深。主要的属性包括perspectivetransform系列属性。下面分别介绍这些属性的使用方法和使用场景。

perspective

perspective属性用于为3D空间中的元素设置景深。它决定了观察者与元素之间的距离,从而影响3D变换的透视效果。

语法

.parent {
    perspective: 1000px;
}

使用场景

perspective通常用于3D效果,比如旋转、缩放和倾斜等变换。通过调整perspective值,可以模拟更逼真的3D场景。较小的值会导致更强烈的透视效果,而较大的值会产生较为平缓的效果。

transformtransform-style

transform属性允许你对元素进行2D或3D转换。你可以使用它来移动、旋转、缩放和倾斜元素。而transform-style属性决定了子元素是否在3D空间中保留其位置。

语法

.element {
    transform: rotateY(45deg);
    transform-style: preserve-3d;
}

使用场景

  • transform: 当你需要对元素进行2D或3D变换时使用,比如旋转、缩放、平移等。
  • transform-style: 当你需要嵌套的子元素也参与3D变换时使用。preserve-3d值使得子元素保留其3D位置,而默认值flat则会忽略3D效果。

perspective-origin

perspective-origin属性用于设置3D效果的原点,默认值是元素的中心点。

语法

.parent {
    perspective-origin: left top;
}

使用场景

用于调整观察者的视角,改变透视效果的消失点。

综合使用示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>3D Transformations</title>
    <style>
        .container {
            perspective: 1000px;
            perspective-origin: center;
        }

        .box {
            width: 100px;
            height: 100px;
            background-color: red;
            transform-style: preserve-3d;
            transform: rotateY(45deg);
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="box"></div>
    </div>
</body>
</html>

在这个示例中,.container设置了perspective属性来定义3D效果的景深。.box通过transform属性进行3D旋转,并且使用transform-style: preserve-3d使其子元素(如果有)也保持3D效果。

区别总结

  1. perspective主要用于设置观察者与元素之间的距离,从而影响3D变换的透视效果。
  2. transform用于对元素进行具体的2D或3D变换,如旋转、缩放、移动等。
  3. transform-style决定子元素是否在3D空间中保留其位置。

希望这些信息能够帮助你理解和使用CSS3中的3D效果和景深配置。

标签:style,元素,transform,perspective,3D,属性
From: https://www.cnblogs.com/zsnhweb/p/18383565

相关文章

  • C++学习随笔——算法transform和lambda的用法
    std::transform是一个常用的STL算法,用于对序列中的每个元素进行操作,并将结果存储在另一个序列中。lambda表达式是一种匿名函数,可以在需要传递函数作为参数的场景中使用,比如在std::transform中。语法://一元操作std::transform(InputIterator1first1,InputIterator1la......
  • threeJs 修改TransformControls的显示位置
    有的时候模型的原点不是自身中心而是在场景的[0,0,0]位置这个时候想要让TransformControls的位置显示在模型的中心目前找的的处理方式是修改源码找到updateMatrixWorld方法updateMatrixWorld(){...for(leti=0;i<handles.length;i++){ ... if(this......
  • 简单的qml 属性浏览器
    简单的qml属性浏览器Githubqt-quick-qml-property-browser有用的话点个star基于quick2TableView实现,主要思想是根据modeltyperole的数据确认该项的类型,使用Loader分类别加载对应类型的组件(string、int、double、bool和enum)。我知道在Qt.labs.qmlmodels中有更好的......
  • C# 类(二)——成员:属性、方法、事件
    目录1、类的成员2、字段(field)3、属性(property)4、方法(method)5、事件(event)1、类的成员类具有表示其数据和行为的成员。类的成员包括在类中声明的所有成员,以及在该类的继承层次结构中的所有类中声明的所有成员(构造函数和析构函数除外)。基类中的私有成员被继......
  • Transformer
    Transformer八股目录Transformer八股Self-Attention的注意力分数计算公式为什么要进行scaling?为什么是\(\sqrt{d_k}\)?PositionEmbeddingTransformer位置编码的性质Self-Attention的注意力分数计算公式\[score=Softmax(\frac{QK^T}{\sqrt{d_k}})\]为什么要进行scaling?当......
  • 语言图像模型大一统!Meta将Transformer和Diffusion融合,多模态AI王者登场
    前言 就在刚刚,Meta最新发布的Transfusion,能够训练生成文本和图像的统一模型了!完美融合Transformer和扩散领域之后,语言模型和图像大一统,又近了一步。也就是说,真正的多模态AI模型,可能很快就要来了!欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读......
  • Transformer作者预警:只卖模型玩不过OpenAI!
    前言 只卖模型真的不赚钱!欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。本文转载自量子位仅用于学术分享,若侵权请联系删除CV方向的准研究生们,未来三年如何度过?招聘高光谱图像、语义分割、diffusion等方向论文指导老师谷......
  • LaViT:Less-Attention Vision Transformer的特性与优点
    引言https://arxiv.org/pdf/2406.00427随着计算机视觉领域的发展,视觉Transformer(ViTs)逐渐成为一项重要技术。尽管ViTs在捕捉图像中的长距离依赖关系方面表现出色,但其沉重的计算负担和潜在的注意力饱和问题一直是实际应用的障碍。为解决这些问题,微软提出了Less-AttentionV......
  • 【CSS】从零开始学CSS第二篇:字体属性、文本属性、引入方式
    目录CSS字体属性1.1字体系列1.2字体大小1.3字体粗细1.4文字样式1.5字体复合属性1.6字体属性总结CSS文本属性2.1文本颜色2.2对齐文本2.3装饰文本2.4文本缩进2.5行间距2.6文本属性总结 CSS引入方式3.1CSS的三种样式表3.2内部样式表3.3行内......
  • JS实现对象只复制已存在的属性
    JavaScript实现只复制已存在属性的笔记在JavaScript中,如果需将一个对象的属性复制到另一个对象中,但只复制目标对象中已经存在的属性,可以使用以下几种方法:1.手动遍历属性通过遍历source对象的属性,并判断target对象中是否存在对应属性,决定是否进行复制。constsource=......