亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁(yè) web前端 css教程 變得粘性 — CSS 粘性定位故障排除

變得粘性 — CSS 粘性定位故障排除

Nov 27, 2024 am 06:42 AM

作者:Ibadehin Mojeed??

您花了幾天甚至幾個(gè)月的時(shí)間來(lái)構(gòu)建一個(gè)時(shí)尚的網(wǎng)頁(yè)。一開(kāi)始一切看起來(lái)都很棒,但當(dāng)你開(kāi)始滾動(dòng)時(shí)……突然間,你的粘性元素——導(dǎo)航菜單、標(biāo)題或側(cè)邊欄號(hào)召性用語(yǔ)——要么根本不粘,要么不留在它們應(yīng)該在的地方。

令人沮喪,對(duì)吧?

乍一看似乎是一個(gè)小錯(cuò)誤,但很快就會(huì)變成一個(gè)真正令人頭痛的問(wèn)題,如果不解決,可能會(huì)嚴(yán)重?fù)p害您網(wǎng)站的參與度。

在本指南中,我們將解決這些最常見(jiàn)的粘性定位問(wèn)題:

  • 未指定偏移量
  • flex/grid 容器內(nèi)的粘性元素
  • 粘性元素容器的高度
  • 祖先有溢出屬性
  • 在 body 元素上溢出

然后我們將通過(guò)實(shí)際示例和技巧介紹如何解決這些粘性定位問(wèn)題,讓您成為粘性定位專家!在我們解決了常見(jiàn)問(wèn)題之后,您還可以找到位置屬性和 CSS 粘性位置的概述。

未指定偏移量

第一個(gè)也是最簡(jiǎn)單的故障排除步驟是確保使用上、右、下或左等屬性指定偏移量:

.sticky-heading {
  position: sticky;
  top: 0; /* Offset not defined - sticky behavior won't activate */
}

如果沒(méi)有偏移,粘性行為將不會(huì)激活。此外,請(qǐng)確保應(yīng)用的偏移適合預(yù)期的滾動(dòng)方向。例如,頂部或底部用于垂直滾動(dòng),左側(cè)或右側(cè)用于水平滾動(dòng)。

flex/grid 容器內(nèi)的粘性元素

下面的 CodePen 演示了網(wǎng)格容器內(nèi)的粘性元素:

查看 CodePen 上 Ibaslogic (@ibaslogic) 的網(wǎng)格容器內(nèi)的 Pen Sticky 元素。

在 CodePen 中,標(biāo)題會(huì)粘住,因?yàn)槿菁{每個(gè)標(biāo)題的容器有足夠的可滾動(dòng)空間。為了更好地可視化布局,請(qǐng)嘗試在內(nèi)容周圍添加邊框。這將幫助您在滾動(dòng)瀏覽各個(gè)部分時(shí)了解每個(gè)標(biāo)題如何保持在適當(dāng)?shù)奈恢谩?

Getting sticky with it — Troubleshooting CSS sticky positioning ?

在 HTML 代碼中,標(biāo)題放置在網(wǎng)格容器內(nèi),網(wǎng)格項(xiàng)自然拉伸以填充可用空間。然而,這種拉伸會(huì)阻止粘性元素有足夠的空間來(lái)滾動(dòng)和粘住。

為了解決這個(gè)問(wèn)題,我們對(duì)網(wǎng)格容器應(yīng)用了align-items:start。這可以防止粘性元素被拉伸,確保它有足夠的空間來(lái)按預(yù)期發(fā)揮作用:

.sticky-heading {
  position: sticky;
  top: 0; /* Offset not defined - sticky behavior won't activate */
}

如果沒(méi)有align-items: start,網(wǎng)格容器將拉伸標(biāo)題以填充可用空間,防止元素粘在視口的頂部。發(fā)生這種情況是因?yàn)闆](méi)有足夠的可滾動(dòng)空間來(lái)正確附加元素,如下所示:

Getting sticky with it — Troubleshooting CSS sticky positioning ?

雖然示例顯示了網(wǎng)格的實(shí)現(xiàn),但相同的解決方案也適用于 Flexbox 布局。

粘性元素容器的高度

當(dāng)您與下面的 CodePen 交互并滾動(dòng)視口以觀察粘性行為時(shí),您會(huì)注意到第一個(gè)粘性元素?zé)o法按預(yù)期工作,而第二個(gè)粘性元素可以正常工作 - 即使布局在視覺(jué)上看起來(lái)相似:

