position:sticky粘性定位
sticky是css定位中不太常用的一種定位,但是可以根據粘性定位的特性 在頁面中達到你想要的效果。
像是某些網站,在主導航欄下面還會有副導航欄,要實現頁面往下拉,副導航欄一直定位在頁面頂部,除了可以用js監聽onscroll事件來實現,還可以通過sticky定位輕松搞定。
這里拿爐石傳說的官網舉例,打開頁面是這樣
當下拉滾動條,內容部分的導航欄就會停留在頁面頂部
簡單寫個demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .sticky{ width: 100%; color:white; background-color: cadetblue; border: 1px solid red; position: sticky; top:0; } .div{ height: 3000px; text-align: center } </style> </head> <body> <div class="div"> <p>第一行</p> <p>第二行</p> <p class="sticky">第三行</p> <p>第四行</p> <p>第五行</p> <p>第六行</p> <p>第七行</p> <p>第八行</p> <p>第九行</p> <p>第十行</p> <p>第十一行</p> <p>第十二行</p> <p>第十三行</p> <p>第十四行</p> <p>第十五行</p> <p>第十六行</p> <p>第十七行</p> <p>第十八行</p> </div> </body> </html>
頁面展示如下:
下拉滾動條
這里給第三行加了position:sticky屬性,設置了top:0,當往下拖動的時候,第三行就會固定在頂部位置