为了账号安全,请及时绑定邮箱和手机立即绑定

天坑,CSS之定位Position(六分之五)

Position定位

个人觉得position这个属性真的算是CSS的见面杀了。尤其是absolute,当年可是被虐的不轻。当然了,现在爱上了这个属性,谁用谁知道。

position属性

position是CSS的一个属性,地位较高,也是我们重点要说的一个属性。

对应了四个与之相关的位置属性,top、right、bottom、left,分别是指离上、右、下、左的距离,注意是设定后移动自身,不是挤走别的元素。

下文称位置属性即为top、right、bottom、left。

如果一个页面,不通过position的调整,在如今看来,将是极度难以忍受的。其主要包含下列属性值,不含继承的话,共有5个,以下一一例举:

  • static

    直译为静态,默认值,在其上使用position的位置属性无效。

  • relative

    直译为相对,与static近似,但在其上使用position的位置属性有效。

    注意,relative不会脱离文档流,具体见下面的图示。

  • absolute

    直译为绝对,向上寻找 第一个非static定位的标签,然后位置属性相对其有效。如果没有找到,则相对document。

    向上寻找:标签存在父子级关系,由子级向父级乃至祖宗级直到body为止。向下则相反。
    absolute会脱离文档流。

  • fixed

    直译为修正,简单粗暴,直接相对浏览器窗口显示区域定位。

    fixed会脱离文档流。

  • sticky

    直译为粘性,当相应内容显示在视觉范围内,则表现为relative定位,当内容即将逃出显示区域时,切换为fixed定位。

    sticky不会脱离文档流,即使换成了fixed。

以下针对5种定位做出图文描述
  • static

    static与relative

    static设置位置属性是无效的

    static为了方便理解还是与relative对比可以看出效果

  • relative

    relative特征

    relative设置位置属性有效,并且没有脱离原本文档流,只是显示位置变化了而已

  • absolute

    absolute相对document

    此图是证明相对于document

    absolute的最大难点就是具体相对谁的定位:

    absolute相对的是向上第一个不是static默认定位的元素,如果没有找到,则相对于document

    图片描述

    此图是证明相对于非static的父级标签,也可以自己试试,父级标签都是默认会如何。

  • fixed

    fixed特征

    相对于浏览器窗口显示内容定位

    如果对fixed元素的父级元素设置了transform,则回导致fixed失效,这里有个印象就好。

  • sticky

    sticky特征

    处在显示区域中是使用relative,当要逃出显示区域时切换为fixed

    新出的,兼容性注意下就好,非常适合做一下标题模块。


以上就是position相关的速讲知识,有疑问或者其他可以留言询问。


如果文章对你有一点帮助,我就非常的开心了。
喜欢我的文章,请关注我,定期发布技术文章,满满的干货。

源码相关

CodePen

点击查看更多内容
19人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
软件工程师
手记
粉丝
1.6万
获赞与收藏
893

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消