如前所述,為了使粘性元素正常工作,其容器必須有足夠的高度或可滾動(dòng)空間。讓我們仔細(xì)看看容器。在第一個(gè)布局中,粘性元素包含在額外的

中:
article {
  align-items: start;
  /* ... */
}

在下面的 CodePen 中,您可以滾動(dòng)該部分以觀察粘性標(biāo)題現(xiàn)在如何粘貼在該部分本身中。添加了邊框以可視化可滾動(dòng)區(qū)域:

在 body 元素上溢出

在 body 元素上設(shè)置溢出通常不會(huì)像其他祖先元素那樣破壞粘性定位:




<p>這是因?yàn)橹黧w為整個(gè)頁(yè)面創(chuàng)建了主要滾動(dòng)上下文,并且在這種情況下,粘性元素仍然相對(duì)于視口粘著:</p>

<p><iframe height="600" src="https://codepen.io/ibaslogic/embed/wvVzBJx?height=600&default-tab=result&embed-version=2" scrolling="no" frameborder="no" allowtransparency="true" loading="lazy">
</iframe>
</p>

<p>即使創(chuàng)建了滾動(dòng)機(jī)制,它也不會(huì)像在較小的容器中那樣干擾粘性行為 - 除非設(shè)置溢出:隱藏,這會(huì)消除滾動(dòng)溢出視口的任何內(nèi)容的能力。 </p>

<p>現(xiàn)在我們已經(jīng)介紹了常見(jiàn)的粘性問(wèn)題,您可以閱讀有關(guān)位置屬性和粘性位置的更一般性概述。</p><h2>
  
  
  職位屬性的簡(jiǎn)要概述
</h2>

<p>CSS 位置屬性控制元素在網(wǎng)頁(yè)上的定位方式。使用相對(duì)、絕對(duì)、固定或粘性等值,您可以使用其包含塊或視口中的頂部、右側(cè)、底部和左側(cè)屬性來(lái)調(diào)整元素的位置。這些值還使元素能夠使用 z-index 進(jìn)行相對(duì)定位。 </p>

<p>但是,請(qǐng)記住,這些偏移屬性(即上、右、下、左)和 z-index 不適用于具有默認(rèn)靜態(tài)定位的元素。 </p>

<p>在解決粘性定位問(wèn)題時(shí),重新審視粘性值的含義會(huì)??很有幫助。了解其行為可以更清楚地了解常見(jiàn)問(wèn)題以及如何有效解決這些問(wèn)題。</p>

<h2>
  
  
  CSS 粘性位置
</h2>

<p>當(dāng)您將position:sticky應(yīng)用到元素時(shí),它的行為類似于相對(duì)定位的元素,通過(guò)保持其在文檔流中的位置。然而,它也獲得了變得“粘性”并響應(yīng)滾動(dòng)的能力。 </p>

<p>如果您定義了一個(gè)偏移量,例如 top: 10px,則當(dāng)您向下滾動(dòng)時(shí),該元素將粘在該位置,就像使用position:fixed 一樣。對(duì)于水平滾動(dòng),您可以使用向左或向右等偏移來(lái)實(shí)現(xiàn)類似的效果。值得注意的是,粘性行為僅適用于元素的包含塊內(nèi)。一旦滾動(dòng)超過(guò)該塊的邊界,粘性元素就會(huì)像任何普通元素一樣滾動(dòng)消失。 </p>

<p>下面的 CodePen 演示了粘性行為。滾動(dòng)視口以查看正在運(yùn)行的粘性標(biāo)題:</p>

<p><iframe height="600" src="https://codepen.io/ibaslogic/embed/wvVKrrq?height=600&default-tab=result&embed-version=2" scrolling="no" frameborder="no" allowtransparency="true" loading="lazy">
</iframe>
</p>

<p>每個(gè) HTML 標(biāo)題都使用position:sticky和top:0進(jìn)行樣式化,確保當(dāng)您滾動(dòng)內(nèi)容時(shí)它會(huì)粘在視口的頂部。然而,粘性標(biāo)題仍然局限于各自的部分。一旦某個(gè)部分的內(nèi)容完全滾動(dòng)過(guò)去,其標(biāo)題就會(huì)向上移動(dòng),從而使下一個(gè)標(biāo)題保持在原位。這表明粘性元素不會(huì)逃離其父容器。</p>

