<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      記錄---為什么你寫的 `position: sticky` 不工作?99% 的前端都踩過這個坑

      ????? 寫在開頭

      點贊 + 收藏 === 學會??????

      前端世界里有很多看似“直白”的屬性,比如 position: sticky,聽起來像是“粘住某個位置”——只要設置好就能吸附在頁面某個位置上,滾動時一動不動。

      結果實際開發中你可能經歷過以下崩潰三連:

      • 設置了 position: sticky; top: 0;,元素依然隨頁面滾動;
      • 控制臺一切正常,CSS 正確無誤,就是不生效;
      • 你開始懷疑人生,默默換回了 position: fixed

      別慌,這篇文章帶你一次性弄懂 position: sticky 的底層機制、誤區、實際用法和最佳實踐。看完之后,不再當“被黏住的程序員”。

      一、先明確:什么是 sticky?

      position: sticky 是一種混合定位機制:

      它在元素進入視口之前是相對定位(relative),一旦滾動到臨界值,就切換為固定定位(fixed)的行為。

      簡單來說就是:先跟著父元素走,滾到該停的位置就貼住

      常見寫法如下:

      .sticky-header {
        position: sticky;
        top: 0;
        background: white;
      }

      然后希望這個 header 在滾動時“吸頂”,視覺效果如同 position: fixed,但它依然在文檔流中。


      二、問題來了:為什么你寫了 sticky,卻沒有“粘性”?

      很多人以為是瀏覽器不支持,其實在現代瀏覽器(包括手機端)中早就原生支持了。

      問題通常出在這些容易忽視的坑

      坑一:父元素有 overflow: hidden / auto / scroll

      這是最常見的元兇。

      .parent {
        overflow: hidden;
      }
      .child {
        position: sticky;
        top: 0;
      }

      這種結構下,.child 將永遠無法“粘住”。

      原因是 sticky 的參考上下文是最近的可滾動祖先,而 overflow: hidden 等屬性會導致容器成為新的“滾動上下文”,sticky 被限制在里面。

      解決方法不要給 sticky 的父級設置 overflow: hidden,或調整結構讓 sticky 出現在沒有滾動限制的區域。


      坑二:sticky 的祖先 display: flex 且方向不匹配

      你可能看到過這種結構:

      <div class="container">
        <div class="sidebar">...</div>
        <div class="content">...</div>
      </div>
      .container {
        display: flex;
      }
      .sidebar {
        position: sticky;
        top: 0;
      }

      你希望 sidebar 在垂直方向粘住頂部,但卻發現它根本不“sticky”。

      關鍵在于:flex 布局的主軸方向與 sticky 的方向沖突時,會導致 sticky 無法觸發。

      解決方法

      • 確保 sticky 的方向(如 top/bottom)是主軸方向;
      • 或者避免讓 sticky 元素在橫向 flex 容器中直接使用。

      坑三:沒有指定 top/left/right/bottom

      這是最基本的問題,但常常被忽略。

      .sticky {
        position: sticky;
      }

      這段代碼等于什么都沒設置,因為你必須指定粘性的觸發邊界,否則就沒有觸發條件。

      最常見的是:

      .sticky {
        position: sticky;
        top: 0; /* 吸附到頂部 */
      }

      三、冷知識:sticky 也有“活動半徑”

      這個知識點比較少人知道:

      position: sticky 的“吸附”只在它所屬的父元素區域內生效。

      什么意思?我們來看一個例子:

      <div class="section">
        <h2 class="sticky">章節標題</h2>
        <p>一大段內容</p>
      </div>
      .section {
        height: 600px;
        overflow: visible;
      }
      .sticky {
        position: sticky;
        top: 0;
      }

      當滾動到 .sticky 即將離開 .section 的底部區域時,它會自動“脫粘”而不再吸附。

      這也就是說:

      sticky 不是全頁面范圍內固定,而是在其包含塊(父元素)范圍內固定

      這點與 position: fixed 有本質不同。


      四、實際場景推薦:sticky 的用武之地

      1. 表頭吸頂

      表格中的 thead 永遠固定在頂部,是 sticky 的經典場景:

      thead {
        position: sticky;
        top: 0;
        background: white;
        z-index: 10;
      }

      冷知識提醒:不要忘了加 background 和 z-index,否則會被后面的表格內容遮擋。

      2. 左側目錄導航

      當你在寫文檔頁面、博客系統、掘金專欄時,目錄條跟隨滾動吸附。

      .nav {
        position: sticky;
        top: 20px;
      }

      提示:設置 top: 20px 可以保持一點視覺上的留白感,避免太貼邊。

      3. 分段標題懸浮

      像微信公眾號正文那種標題懸浮,每個段落標題隨著滾動在頂部短暫停留,也是 sticky 的天然優勢。

      h2 {
        position: sticky;
        top: 0;
        background: white;
      }

      這種方式比 IntersectionObserver 更簡單、性能更好,兼容也更廣。


      五、bonus:sticky + scroll-margin 搭配更美觀

      另一個冷知識是,stickyscroll-margin 是一對黃金搭檔。

      當你在跳轉錨點時,元素可能會被“貼死”在頂部,體驗很差。

      .section-title {
        scroll-margin-top: 60px;
      }

      個屬性的意思是:在瀏覽器滾動到錨點時,距離頂部保留 60px 的空隙,剛好與 sticky 的吸頂位置對齊。


      六、你應該避免的錯誤總結

      企業微信截圖_20250814164534

      尾聲:粘貼的不只是樣式,更是理解力

      CSS 很多“高級”特性并不是寫法復雜,而是對瀏覽器工作方式的理解不夠清晰position: sticky 看似只是個定位屬性,其實牽涉了滾動上下文、布局流、容器模型、層級控制等多個維度。

      當你真正理解 sticky 的“粘性邊界”與“父級限制”之后,你會發現它比 fixed 更靈活,也更優雅。

      下一次當你寫 sticky 的時候,不妨回想這篇文章里說的幾條冷知識。讓你的樣式也擁有一點“持久的粘性”。


      本文轉載于:https://juejin.cn/post/7507073213865689138

      如果對您有所幫助,歡迎您點個關注,我會定時更新技術文檔,大家一起討論學習,一起進步。

      posted @ 2025-08-14 16:46  林恒  閱讀(350)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 另类 专区 欧美 制服| 国产不卡在线一区二区| 无码无需播放器av网站| 欧洲亚洲国内老熟女超碰| 亚洲欧美人成人让影院| 亚洲一区二区精品偷拍| 成人自拍小视频在线观看| 国产精品亚洲二区在线播放| 国产亚洲精品自在久久vr| 成人片黄网站a毛片免费| 亚洲国产精品综合久久网各| 亚洲精品香蕉一区二区| 亚洲成人资源在线观看| 国产乱人伦无无码视频试看| 欧美精品亚洲精品日韩专区| 亚洲精品国产免费av| 香港特级三A毛片免费观看| 亚洲永久精品一区二区三区| 暖暖 免费 高清 日本 在线观看5 色老头亚洲成人免费影院 | 国产亚洲精品AA片在线爽| 免费国产一区二区不卡| 连城县| 日韩人妻一区中文字幕| 成人无码视频在线观看免费播放 | 狠狠躁夜夜躁人人爽天天天天| 亚洲国产中文字幕精品| 亚洲丰满熟女一区二区蜜桃| 欧美z0zo人禽交另类视频| 久久99精品久久久久久| 67194熟妇在线观看线路| 昌江| 少妇激情一区二区三区视频小说| 成人亚洲狠狠一二三四区| 国产亚洲国产精品二区| 18国产午夜福利一二区| 国产在线线精品宅男网址| 国产成人无码免费视频麻豆| 临汾市| 内射老阿姨1区2区3区4区| 亚洲另类无码一区二区三区| 99久久精品久久久久久婷婷 |