老师代码中的定位好像没作用啊

老师代码中的定位好像没作用啊

问题描述:

课程中老师代码,将截图中标红的位置的定位去掉,展示效果没有变化,设置定位好像没有什么意义啊

相关截图:

http://img1.sycdn.imooc.com//climg/60094f0509ae748705570530.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,关于同学的问题解答如下:

1、首先我们先来区分一下父元素和子元素,如下图

http://img1.sycdn.imooc.com//climg/600d438b092bcc9912890267.jpg

2、分清楚了父元素和子元素(二级菜单)之后,我们来看,在有定位的情况下,父元素li和子元素ul的宽度各是多少,看下图,可以发现,父元素li的宽度是94px,而子元素(二级菜单)的宽度是98px;

http://img1.sycdn.imooc.com//climg/600d4266093a76b104610261.jpg

http://img1.sycdn.imooc.com//climg/600d42ac09c36cf404500262.jpg

3、再来看没有定位的情况,在没有定位的时候,看下图可以发现,二级菜单的宽度是98px,父元素li的宽度也是98px

http://img1.sycdn.imooc.com//climg/600d418b0930262804910299.jpg

http://img1.sycdn.imooc.com//climg/600d4200093d5a7904740253.jpg

4、出现这种情况的原因分析:

(1)在2中,是因为二级菜单设置了绝对定位,脱离了文档流,即不再占据文档流空间,也就无法再撑开父元素的宽度。因此,在有定位的情况下,我们看到的是一级菜单比二级菜单窄,因为父元素li的宽度是94px,子元素即二级菜单的宽度是98px。

(2)在3中,去掉了二级菜单ul的绝对定位后,元素占据文档流空间,二级菜单的宽度会撑开父元素的宽度,使得父元素li的宽度也变成了98px,因此,我们看到的效果是一级菜单和二级菜单的宽度是相同的,都是98px。

希望可以帮到你,祝学习愉快~

好帮手慕言 2021-01-21 18:45:54

同学你好,去掉截图中定位,整体效果上确实是没有太大的变化,但是,设置定位可以在有需要的时候,更便于调整元素的位置呦。

​祝学习愉快~

  • 提问者 慕粉4184331 #1

    老师发现了一点不同,有定位的时候下拉层和标题栏宽度不同,但是没有定位的时候,宽度相同这是什么原因呢?


    2021-01-24 14:38:36
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师