<h2>
  
  
  結(jié)論
</h2>

<p>當(dāng)粘性元素?zé)o法按預(yù)期運(yùn)行時(shí),構(gòu)建網(wǎng)頁(yè)可能會(huì)令人沮喪。但是,了解祖先溢出屬性和父容器高度等關(guān)鍵因素可以幫助您解決粘性定位問(wèn)題。 </p>

<p>通過(guò)本指南中的示例和提示,您將能夠確保粘性導(dǎo)航、標(biāo)題和側(cè)邊欄號(hào)召性用語(yǔ)順利工作。如果您發(fā)現(xiàn)本指南有幫助,請(qǐng)隨時(shí)在線分享。如果您有任何問(wèn)題或貢獻(xiàn),請(qǐng)?jiān)谠u(píng)論部分加入我!</p><hr>

<h2>
  
  
  您的前端是否占用了用戶的 CPU?
</h2>

<p>隨著 Web 前端變得越來(lái)越復(fù)雜,資源貪婪的功能對(duì)瀏覽器的要求越來(lái)越高。如果您有興趣監(jiān)控和跟蹤生產(chǎn)中所有用戶的客戶端 CPU 使用情況、內(nèi)存使用情況等,請(qǐng)嘗試 LogRocket。</p>

<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173266096142897.jpg" class="lazy" alt="Getting sticky with it — Troubleshooting CSS sticky positioning"></p>

<p>LogRocket 就像網(wǎng)絡(luò)和移動(dòng)應(yīng)用程序的 DVR,記錄網(wǎng)絡(luò)應(yīng)用程序、移動(dòng)應(yīng)用程序或網(wǎng)站中發(fā)生的所有情況。您無(wú)需猜測(cè)問(wèn)題發(fā)生的原因,而是可以匯總并報(bào)告關(guān)鍵的前端性能指標(biāo)、重放用戶會(huì)話以及應(yīng)用程序狀態(tài)、記錄網(wǎng)絡(luò)請(qǐng)求并自動(dòng)顯示所有錯(cuò)誤。</p>

<p>現(xiàn)代化調(diào)試 Web 和移動(dòng)應(yīng)用程序的方式 - 開(kāi)始免費(fèi)監(jiān)控。</p>


          

以上是變得粘性 — CSS 粘性定位故障排除的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
CSS教程,用于創(chuàng)建加載旋轉(zhuǎn)器和動(dòng)畫 CSS教程,用于創(chuàng)建加載旋轉(zhuǎn)器和動(dòng)畫 Jul 07, 2025 am 12:07 AM

創(chuàng)建CSS加載旋轉(zhuǎn)器的方法有三種:1.使用邊框的基本旋轉(zhuǎn)器,通過(guò)HTML和CSS實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫;2.使用多個(gè)點(diǎn)的自定義旋轉(zhuǎn)器,通過(guò)不同延遲時(shí)間實(shí)現(xiàn)跳動(dòng)效果;3.在按鈕中添加旋轉(zhuǎn)器,通過(guò)JavaScript切換類來(lái)顯示加載狀態(tài)。每種方法都強(qiáng)調(diào)了設(shè)計(jì)細(xì)節(jié)如顏色、大小、可訪問(wèn)性和性能優(yōu)化的重要性,以提升用戶體驗(yàn)。

解決CSS瀏覽器兼容性問(wèn)題和前綴 解決CSS瀏覽器兼容性問(wèn)題和前綴 Jul 07, 2025 am 01:44 AM

處理CSS瀏覽器兼容性和前綴問(wèn)題需理解瀏覽器支持差異并合理使用廠商前綴。1.了解常見(jiàn)問(wèn)題如Flexbox、Grid支持不一,position:sticky失效,動(dòng)畫表現(xiàn)不同;2.查閱CanIuse確認(rèn)特性支持情況;3.正確使用-webkit-、-moz-、-ms-、-o-等廠商前綴;4.推薦使用Autoprefixer自動(dòng)添加前綴;5.安裝PostCSS并配置browserslist指定目標(biāo)瀏覽器;6.構(gòu)建時(shí)自動(dòng)處理兼容性;7.老項(xiàng)目可用Modernizr檢測(cè)特性;8.不必追求所有瀏覽器一致,確

