![Bootstrap从入门到项目实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/95/27738095/b_27738095.jpg)
5.10 定位
在Bootstrap 4中,定位元素可以使用以下类来实现。
■ .position-static:无定位。
■ .position-relative:相对定位。
■ .position-absolute:绝对定位。
■ .position-fixed:固定定位。
■ .position-sticky:黏性定位。
无定位、相对定位、绝对定位和固定定位很好理解,只要在需要定位的元素中添加这些类,就可以实现定位。相比较而言,.position-sticky类很少使用,主要原因是.position-sticky类对浏览器的兼容性很差,只有部分浏览器支持(例如谷歌和火狐浏览器)。
.position-sticky是结合.position-relative和.position-fixed两种定位功能于一体的特殊定位,元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。特定阈值指的是top,right,bottom或left中的一个。也就是说,必须指定top,right,bottom或left四个阈值之一,才可使黏性定位生效,否则其行为与相对定位相同。
在Bootstrap 4中的@supports规则下定义了关于黏性定位的top阈值类.sticky-top,CSS样式代码如下:
![](https://epubservercos.yuewen.com/84690B/15936052304963006/epubprivate/OEBPS/Images/Figure-P95_2989.jpg?sign=1739366242-B5Y3yMBNY5SDCyD1jZ3tt1C97KoK7Ckb-0-2c9c8b13a2ea902e02d51744ecf11aae)
当元素的top值为0时,表现为固定定位。当元素的top值大于0时,表现为相对定位。
注意
如果设置.sticky-top类的元素,它的任意父节点定位是相对定位、绝对定位或固定定位时,该元素相对父元素进行定位,而不会相对viewprot定位。如果元素的父元素设置了overflow:hidden样式,元素将不能滚动,无法达到阈值,.sticky-top类将不生效。
.sticky-top类适用于一些特殊场景,例如头部导航栏固定。下面就来实现一下“头部导航栏固定”的示例。
【例5.26】定位示例。
![](https://epubservercos.yuewen.com/84690B/15936052304963006/epubprivate/OEBPS/Images/Figure-P95_2993.jpg?sign=1739366242-AeR4nJegcFzdd5W9EvLQA3nWybWpqpP8-0-b4457873afa6f928fa0f896d84115bd1)
在火狐浏览器中运行效果如图5-30所示,向下滚动滚动条,页面效果如图5-31所示。
![](https://epubservercos.yuewen.com/84690B/15936052304963006/epubprivate/OEBPS/Images/Figure-P96_3012.jpg?sign=1739366242-79wTxG7DY42dHheKxESq0qeS9dBWlbfU-0-606cbe56b4f5b9b41363b0225c724ab5)
图5-30 初始化效果
![](https://epubservercos.yuewen.com/84690B/15936052304963006/epubprivate/OEBPS/Images/Figure-P96_3013.jpg?sign=1739366242-xiTZOvByBmlO6dtzjj0ynxSYhsINGGmt-0-4f418f368e037feb6e3f6ab212bbce62)
图5-31 滚动滚动条后效果
注意
内容栏的内容需要超出可视范围,当滚动滚动条时才能看出效果。