position fixed脱离文档流吗_css中position属性fixed于absolute的区别

这是摘抄自MDN中对于css属性position的定义:

CSS position属性用于指定一个元素在文档中的定位方式。top,right,bottom 和 left 属性则决定了该元素的最终位置

在日常编写html开发时,我总想有一只魔法棒该多好啊,只要一挥手,页面上所有元素都能放在我想要放的位置。可是愿望很美好,现实很残酷,不但残酷,还有个别不听话的元素经常跟我们作对。

新需求来了

领导找到我说,我的产品要有这样一个功能,在浏览器的最底端始终显示我们公司软件的下载按钮,快去做!

拿到需求后心想,这还不简单,这次分分钟中给你搞定。于是我这样写下

45a4fde765b73f04adc06439426b12e0.png

很完美的实现

然后信心满满的拿着我的杰作给产品经理看

b40349e43c64381082c7d6cb5dd5e78f.png

杰作

领导看完直说,小伙子不错吗,这么快就完成了,看好你哦。得到领导的夸奖别说多兴奋了 。

。。。

可是好景不长,半夜里领导突然打电话说,有客户投诉了,说咱么这是什么破产品,一个下载按钮不在底下好好呆着,乱跑!

738933e030cfe8d4971010d7b7890508.png

无法控制的绝对定位

吃了领导一顿劈头盖脸的批评,挂了电话,我陷入了深深的沉思。。我到底哪里做错了,明明用的absolute绝对定位,怎么会出现这种情况呢。

哎,学艺不精又能怪谁呢,问题出现了,现在最重要的是怎么快速解决吧

fixed出场

众里寻他千百度,慕然回首,你在mdn处。

原来css中绝对定位不只是absolute,还有一种叫做fixed的选项,MDN中这样说明的

fixed:元素会被移出正常文档流,并不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变

相对于屏幕视口(viewport)的位置来指定元素位置,元素的位置在屏幕滚动时不会改变

一语惊醒梦中人啊,我那个absolute就是被滚动条滚动上去的啊,好想说一句MD.

于是我将我的absolute改成了fixed,终于解决了问题

同为绝对定位,区别在于哪里呢

absolute的位置是相对于整个页面,就像拿一个图钉把它定在了页面,页面滚动元素也会跟着滚动。

而fixed定位呢,是相对于屏幕视口(viewport),即相对于我们肉眼看到的页面屏幕,即使页面滚动,我们的视口是不改变的,所以我们看到的元素就是不动的。

ps:文中的MDN是我经常学习的网站,著名浏览器Fixfox出品

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值