在微信小程序中,根据 wxml 文件名,小程序自动将 wxss 进行加载,譬如当加载 pages/style/index.wxml 时,它自动将 pages/style/index.wxss 加载。wxss 指的是 Wei Xin Style Sheet,微信团队定义了一套用以实现微信小程序布局样式的层叠样式表,与CSS非常接近。我们可以简单理解成 wxss 是 css 的一个子集,包括选择器、属性、值部分,同样具有层叠的特征。
本篇文章主要讲讲微信小程序的定位Position样式,包含有absolute、relative、static、fixed和sticky五种定位。
一、absolute定位
绝对定位的元素位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置则以浏览器为准定位(Document 文档)。
二、relative定位
相对定位元素的定位是相对其正常位置,移动相对定位元素,但它原本所占的空间不会改变。相对定位元素经常被用来作为绝对定位元素的父级容器块。
三、fixed定位
元素的位置相对于浏览器窗口是固定位置,即使窗口滚动时候它也不会移动。Fixed定位使元素的位置与文档流无关,因此不占据空间,Fixed定位的元素和其他元素重叠。
四、static定位
它是元素的默认值,即没有定位,遵循正常的文档流对象。静态定位的元素不会受到 top, bottom, left, right影响。
五、sticky定位
除了以上四个常规定位属性,还有个基于用户滚动位置来定位的属性,我们称之为粘性定位。粘性定位的元素是依赖于用户滚动行为,在 position:relative 与 position:fixed 定位之间切换。它的行为就像 position:relative, 当页面滚动超出可视目标区域时,它的表现就像 position:fixed,它会固定在目标位置。
元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。特定阈值是指top, right, bottom 或 left 之一,换言之,当指定 top, right, bottom 或 left 四个阈值其中之一,粘性定位才会生效,否则其行为与相对relative定位相同。
上面五种定位样式都是让元素不重叠布局,但有些时候需让几个元素重叠在一起显示,那要用z-index属性设置重叠顺序,z-index属性越大越排列在上头。