第101天:CSS3中transform-style和perspective

简介: 一、transform-style1、transform-style属性是3D空间一个重要属性,指定嵌套元素如何在3D空间中呈现。有两个属性值:flat和preserve-3d。transform-style属性的使用语法非常简单: transform-style: flat | preserve-3d其中flat值为默认值,表示所有子元素在2D平面呈现。

一、transform-style

1、transform-style属性是3D空间一个重要属性,指定嵌套元素如何在3D空间中呈现

有两个属性值:flatpreserve-3d

transform-style属性的使用语法非常简单: transform-style: flat | preserve-3d

其中flat值为默认值,表示所有子元素在2D平面呈现。

2、preserve-3d表示所有子元素在3D空间中呈现。

  如果对一个元素设置了transform-style的值为flat,则该元素的所有子元素都将被平展到该元素的2D平面中进行呈现。沿着X轴或Y轴方向旋转该元素将导致位于正或负Z轴位置的子元素显示在该元素的平面上,而不是它的前面或者后面。如果对一个元素设置了transform-style的值为preserve-3d,它表示不执行平展操作,他的所有子元素位于3D空间中。

二、perspective属性

perspective属性对于3D变形来说至关重要。该属性会设置查看者的位置,并将可视内容映射到一个视锥上,继而投到一个2D视平面上。如果不指定透视,则Z轴空间中的所有点将平铺到同一个2D视平面中,并且变换结果中将不存在景深概念。

其实对于perspective属性,我们可以简单的理解为视距,用来设置用户元素3D空间Z平面之间的距离。而其效应由他的值来决定,值越,用户与3D空间Z平面距离越,视觉效果更令人印象深刻;反之,值越大,用户与3D空间Z平面距离越远,视觉效果就很小。 在3D变形中,对于某些变形,例如下面的示例演示的沿Z轴的变形,perspective属性对于查看变形的效果来说必不可少。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>3d</title>
 6     <style>
 7         .out{
 8             width: 500px;
 9             height: 500px;
10             border: 1px solid #000;
11             background-color: pink;
12             margin:100px auto;
13             transform: rotateY(60deg);
14             /*可以让里面的盒子保持3d效果,加给父盒子*/
15             transform-style: preserve-3d;
16         }
17         .in{
18             width: 300px;
19             height: 400px;
20             margin: 50px auto;
21             background-color: green;
22             transform: rotateX(130deg);
23         }
24     </style>
25 </head>
26 <body>
27     <div class="out">
28         <div class="in"></div>
29     </div>
30 </body>
31 </html>

运行效果:


三、backface-visibility属性

backface-visibility属性决定元素旋转背面是否可见。对于未旋转的元素,该元素的正面面向观看者。当其Y轴旋转约180度时会导致元素的背面面对观众。

backface-visibility属性使用语法很简单:

backface-visibility: visible | hidden

该属性被设置为以下两个关键词之一:

  • visible:为backface-visibility的默认值,表示反面可见
  • hidden:表示反面不可见

案例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         body{
 8             background-color: deepskyblue;
 9         }
10         .box{
11             width: 300px;
12             height: 300px;
13             border:1px solid #000;
14             margin:100px auto;
15             position: relative;
16         }
17         .box::after,.box::before{
18             content:"";
19             position: absolute;
20             width: 100%;
21             height: 100%;
22             border-radius: 50%;
23             background-color: pink;
24             background: url("images/bg.png") no-repeat left top;
25             transition: 1s;
26             /*让盒子背面隐藏*/
27             backface-visibility: hidden;
28         }
29         .box::before{
30             transform: rotateY(-180deg);
31         }
32         .box::after{
33             background-position: right top;
34         }
35         .box:hover::before{
36             transform: rotateY(0deg);
37         }
38         .box:hover::after{
39             transform: rotateY(180deg);
40         }
41     </style>
42 </head>
43 <body>
44     <div class="box"></div>
45 </body>
46 </html>

运行效果:

       

 

 

 

 

 

 

相关文章
CSS3 perspective 透视
CSS3 perspective 透视
221 0
|
JavaScript
第99天:CSS3中透视perspective
CSS3中透视perspective 透视原理: 近大远小 。 浏览器透视:把近大远小的所有图像,透视在屏幕上。 理解浏览器的坐标系:浏览器平面为 Z=0的平面,坐标原点默认为图片的中心,可以通过更改透视原点进行更改。
1265 0
|
3月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
3月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
3月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
3月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习
|
3月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
3月前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示
|
8月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
326 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子