浅谈css perspective属性和perspective()函数的异同点

css perspective属性perspective()函数间有什么差异?本篇文章带大家简单对比一下perspective属性和perspective()函数,了解一下它们间的异同点。

浅谈css perspective属性和perspective()函数的异同点

perspective

透视属性perspective 用于激活元素上的三维空间,以便其子元素可以定位在该空间中。

它允许您通过使 z 轴上较高的元素(靠近观察者)显得更大,而远离的元素显得更小,从而为场景添加深度感。

1.gif

立即学习“前端免费学习笔记(深入)”;

此图像中的蓝色圆圈表示三维空间中的一个元素。 字母 d 表示透视值,即观察者眼睛与屏幕之间的假定距离。 字母 Z 表示元素在 z 轴上的位置。 元素在 z 轴上越远,相对于观察者的外观越小,越近,看起来越大。 这就是立体空间中透视的效果。

在不指定透视的情况下,使用三维变换函数变换的元素将看起来是平面和二维的。

透视属性perspective 与 CSS 变换 transforms 结合使用。 它需要一个长度值或关键字 none。 将此属性与 none 以外的任何值一起使用可建立堆叠上下文。 它还建立了一个包含块(有点类似于 position:relative),就像 transform 属性所做的那样。

下图显示了在指定和不指定透视的情况下在三维空间中变换(旋转)一个元素的结果。

2.gif

使用 rotateY() 函数将图像在 y 轴上旋转 50 度。 左边的图像显示了在指定透视的情况下应用旋转的结果,右边的图像显示了没有透视的相同变换。 在右边的图像中,变换看起来是平面和二维的,因为没有触发三维空间。

默认情况下,3D 空间的消失点(vanishing point)位于中心。 (它可以使用透视原点属性 perspective-origin进行更改。)

官方语法

声明:

perspective: none | 

初始值:none适用于:transformable elements动画: 可以,作为长度

值(Values)

none

没有应用透视,因此没有触发三维空间。

指定观察者和 z=0 平面之间的假定距离。它用于计算透视矩阵,使之将透视变换应用于元素及其内容。如果设置为零,则不应用透视。不允许使用负值。有关可能值的列表,请参阅 条目。

例子

下面设置一个元素的透视图,该元素的子元素在由透视属性触发的三维空间中转换:

.container {    perspective: 1800px;}.container .child {    float: left;    margin: 50px;    transform: translateZ(-50px) rotateY(45deg);}

在线 Demo

可以在 3D 形状(例如立方体)上最好地展示元素的透视效果。

在这个演示中,存在三个相同的立方体,都具有相同的变换。他们每个都有不同的视角集。尝试更改透视的值以查看场景深度如何变化。

透视值越高,效果越弱,透视值越低,效果越强。

因为掘金不支持引进 iframe 预览, 预览效果见 codepen css perspective demo

3.gif

perspective vs perspective()

当你有一个元素想要在 3D 空间中转换时,你可以使用它的父元素的透视属性 perspective 激活该空间,或者使用转换元素本身的透视函数 perspective()。 那么这两种方式有什么区别呢?

透视属性 perspective 和透视函数 perspective() 都用于通过使 z 轴上较高(靠近观察者)的元素显得更大,使远离的元素显得更小来赋予元素深度。值越小,z-pane离观察者越近,效果越令人印象深刻;值越高,元素离屏幕越远,效果越微妙。

当您使用透视函数 perspective() 将透视应用于元素时(有关其工作原理的详细信息,请参阅变换属性条目 transform),您仅在该元素上激活了三维空间。 在对单个元素应用三维变换时,perspective() 表示法很方便。但是当你在一个容器中有多个转换的元素时,如果每个元素都使用透视函数 perspective() 设置了一个透视图,元素不会按预期排列。这是因为它们每个都有自己的三维空间,因此也有自己的消失点。为了避免这种情况并允许元素对齐,它们应该共享相同的空间。通过使用父容器上的透视属性 perspective,创建一个由其所有子元素共享的三维空间,这些子元素都将使用 3 维变换进行变换。

