[CSS入门到进阶] 用transform后z-index失效了?总结transform的注意事项!

我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权。我独立开发了《联机桌游合集》,是个网页,可以很方便的跟朋友联机玩斗地主、五子棋等游戏,不收费没广告。还开发了《Dice Crush》参加Game Jam 2022。喜欢可以关注我 HullQin 噢~我有空了会分享做游戏的相关技术。

背景

这篇文章,我讲了如何实现自适应屏幕宽度的canvas:《如何实现响应式canvas?保持canvas比例?教你让canvas自适应屏幕宽度!》,其中canvas的缩放依赖了transform这个CSS属性。

transform是指针对元素做一些2D/3D转换,本文讲解相关注意事项。

它在dom元素占据的位置,是变换前的形状和大小

transform的很多变换,都会修改dom元素的形状。

我们知道,transform只能作用于盒子模型的元素上,通常我们接触的都是盒子模型,例如display: block

1.png

而这些元素,初始都是矩形,并且很正(是横平竖直的矩形)。

变换后,可能经过了旋转、拉伸,可能就变成了歪歪的平行四边形。

而transform变换后,该元素在dom中所占据的位置,是不会变换的!

也就是说,如果被transform变换的元素A,如果它后面有其它元素B,那么不管你咋变换A,B的位置是不会受影响的。这样DOM渲染效率就会高。

想想,为什么这么设计?

设想这样的情景:transform可以结合动画使用。如果你放了一个一直在旋转的矩形,那么它在y轴撑开的高度每时每刻都在改变,让它后面所有元素随着动画改变y坐标的话,就需要修改太多次了,严重影响性能。因此,transform变换后,元素在dom中所占据的位置,是不会变换的。

参考例子:

码上掘金

它的展示效果,会覆盖在其它元素上,无论其它元素z

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.css的概述 1.问题 HTML属性修饰有一定局限,是不太便捷 2.css的语法规范 1.使用css样式方式 1.内联样式 行内样式 特点:将css样式定义在HTML标记中 语法:中先增加一对<style></style>,在<style>标记写样式规则 样式规则:由选择器和样式声明组成 3.外部样式 独立于任何网页位置处,声明一个样式文件(.css为后缀),在文件中声明样式,在使用的网页中引入.css文件。 使用步骤: 1.创建样式表文件(.css) 2.在样式文件中编写样式规则 3.在网页中对样式文件进行引入 <link rel="stylesheet" href="URL../.css"> 3.CSS样式特征 1.继承性 必须是父子(有层叠嵌套的关系)结构 大部分的css效果是可以 2.优先级 1.浏览器默认样式 2.内部样式和外部样式(就近原则) 3.内联样式 4.!important; 绝对优先使用() 格式 p{ color:red !important; } 2.css选择器 1.选择器的作用 规范页面中那些元素能够使用定义好的样式。 2.选择器详解 1.通用选择器 *{样式} 2.元素选择器 p{样式} 3.类选择器 1. 声明 .class名{样式} 2.引用可以引用多个类名用空格隔开 4.id选择器 #id名{样式} 3.特殊选择器 1.群组选择器 #id ,.class{样式} 1.子选择器 #id>.class{样式} 1.分类选择器 div .class{样式} 4.伪类选择器 作用:匹配元素不同状态的选择器 语法:所有的伪类都是以 : 作为开始 选择器:伪类选择器{样式} 伪类分类 1.伪类链接 :link 匹配尚未访问的超级链接状态 :visited 匹配访问过的元素的状态 2.动态伪类 :hover 匹配鼠标悬停在元素上时的状态

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hull Qin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值