顯示:內(nèi)聯(lián),顯示:塊和顯示:內(nèi)聯(lián)塊之間有什么區(qū)別? 顯示:內(nèi)聯(lián),顯示:塊和顯示:內(nèi)聯(lián)塊之間有什么區(qū)別? Jul 11, 2025 am 03:25 AM

Themaindifferencesbetweendisplay:inline,block,andinline-blockinHTML/CSSarelayoutbehavior,spaceusage,andstylingcontrol.1.Inlineelementsflowwithtext,don’tstartonnewlines,ignorewidth/height,andonlyapplyhorizo??ntalpadding/margins—idealforinlinetextstyling

使用CSS剪輯路徑創(chuàng)建自定義形狀 使用CSS剪輯路徑創(chuàng)建自定義形狀 Jul 09, 2025 am 01:29 AM

使用CSS的clip-path屬性可以裁剪元素為自定義形狀,如三角形、圓形缺口、多邊形等,無(wú)需依賴圖片或SVG。其優(yōu)勢(shì)包括:1.支持circle、ellipse、polygon等多種基本形狀;2.可響應(yīng)式調(diào)整,適配移動(dòng)端;3.易于動(dòng)畫化,可結(jié)合hover或JavaScript實(shí)現(xiàn)動(dòng)態(tài)效果;4.不影響布局流,僅裁剪顯示區(qū)域。常見(jiàn)用法如圓形裁剪clip-path:circle(50pxatcenter)和三角形裁剪clip-path:polygon(50%0%,1000%,00%)。注意

造型與CSS不同訪問(wèn)的鏈接 造型與CSS不同訪問(wèn)的鏈接 Jul 11, 2025 am 03:26 AM

設(shè)置訪問(wèn)過(guò)鏈接的樣式能提升用戶體驗(yàn),尤其在內(nèi)容密集型網(wǎng)站中幫助用戶更好導(dǎo)航。1.使用CSS的:visited偽類可定義已訪問(wèn)鏈接樣式,如顏色變化;2.注意瀏覽器出于隱私限制僅允許修改部分屬性;3.顏色選擇應(yīng)與整體風(fēng)格協(xié)調(diào),避免突兀;4.移動(dòng)端可能不顯示該效果,建議結(jié)合其他視覺(jué)提示如icon輔助標(biāo)識(shí)。

CSS繪畫API是什么? CSS繪畫API是什么? Jul 04, 2025 am 02:16 AM

thecsspaintingapienablesdemimageGenerationinCsssingJavascript.1.developersCreateApaintWorkletClassWithaPaint()method.2.theyregisteritviaregisterpaint()。3.thecustompAntFunctionSthenusitySthenusedisthenusedisthenusedIncerspropertieslikeBacknockforg-image-image.thisallows.thisallowsforderforderynamecvis

如何使用CSS創(chuàng)建響應(yīng)式圖像? 如何使用CSS創(chuàng)建響應(yīng)式圖像? Jul 15, 2025 am 01:10 AM

要使用CSS創(chuàng)建響應(yīng)式圖片,主要可通過(guò)以下方法實(shí)現(xiàn):1.使用max-width:100%和height:auto讓圖片在保持比例的同時(shí)自適應(yīng)容器寬度;2.結(jié)合HTML的srcset和sizes屬性智能加載適配不同屏幕的圖片源;3.利用object-fit和object-position控制圖片裁剪與焦點(diǎn)展示。這些方法共同確保圖片在不同設(shè)備上清晰、美觀地呈現(xiàn)。

什么是常見(jiàn)的CSS瀏覽器不一致? 什么是常見(jiàn)的CSS瀏覽器不一致? Jul 26, 2025 am 07:04 AM

不同瀏覽器對(duì)CSS解析存在差異,導(dǎo)致顯示效果不一致,主要包括默認(rèn)樣式差異、盒模型計(jì)算方式、Flexbox和Grid布局支持程度及某些CSS屬性行為不一致。1.默認(rèn)樣式處理不一致,解決方法是使用CSSReset或Normalize.css統(tǒng)一初始樣式;2.舊版IE的盒模型計(jì)算方式不同,建議統(tǒng)一使用box-sizing:border-box;3.Flexbox和Grid在邊緣情況或舊版本中表現(xiàn)有差異,應(yīng)多測(cè)試并使用Autoprefixer;4.某些CSS屬性行為不一致,需查閱CanIuse并提供降級(jí)

See all articles