新闻资讯
前端新人学习路径(4/26)
前言
上一节我们说了浮动布局,如果大家完全掌握了浮动布局,那么每一个div元素的位置将变得非常容易把控,但是又出现了一个新的问题,我们经常看到网页中元素会重叠,让某一个元素压到另一个元素的上面,想实现这样的效果,就需要我们今天的内容:定位。
今天我们主要考虑下面四个问题:
- 绝对定位
- 相对定位
- 固定定位
- 设置参照物
一、定位
通过position属性可以将元素设置成一个定位元素,我们可以通过left,top,z-index来设置定位元素的x,y,z坐标(当然是用right和bottom也可以设置定位元素的坐标)。
绝对定位
selector{ position:absolute; }
- 将元素设置为定位元素
- 原点坐标以浏览器窗口左上角为准
- 脱离文档流(不占位),后面的元素会填充它的位置。
相对定位
selector{ position:relative; }
- 将元素设置为定位元素
- 原点坐标以该元素原位置为准
- 不脱离文档流(占位),后面的元素不会填充它的位置。
固定定位
selector{ position:fixed; }
- 将元素设置为定位元素
- 原点坐标以当前浏览器窗口位置的左上角为准
- 不管滚轮如何滚动,定位位置不变
设置参照物
将绝对定位元素的上级(父级或祖先级)设置position:relative,则绝对定位元素的原点坐标以其上级的左上角为准。
二、总结
掌握了今天定位的方法,我们就可以将html元素放在我们希望的任何位置上了。但是新手总是会有一个问题,既然定位可以让元素放在任何位置,那为什么要用浮动布局呢,直接将元素都定在指定位置就好了?
这样做确实可以将网页拼接出来,但是会引入两个非常严重的问题:
- 第一,如果容器要适应内容的高度,例如网页中文章的内容不确定,文章的容器高度就不能写固定值,这样文章下面的内容就无法确定定位的坐标。
- 第二,如果元素都是定位在指定位置,如果页面修改,例如删除中间的某一个内容,那么下面所有的元素都要重新设置坐标,但是如果是浮动布局,下面的内容会直接排列上去,不会有太多影响。
所以,在网页布局的过程中,如果可以不用定位来实现的布局,就不要用定位。
三、资料
如果您在练习的过程中经常出现问题,可以关注微信公众号:晓舟报告,获取案例源码(有注释)和学习素材,以便于您更高效地学习,本节的案例如下所示:
- demo01:绝对定位
- demo02:相对定位
- demo03:固定定位
- demo04:参照物
- demo05:对联广告
四、尾声
如果您觉得有收获,请不要吝惜一个小小的【赞】,如果喜欢类似的文章,可以关注微信公众号:晓舟报告,第一时间获取文章。
回复列表