左侧导航的偏移问题

来源:2-6 js左侧导航效果书写

人生的起源

2020-09-30 19:36:30

视频中左侧导航使用left: -150px进行定位也是可以的,这里为什么要使用translate进行平移?
再问下,使用position进行定位和使用translate平移有什么不同,各有什么优劣,什么情况下使用哪种比较好,老师帮忙分析下?

写回答

1回答

好帮手慕鹤

2020-10-07

同学你好。

1、视频中左侧导航使用left: -150px进行定位也是可以的,这是因为在代码中,.slide-bar容器设置了定位,所以可以使用left:-150px来实现效果。在视频中,使用的transform: translate3d(150px, 0, 0);是直接把当前元素进行了平移,不需要去设置定位的样式,再通过left属性,来改变元素的位置。但是在给body添加类名.active的时候,使用left的话,还需要再添加上定位效果,但是添加上了定位之后,它改变的是自身的位置,并且使用了定位,body还会覆盖在显示的内容上,布局会出错,如下:

http://img.mukewang.com/climg/5f7d27e4092c2cbe09710254.jpg

所以老师再讲解的时候,使用的 transform: translate3d(150px, 0, 0);来改变它们的位置。

2、一般在做比较特殊的布局时,建议使用position定位,例如:

内容需要覆盖在某个区域的时候,使用定位来实现效果。

http://img.mukewang.com/climg/5f7d298e09b8090f03680215.jpg

参考代码:

http://img.mukewang.com/climg/5f7d29a209b3c38705450635.jpg

或者是浏览器上固定某个位置有广告显示,也需要去使用定位来实现这样的效果,参考下图:

http://img.mukewang.com/climg/5f7d2cc109cf54ce02740297.jpg

http://img.mukewang.com/climg/5f7d2ca609f89e4d05620431.jpg

而tanslate只是用来改变元素的位置,如果只需要改变元素的位置,可以直接使用translate样式来实现。

参考下图:

http://img.mukewang.com/climg/5f7d2a5d0921e21b05770382.jpg

如果帮助到了你,欢迎采纳,祝学习愉快。

0

0 学习 · 4826 问题

查看课程