编程技术文章分享与教程

网站首页 > 技术文章 正文

css中position属性fixed于absolute的区别

hmc789 2024-11-24 16:46:11 技术文章 2 ℃

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

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

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

新需求来了

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

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


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

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

。。。

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


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

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

fixed出场

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

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

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

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

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

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

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

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

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

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

Tags:

猜你喜欢

标签列表
最新留言