聊聊CSS粘性定位sticky案例解析

背景
最近在做項(xiàng)目遷移,因?yàn)榧夹g(shù)不同,導(dǎo)致某些功能的問題需要手動(dòng)解決;如何在居位在主體區(qū)域底部不隨內(nèi)容而滾動(dòng);
OK進(jìn)入正體這期分享的是CSS粘性定位屬性sticky來解決上面的問題
粘性定位:
粘性定位可以被認(rèn)為是相對定位和固定定位的混合。是 position:sticky是css定位新增屬性;它主要用在對 scroll 事件的監(jiān)聽上;簡單來說,在滑動(dòng)過程中,某個(gè)元素距離其父元素的距離達(dá)到 sticky粘性定位的要求時(shí)(比如top:100px);position:sticky這時(shí)的效果相當(dāng)于fixed定位,固定到適當(dāng)位置
案例:
我們先來看個(gè)案例及最終的效果
實(shí)現(xiàn)的代碼
通過一個(gè)簡單案例去帶大家粗略了解粘性布局更容易更好理解,東西本身不負(fù)載但存在一些問題需要去進(jìn)一步了解
問題探索及項(xiàng)目中的坑
- 如果發(fā)現(xiàn)sticky粘性定位失效,如何解決
解決方案: 一般sticky粘性定位失效,我們需要去找他的父元素看他的父親元素是否設(shè)置overflow,一般都以滾動(dòng)條那個(gè)父元素為主
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div class="aside-warp"> <div>1</div> <div>2</div> <div class="icon">圖標(biāo)</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> <div>11</div> <div>12</div> <div>13</div> <div>14</div> <div>15</div> <div>16</div> <div>17</div> <div>18</div> <div>19</div> </div> </body> </html> <style> body { height: 2000px; overflow: auto; } .aside-warp { margin-top: 50px; height: 700px; width: 500px; background-color: aliceblue; overflow: hidden; //這里是模仿沒有滾動(dòng)條的效果 } .aside-warp div { height: 80px; line-height: 80px; text-align: center; border: 1px solid red; } .icon { position: sticky; top: 0px; background-color: aquamarine; } </style>
如果能解決上面的案例說明對粘性布局了解;
來說明下上面的案例的問題:為什么此時(shí)圖標(biāo)就無法粘性定位了,主要是因?yàn)樗ㄗ釉兀┎恢酪阅莻€(gè)父元素的滾動(dòng)為準(zhǔn)(現(xiàn)在有兩個(gè)父級元素都產(chǎn)生了滾動(dòng)),所以我們要對一層層祖級元素檢查看是否有overflow屬性如果有將元素設(shè)置 overflow: visible; body {overflow: visible; }; 簡單理解:兩個(gè)父級body 和div.main 如果同高度寬度的話,子元素就不知道到底以父元素為主,就會(huì)出現(xiàn)無法粘性定位的問題,所以避免這個(gè)問題我們要將其中不要定位的父元素設(shè)置{overflow: visible; }; PS:像這種案例非常常見我只是隨機(jī)例舉,比如像吸頂啊等等都是可以用粘性定位實(shí)現(xiàn)的
到此這篇關(guān)于關(guān)于CSS粘性定位sticky的文章就介紹到這了,更多相關(guān)CSS粘性定位sticky內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
- 這篇文章主要介紹了詳解css粘性定位position:sticky問題采坑的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下2019-08-26
- 這篇文章主要介紹了CSS粘性定位 sticky 的相關(guān)知識,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-29