下图显示了在容器上触发一个三维空间的结果,容器的孩子在该空间中旋转(左),以及使用透视函数 perspective() 在每个项目上触发一个三维空间的结果(右):

4.gif

参考翻译

本文主要参考翻译自:

https://tympanus.net/codrops/css_reference/perspective/

但因为原文有些太啰嗦,章节及目录均有所调整。

原文地址:https://juejin.cn/post/6978259550881677349

更多编程相关知识,请访问:编程视频!!

以上就是浅谈css perspective属性和perspective()函数的异同点的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1620636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 07:12:27
下一篇 2025年12月24日 07:12:33

相关推荐

  • css怎么去掉左边边框

    在css中,可以利用border-left-style属性来去掉左边边框,该属性可以设置元素左边框样式;只需要给指定的边框元素设置“border-left-style:none;”样式即可去掉左边边框。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电…

    2025年12月24日
    000
  • css怎么设置权重

    在css中,可以使用“!important”语句来设置权重,该语句为开发者提供了一个增加样式权重的方法;语法格式“属性:属性值 !important;”。“!important”语句是对整条样式的声明,包括这个样式的属性和属性值。 本教程操作环境:windows7系统、CSS3&&H…

    2025年12月24日 好文分享
    000
  • css怎么实现不可点击功能样式

    实现方法:1、直接给元素添加“pointer-events:none;”样式来禁止触发事件,实现不可点击。2、先给元素添加“cursor:not-allowed;”样式;然后使用js代码阻止点击事件的触发,实现不可点击。 本教程操作环境:windows7系统、CSS3版、Dell G3电脑。 鼠标不…

    2025年12月24日 好文分享
    000
  • css怎么设置侧边栏

    css设置侧边栏的方法:首先创建一个HTML示例文件;然后在body中设置导航栏内容;最后通过设置css样式为“#sidemenu:checked + aside {left: 0;}…”来实现侧边栏效果即可。 本文操作环境:windows7系统、HTML5&&CSS3版…

    2025年12月24日
    000
  • css怎么实现六边形

    css实现六边形的方法:1、将3个p组合在一起,其中包括2个等腰三角形和一个长方形;2、通过将3个长方形旋转不同角度得到正六边形。 本文操作环境:windows7系统、HTML5&&CSS3版、Dell G3电脑。 css怎么实现六边形? 最近在写一个蜂窝式布局,所以研究了一下六边形…

    2025年12月24日 好文分享
    000
  • 深入浅析css text-emphasis属性,看看它的用法!

    本篇文章带大家了解一下css text-emphasis属性,通过几个实例来介绍一下text-emphasis属性的使用方法。 就一般而言,我们所做的页面并非对于文学类用户,因此也不太可能会接触到“着重号”这个符号。如果对于 word 不陌生的朋友应该会知道在 word 中有一个文本设置,就是设置“…

    2025年12月24日 好文分享
    000
  • css如何解决高度不一致问题

    css解决高度不一致的方法:1、给input加上“box-sizing: border-box;”;2、给button加上“box-sizing: content-box;”。 本文操作环境:windows7系统、HTML5&&CSS3版、Dell G3电脑。 css如何解决高度不一…

    2025年12月24日
    000
  • css内边距是什么

    css内边距是指元素边框与元素内容之间的空白区域。控制该区域的是padding、padding-top、padding-right、padding-bottom、padding-left属性;它们接受长度值或百分比值,但不允许使用负值。 本教程操作环境:windows7系统、CSS3版、Dell G…

    2025年12月24日
    000
  • css字体溢出怎么隐藏

    css中可以利用overflow属性来实现字体溢出隐藏效果,只需要给包裹字体的标签元素添加“overflow: hiddden;”样式即可。overflow属性用于控制内容溢出元素框时发生的事情,当值设置为“hidden”时溢出部分不可见。 本教程操作环境:windows7系统、CSS3&&…

    2025年12月24日 好文分享
    000
  • 值得收藏的26个css面试题,增强你的CSS基础!

    css在网页设计中非常流行,可以减少结构内容中的复杂性和重复。本篇文章给大家分享26个基于css的面试题,可以增强你的css基础,快来学习吧。 (学习视频分享:css视频教程) CSS是层叠样式表( Cascading Style Sheets )的缩写,是一种样式表语言,用于描述以 HTML 之类…

    2025年12月24日
    000
  • css中怎么设置table边框的颜色

    css中设置table边框颜色的方法是,给table边框添加border-color属性,并且根据需要设置table边框的颜色即可,例如【border-color:#ff0000 #0000ff;】。 本文操作环境:windows10系统、css 3、thinkpad t480电脑。 在工作中我们常…

    2025年12月24日
    000
  • css怎么将文本框设置为只读

    css将文本框设置为只读的方法是,在input文本框中添加readonly属性即可。readonly属性是一个布尔属性,该属性用来规定输入字段是只读的。 本文操作环境:windows10系统、css 3、thinkpad t480电脑。 readonly属性是HTML中的一个布尔属性,该属性用来规定…

    2025年12月24日
    000
  • css如何清除input默认样式

    css清除input默认样式的方法是,将input的各个属性的属性值设置为none即可,例如【background:none;outline:none;border:none;】。 本文操作环境:windows10系统、css 3、thinkpad t480电脑。 如果我们要清除input的默认样式…

    2025年12月24日
    000
  • 你可能不了解的CSS容器查询!!

    在前端开发中经常需要按不同屏幕尺寸来进设计达到PC和移动端响应式。我们一般使用CSS媒体查询来检测视口宽度或高度,然后根据该模式改变设计。 这就是在过去10年中设计Web布局的方式。 CSS容器查询,一个长期以来被web开发者要求的特性,很快就会出现在CSS中,在最新的 Chrome Canary …

    2025年12月24日 好文分享
    000
  • 在css中什么是行高

    在CSS中,行高是指包括内容区与以内容区为基础对称拓展的空白区域,也可以认为是相邻文本行基线间的垂直距离。行高可以利用line-height属性来设置,该属性不允许使用负值。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。 行高是包括内容区与以内…

    2025年12月24日 好文分享
    000
  • css怎么选择奇偶行元素

    在css中,可以利用“:nth-child(n)”选择器来进行奇偶匹配,选择奇偶行元素;该选择器的参数n可以是数字、关键词或公式,设置n为“Odd”或者“even”关键词即可匹配下标是奇数或偶数的子元素。 本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3…

    2025年12月24日 好文分享
    000
  • css如何换行

    在css中通过word-break与white-space这两个属性来设置自动换行,其中word-wrap属性允许长单词或URL地址换行到下一行;而white-space属性可以设置文本换行方式。 本文操作环境:windows7系统、css3版、Dell G3电脑。 css如何换行? css使容器放…

    2025年12月24日
    000
  • css怎么设置li不要点

    css设置li不要点的方法:1、找到相关性的CSS并在“.li”和“.ul”下写入“list-sytle:none;”;2、在head部分写入“list-style:none;”。 本文操作环境:windows7系统、css3版、Dell G3电脑。 css怎么设置li不要点? 标签是很多人做网站都…

    2025年12月24日
    000
  • css文件怎么引入

    引入css文件的方法:1、行内式方法引入,在标记的style属性中设定CSS样式;2、嵌入式方法引入,将CSS样式集中写在网页的style标签中;3、使用link引用外部CSS文件;4、使用@import引用外部CSS文件。 本文操作环境:windows7系统、HTML5&&CSS3…

    2025年12月24日
    000
  • css应该怎么设置超链接样式

    css设置超链接样式的方法是,给超链接添加伪类,例如【a:visited {color:#00FF00;}】。【a:visited】表示用户已经访问过的链接。 本文操作环境:windows10系统、css 3、thinkpad t480电脑。 如果我们要设置超链接的样式,其实是可以使用任何一个css…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信