CSS粘性定位實現(xiàn)吸頂效果

吸頂效果在項目中并不少見, 通常做法是使用 javascript 監(jiān)聽 scroll,不過今天要說的這個方法,是使用css來完成吸頂效果。
關(guān)于 positoin ,CSS3新發(fā)布的一個屬性 sticky,這個屬性很有意思,設(shè)置了sticky的元素,在屏幕范圍(viewport)時該元素的位置并不受到定位影響,但是當(dāng)該元素的位置將要移出偏移范圍時,定位又會變成fixed,根據(jù)設(shè)置的left、top等屬性成固定位置,從而達(dá)到吸頂?shù)男Ч?,大家可以?fù)制以下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>
    .title{
        width: 100%;
        position: sticky;
        top:0px;
        text-align: center;
        background: #ccc;
        color: #fff;
    }
    .title span{
      padding: 8px 12px;
      margin: 0;
    }
    .content{
        height: 3000px;
        padding: 20px;
    }
    </style>
</head>
<body>
    <div>
        <div class="title">
          <span>topbar1</span>
          <span>topbar2</span>
          <span>topbar3</span>
        </div>
        <div class="content"> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
          <p>假裝這里是很多內(nèi)容</p> 
        </div>
    </div>
    
</body>
</html>

簡直和 js 控制的一模一樣! 看起來是很美好了, 這么方便的屬性,是不是馬上就get了呢, 先別急,讓我們看看兼容性,下圖呢就是各大主流瀏覽器的支持性了


image.png

在 Can I use 的介紹里說到

保持元素定位為“fixed”或“relative”取決于它如何出現(xiàn)在視口。因此,當(dāng)需要滾動時,元素會“卡住”。

然后往下看,兼容性有點 強(qiáng)差人意,IE完全不支持,edge支持率還好,高版本火狐以及谷歌都支持,以及iOS上的火狐, 各位可以看需求以及使用場景決定是否使用這個屬性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容