純CSS實現(xiàn)網(wǎng)頁內(nèi)部錨點跳轉(zhuǎn)時上下偏移的示例代碼

最近在做我的“足球?qū)Ш?rdquo;網(wǎng)站的時候遇到一個網(wǎng)頁內(nèi)部錨點跳轉(zhuǎn)后向下偏移一點,以避免被頂部固定導航欄遮住的需求。
網(wǎng)上搜索了一些方法,大多數(shù)都是利用js在跳轉(zhuǎn)時候進行控制,后來在一個國外開發(fā)者的個人博客上發(fā)現(xiàn)一個只用css實現(xiàn)的方法,覺得簡潔的很,順手將他的實現(xiàn)方法翻譯過來。通常我們網(wǎng)頁頂部的固定導航欄的的樣式實現(xiàn)如下:
<div class="header" style="position: fixed; top: 0;"></div>
隨后,會有一個跳轉(zhuǎn)的a鏈接列表:
<ul> <li><a href="#section1">Anchor Text</a></li> <li><a href="#section2">Anchor Text</a></li> </ul>
需求是點擊上面每個a鏈接的時候,頁面定位到相應id的錨點位置:
<div class="section" id="section1"></div> <div class="section" id="section2"></div>
但是如果頂部有個position:fixed的div的話,定位到這個錨點的時候,錨點中內(nèi)容的上部會被頂部固定的div遮住。解決方案是在每個定位內(nèi)容處加一個空的頁面錨點,將要跳轉(zhuǎn)的頁面元素id放到這個空元素上,并設置該空元素的css熟悉,以實現(xiàn)跳轉(zhuǎn)時候的偏移。我們定義的空元素為這個類為anchor的div,同時將div的id設置為上面a鏈接要跳轉(zhuǎn)的id:
<div class="anchor" id="section1"></div> <div class="section"></div> <div class="anchor" id="section2"></div> <div class="section"></div>
該空元素的css屬性如下:
.anchor{ display: block; height: 60px; /*和頂部fix的高度一致*/ margin-top: -60px; /*和頂部fix的高度一致*/ visibility: hidden; }
到這里,就實現(xiàn)我們要的內(nèi)部錨點跳轉(zhuǎn)的功能。
簡而言之,這里的偏移值就是跳轉(zhuǎn)時候空元素占據(jù)的高度,利用這個占位元素達到了我們需要的錨點跳轉(zhuǎn)時候的偏移效果。
到此這篇關(guān)于純CSS實現(xiàn)網(wǎng)頁內(nèi)部錨點跳轉(zhuǎn)時上下偏移的示例代碼的文章就介紹到這了,更多相關(guān)CSS 內(nèi)部錨點跳轉(zhuǎn)上下偏移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
使用CSS中的meta實現(xiàn)web定時刷新或跳轉(zhuǎn)的方法
這篇文章主要介紹了使用CSS中的meta實現(xiàn)web定時刷新或跳轉(zhuǎn)的方法,比使用JavaScript腳本實現(xiàn)起來更加簡單一些,需要的朋友可以參考下2015-06-05CSS實現(xiàn)超級鏈接需要通過雙擊后跳轉(zhuǎn)
超級鏈接需要雙擊后跳轉(zhuǎn)如何實現(xiàn),其實很簡單,在本文將為大家介紹下具體的實現(xiàn)方法,感興趣的朋友不要錯過2013-10-12- 這篇文章主要介紹了CSS頁面中點擊超鏈接如何跳轉(zhuǎn)新的頁面,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-13