“Pozisyon: yapışkan;” Çalışmıyor CSS ve HTML


179

Gezinme Çubuğu'nun üzerine geldikten sonra üste yapışmasını istiyorum, ancak çalışmıyor ve neden olduğuna dair hiçbir fikrim yok. Lütfen yardım edebilirseniz, HTML ve CSS kodum:

.nav-selections {
  text-transform: uppercase;
  letter-spacing: 5px;
  font: 18px "lato",sans-serif;
  display: inline-block;
  text-decoration: none;
  color: white;
  padding: 18px;
  float: right;
  margin-left: 50px;
  transition: 1.5s;
}

.nav-selections:hover{
  transition: 1.5s;
  color: black;
}

ul {
  background-color: #B79b58;
  overflow: auto;
}

li {
  list-style-type: none;
}
<nav style="position: sticky; position: -webkit-sticky;">
  <ul align="left">
    <li><a href="#/contact" class="nav-selections" style="margin-right:35px;">Contact</a></li>
    <li><a href="#/about" class="nav-selections">About</a></li>
    <li><a href="#/products" class="nav-selections">Products</a></li>
    <li><a href="#" class="nav-selections">Home</a></li>
  </ul>
</nav>


10
pozisyon: yapışkan nerede sopa tel için bir coordonate ihtiyacı
G-Cyrillus

37
Ayrıca, ana öğelere de dikkat etmelisiniz. position: stickyEğer dikkatli değilseniz ve esnek bir kutuda değilse çalışmayı durdurabilir ve içinde overflow: hiddenya da overflow: autoarasında ve içinde kayan herhangi bir şey varsa (gövde kökü veya taşma ile en yakın ata: kaydırma)
başarısız olur

3
@ user56reinstatemonica8 OMG thankkkkyou bana çok şey anlattığın için overflow: hiddenve overflow: auto! Bu saçmalığın işe yaramaya çalıştığı
günlerdir başımı kaşıyorum

Yanıtlar:


207

Yapışkan konumlandırma, göreceli ve sabit konumlandırmanın bir melezidir. Eleman, belirtilen bir eşiği geçene kadar göreli olarak konumlandırılır ve bu noktada sabit konumlandırılmış olarak değerlendirilir.
...
Sen en az biriyle eşiği belirtmelisiniz top, right, bottomveya leftdavranır yapışkan konumlandırma için beklendiği gibi. Aksi takdirde, göreli konumlandırmadan ayırt edilemez olacaktır. [ kaynak: MDN ]

Bu nedenle, örneğinizde, topözelliği kullanarak sonuna yapışması gereken konumu tanımlamanız gerekir .

html, body {
  height: 200%;
}

nav {
  position: sticky;
  position: -webkit-sticky;
  top: 0; /* required */
}

.nav-selections {
  text-transform: uppercase;
  letter-spacing: 5px;
  font: 18px "lato", sans-serif;
  display: inline-block;
  text-decoration: none;
  color: white;
  padding: 18px;
  float: right;
  margin-left: 50px;
  transition: 1.5s;
}

.nav-selections:hover {
  transition: 1.5s;
  color: black;
}

ul {
  background-color: #B79b58;
  overflow: auto;
}

li {
  list-style-type: none;
}
<nav>
  <ul align="left">
    <li><a href="#/contact" class="nav-selections" style="margin-right:35px;">Contact</a></li>
    <li><a href="#/about" class="nav-selections">About</a></li>
    <li><a href="#/products" class="nav-selections">Products</a></li>
    <li><a href="#" class="nav-selections">Home</a></li>
  </ul>
</nav>


124
Genel olarak, bu cevap çalışmak için yapışkan değildir, ebeveyn de taşma özelliğine sahip olmamalıdır.
ViliusL

Yorumun için teşekkür ederim. OP'den başka örnekler için cevabımın yeterli olmayabileceğini kabul ediyorum. Diğer cevaplar bunu gösteriyor :)
Marvin

Ben hile pozisyon yapışkan sadece bilinen bir yüksekliği ile kaydırılabilir bir ebeveyn ait çocuklara uygulanabilir olduğunu düşünüyorum, (bir flexbox doğrudan çocuklar diğer flex-öğe hesaplanan bir bilmek yüksekliği vardır)
code4j

@ViliusL Yorumunuz için teşekkür ederiz! Pozisyonla yaşadığım sorun buydu: yapışkan, sizin için olmasaydı bu bilgiyi hiçbir yerde bulamadığım için bilmem.
Piotr Szlagura

yapışkan konumu taşma özelliği olan bir üst öğeye sahip olmamalıdır, ayrıca bazı web tarayıcılarında yapışkan desteklenmez
Rohan Shenoy

334

Bir ata elemanının taşma ayarlı olup olmadığını kontrol edin (örn. overflow:hidden); değiştirmeyi deneyin. DOM ağacını beklediğinizden daha yükseğe çıkmanız gerekebilir =).

Bu, position:stickytorun öğenizi etkileyebilir .


36
Size birden fazla kez oy verebilseydim! Bu beni itiraf etmekten daha sık ısırdı.
Alexander Varwijk

2
Bu doğru cevap. Ancak, hangi üst öğenin soruna neden olduğunu bulmak zor olabilir. Sorunu tanımlayan ebeveynlerde taşma özelliğini tanımlamaya yardımcı olmak için bir jquery komut dosyası yazdım (sadece konsolunuzda çalıştırın). Betik birkaç satır olduğundan aşağıdaki betiği içeren bir cevap ekledim.
danday74

5
"Ana öğelerinizdeki
che-azeh

5
Ben de "s" :( özledim ve sorun buydu. Birçok yerde insanlar tüm ebeveynleri değil sadece ebeveyn kontrol gerektiğini yazıyorum. Sorunumu $(stickyElement).parents().css("overflow", "visible")web konsolundan arama yardımcı olup olmadığını kontrol ederek buldum ve o yaptı. overflow:hiddensoruna neden olan stile sahip uzak ebeveyn . Keşke bu cevabı daha dikkatli okumak isterdim
Mariusz Pawelski

2
Kontrol etmeniz gerekiyorsa overflow:hidden, belirli bir öğenin tüm ebeveynlerini / atalarını kontrol etmek için bu komut dosyasını tarayıcı konsolunuzda çalıştırabilirsiniz: gist.github.com/brandonjp/478cf6e32d90ab9cb2cd8cbb0799c7a7
brandonjp

101

Aynı problemim var ve cevabı burada buldum .

Öğeniz beklendiği gibi yapışmazsa, kontrol edilmesi gereken ilk şey, kaba uygulanan kurallardır.

Özellikle, üst öğe üzerinde ayarlanmış herhangi bir taşma özelliği olup olmadığına bakın. : , Veya öğenin üst öğesinde kullanamazsınız .overflow: hiddenoverflow: scrolloverflow: autoposition: sticky


Bu da doğru cevap ama aynı zamanda soruna neden olan ebeveyni kolayca tanımlamaya yardımcı olan cevabımı da görün.
danday74

10
Sen en yakın üst konteynere ancak tüm üst öğe sadece kontrol etmelidir s .
Mariusz Pawelski

Evet, tam olarak bunu yapmak için cevabımı görün ve TÜM ebeveynleri çok hızlı bir şekilde kontrol edin
danday74

1
Bağlantı da bana yardımcı oldu. Benim sorunum tarafından çözüldü "... Taşma kullanmıyorsanız ve hala sorun yaşıyorsanız ebeveyn üzerinde bir yükseklik ayarlanıp ayarlanmadığını kontrol etmeye değer ..."
xenetics

Hayat kurtarıcı, sorun için gerçekten basit bir açıklama, ama bu sadece meraklı bir çalışma var
Rahul Singh

32

Karşılaştığım birkaç şey daha var:

Yapışkan öğeniz bir bileşen olduğunda (açısal vb.)

  • 'Yapışkan' öğenin kendisi, adında açısal bir bileşen gibi özel bir öğe seçiciye sahip bir bileşense, bileşenin css'sine <app-menu-bar>aşağıdakileri eklemeniz gerekir:

    :host { display: block; }   

    veya

    app-menu-bar  { display: block; }   // (in the containing component's css)

    Özellikle iOS'ta Safari, açısal bir uygulamanın display:blockkök öğesinde bile gerekiyor gibi görünüyor app-rootveya yapışmayacak.

  • Eğer bir bileşen oluşturma ve bileşenlerin içinde css tanımlıyorsanız emin olun, (DOM / kapsüllü stilleri gölge) position: sticky(. Örn 'dış' seçicinin uygulanıyor app-menu-barDevTools'un yapışkan pozisyonunu göstermesi gerekir) ve bir üst düzey div içinde bileşen. Angular ile bu, :hostbileşeniniz için css'deki seçici ile gerçekleştirilebilir .

    :host
    {
        position: sticky;
        display: block;   // this is the same as shown above
        top: 0;
        background: red;    
    }

Diğer

  • Yapışkan öğenizi takip eden öğenin sağlam bir arka planı varsa, altından kaymasını durdurmak için aşağıdakileri eklemeniz gerekir:

    .sticky-element { z-index: 100; }
    .parent-of-sticky-element { position: relative; }
  • Yapışkan öğeniz kullanılıyorsa önce (içeriğinizin önünde) topve kullanılıyorsa sonra olmalıdır bottom.

  • overflow: hiddenSarma elemanınızda kullanırken komplikasyonlar vardır - genel olarak içindeki yapışkan elemanı öldürür. Bu soruda daha iyi açıklanmış

  • Mobil tarayıcılar, ekran klavyesi görünür olduğunda yapışkan / sabit konumlu öğeleri devre dışı bırakabilir. Tam kurallardan emin değilim (kimse biliyor mu), ancak klavye göründüğünde pencereye bir tür 'pencere' bakıyorsunuz ve bir şeyleri kolayca yapıştıramayacaksınız. gerçek görünür ekran üstü.

  • Sahip olduğundan emin ol:

    position: sticky;

    ve yok

    display: sticky;

Çeşitli kullanılabilirlik sorunları

  • Tasarımınız mobil cihazlarda ekranın altına bir şeyler yapıştırmayı gerektiriyorsa dikkatli olun. Örneğin iPhone X'ta kaydırma bölgesini (ana sayfaya geri dönmek için) belirtmek için dar bir çizgi gösterirler ve bu bölgedeki öğeler tıklanabilir değildir. Yani bir şey yapıştırırsanız, iPhone X üzerinde kullanıcıların etkinleştirebileceğini test ettiğinizden emin olun. İnsanlar tıklayamazsa büyük bir 'Şimdi Satın Al' düğmesi iyi değildir!
  • Facebook'ta reklam yayınlıyorsanız, web sayfası Facebook'un mobil uygulamalarındaki 'web görünümü' kontrolünde görüntülenir. Özellikle video görüntülerken (içeriğiniz yalnızca ekranın alt yarısında başlar) - genellikle sayfanızı yapışkan öğelerin sayfanın üstünden kaybolmasına izin veren kaydırılabilir bir görünüm penceresine koyarak yapışkan öğeleri tamamen karıştırırlar. Yalnızca telefonun tarayıcısında veya hatta Facebook'un tarayıcısında değil, farklı şekilde davranabilecek gerçek bir reklam bağlamında test ettiğinizden emin olun.

Hangisinin kesinlikle temizlemek değilim @Sergey display: blockve position: relativeSafari'de tetikleyicileri doğru davranış - bu sadece görünüyordu display: blockihtiyaç duyuldu? Tabii ki muhtemelen her ikisini de belirtmek acı vermez
Simon_Weaver

2
Sadece display: blockyeterliydi
Sergey

27

Bu MarsAndBack ve Miftah Mizwar'ın cevaplarının devamıdır.

Cevapları doğru. Ancak problem atalarını tanımlamak zordur.

Bunu çok basitleştirmek için, tarayıcı konsolunuzda bu jQuery komut dosyasını çalıştırmanız yeterlidir ve size her atadaki taşma özelliğinin değerini söyleyecektir.

$('.your-sticky-element').parents().filter(function() {
    console.log($(this));
    console.log($(this).css('overflow'));
    return $(this).css('overflow') === 'hidden';
});

Bir ata overflow: visible, CSS'sini değiştirmediği şekilde değiştirir!

Ayrıca, başka bir yerde belirtildiği gibi, yapışkan öğenizin CSS'de buna sahip olduğundan emin olun:

.your-sticky-element {
    position: sticky;
    top: 0;
}

2
Bu çok yardımcı oldu. Değeri olan ana öğeyi hızlı bir şekilde tanımlayabildim overflow: invisible.
David Brower

4
Sayfanızda jQuery yoksa, eklemek için konsoldaki bu küçük snippet'i çalıştırabilirsiniz: (async function() { let response = await fetch('https://code.jquery.com/jquery-3.3.1.min.js'); let script = await response.text(); eval(script); })();
magikMaker

8
: Ayrıca sigara "görünür" taşma ebeveyn bulmak için JQuery gerektirmez bu pasajı çalıştırabilirsiniz olan son öğe geliştirici araçları seçildi. var p = $0.parentElement; while(p != null) { var ov = getComputedStyle(p).overflow; if(ov !== 'visible') console.warn(ov, p); else console.log(ov, p); p = p.parentElement; }$0
Mariusz Pawelski

position: fixedJavaScript ile uygun özellikler de ele alınabilir . Soru, JavaScript gereksinimini belirtmiyor.
vintproykt

12

Çalıştırmak için aşağıdaki CSS'yi kullanmak zorunda kaldım:

.parent {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
    overflow: visible;
}

.sticky {
    position: sticky;
    position: -webkit-sticky;
    top: 0;
}

Yukarıdaki doz işe yaramazsa ...

Tüm ataları gözden geçirin ve bu öğelerin hiçbirinin olmadığından emin olun overflow: hidden. Bunu şu şekilde değiştirmeniz gerekir:overflow: visible


1
ekran: flex bir şey yapar
MaciejLisCK

6

Bununla karşılaşırsanız ve yapışkanınız çalışmıyorsa, üst öğeyi şu şekilde ayarlamayı deneyin:

display: unset

Benim için çalıştı


İşte bu o.
mm-93

Ah! Bu, bir üst öğenin sınırlı bir yüksekliğe sahip olması durumunda (örneğin, tüm gövde veya sayfa kapsayıcısının aksine bir navbar kabı veya bir şey) olması için bir çözüm gibi görünüyor - yapışkanların kendi dışına kaydırmak istemediği anlaşılıyor Ebeveynler (ki bu tamamen saçma!) Şimdi herkesin ebeveyni kurabileceği kadar şanslı olması gerekiyor display: unsetki, bu her zaman hemen geçerli olmayabilir
Ben Philipp

Ayrıca contents, initial(?) Veinline
Ben Philipp

5

Benim için açık olmayan komik an: position: stickyDevTools kullanarak ayarladıysanız en azından Chrome 70'te uygulanmaz.


Bunun için bir kaynağınız veya bu sorunu nasıl çözeceğiniz hakkında başka bilgileriniz var mı?
AJMansfield

5

Yapışacak olan navbarın başka içerikli herhangi bir div veya bölüm içinde olmaması gerekir. Navbar'ın başka bir topbar ile paylaştığı div'den çıkana kadar çözümün hiçbiri benim için çalışmadı. Daha önce ortak bir div ile sarılmış topbar ve navbar vardı.


Teşekkür ederim, aradığım şey buydu! Benim için taşan ebeveynler veya yükseklik sorunları yoktu. Bu bilgiyi kabul edilen cevapta görmek güzel olurdu.
saglamcem

Sadece yapışkanın ana öğesinin dışına kaymayacağını deneyerek öğrendim. Başka kaç kardeşi olduğu çok önemli değil, ancak ebeveyninin görünüşte bir navbar konteyneri olamayacağı, ancak bir sayfa / içerik konteynerinin tle düzeyinde bir şey olması gerekiyor :( Bu çok saçma
Ben Philipp

Ama Lo! Yapabiliyorsanız, sınırlayıcı ebeveyni olarak ayarlarsanız display: unset, bu kısıtlama kaldırılır! bkz. stackoverflow.com/a/60560997/2902367 Ayrıca contents, initial(?) veinline
Ben Philipp

4

yorumumdan:

position:sticky nereye yapışmak için bir coordonate ihtiyacı

nav {
  position: sticky;
  top: 0;
}

.nav-selections {
  text-transform: uppercase;
  letter-spacing: 5px;
  font: 18px "lato", sans-serif;
  display: inline-block;
  text-decoration: none;
  color: white;
  padding: 18px;
  float: right;
  margin-left: 50px;
  transition: 1.5s;
}

.nav-selections:hover {
  transition: 1.5s;
  color: black;
}

ul {
  background-color: #B79b58;
  overflow: auto;
}

li {
  list-style-type: none;
}

body {
  height: 200vh;
}
<nav>
  <ul align="left">
    <li><a href="#/contact" class="nav-selections" style="margin-right:35px;">Contact</a></li>
    <li><a href="#/about" class="nav-selections">About</a></li>
    <li><a href="#/products" class="nav-selections">Products</a></li>
    <li><a href="#" class="nav-selections">Home</a></li>
  </ul>
</nav>

FF ve Chrome dışındaki diğer tarayıcılarda kullanılacak çoklu dolgu var. Bu, tarayıcılar aracılığıyla herhangi bir zamanda uygulanabilen veya uygulanamayan deneysel bir kuraldır. Chrome birkaç yıl önce ekledikten sonra bıraktı, geri döndü ... ama ne kadar sürecek?

En yakın konum şu olurdu: kaydırma sırasında güncellenen göreceli + koordinatlar bir kez yapışkan noktaya ulaştı, eğer bunu bir javascript betiğine dönüştürmek istiyorsanız


4

Bunun zaten cevaplanmış gibi göründüğünü biliyorum, ama belirli bir vakaya rastladım ve çoğu cevabın noktayı kaçırdığını hissediyorum.

overflow:hiddenCevaplar vakaların% 90'nını. Bu aşağı yukarı "yapışkan nav" senaryosudur.

Ancak yapışkan davranış en iyi bir kabın yüksekliği içinde kullanılır. Web sitenizin sağ sütununda, sayfayı aşağı kaydıran bir bülten formu düşünün. Yapışkan öğeniz kabın tek çocuğuysa, kap aynı boyuttadır ve kaydırılacak yer yoktur.

Kapsayıcınızın öğenizin içeri kaymasını beklediğiniz yükseklik olması gerekir. Hangi "sağ sütun" senaryomda sol sütunun yüksekliği. Bunu başarmanın en iyi yolu display:table-cellsütunlarda kullanmaktır . Yapamıyorsanız ve sıkıştığım float:rightgibi ve benim gibi, ya Javascript ile hesaplamak için sol sütun yüksekliğini tahmin etmek gerekir.


2
"Yapışkan öğeniz kabın tek çocuğuysa, kapla aynı boyuttadır ve kaydırılacak yer yoktur." ALTIN!!! Teşekkür ederim!
Mark Jackson

Evet! Bunu çözmem için biraz zamanımı aldı. İlk başta saçma bir kısıtlama buldum, ancak en azından bunun için bir seçenek olması gerektiğini düşünüyorum . Gibi bir şey tercih ederdim sticky-limit: parent, sticky-limit: bodyya da sticky-limit: nth-parent(3)... Her neyse: Yapabiliyorsanız, stackoverflow.com/a/60560997/2902367'dedisplay: unset belirtildiği gibi sınırlayıcı ebeveyn olarak ayarlayarak bu sınırlamayı kaldırabilirsiniz . Ayrıca , (?) Vecontentsinitialinline
Ben Philipp

3

Bunun eski bir yazı olduğunu biliyorum. Ama son zamanlarda pozisyonla uğraşmaya başlayan benim gibi biri varsa: yapışkan bu yararlı olabilir.

Benim durumumda bir grid öğesi olarak yapışkan pozisyon kullanıyordum. Çalışmıyordu ve sorun bir taşma-x: htmlöğede gizli . Bu özelliği kaldırır kaldırmaz iyi çalıştı. Taşma-x: bodyöğe üzerinde gizli tho tho gibi görünüyordu, henüz bir fikrim yok.


1

burada iki cevap:

  1. overflowmülkü bodyetiketten kaldır

  2. set height: 100%için bodybirlikte sorunu çözmek içinoverflow-y: auto

min-height: 100% yerine çalışmıyor height: 100%


1

Bu makalenin nasıl stickyçalıştığı hakkında çok şey söylediğine inanıyorum

CSS Pozisyon Yapışkan Gerçekten Nasıl Çalışır! CSS pozisyon yapışkan iki ana parçaları vardır, yapışkan madde ve yapışkan konteyner .

Yapışkan Öğe  - konumla tanımladığımız öğedir: yapışkan stiller. Görünüm, konum, örneğin, konum tanıma eşleştiğinde elemanı yüzer: top: 0px.

Yapışkan Kapsayıcı - yapışkan öğeyi saran HTML öğesidir. Bu, yapışkan öğenin yüzebileceği maksimum alandır.

Position: sticky olan bir öğeyi tanımladığınızda, üst öğeyi otomatik olarak yapışkan bir kap olarak tanımlarsınız!


1

Yapışkan bir elemanın gerçek davranışı:

  • İlk olarak bir süre göreceli
  • sonra bir süre sabittir
  • Sonunda, görünümden kaybolur

Yapışkan olarak konumlandırılmış bir eleman, içerme bloğu akış kökü (veya içinde kaydırdığı kap) içinde belirtilen bir eşiği (örneğin, ayar değeri otomatik olarak dışında bir değere) geçinceye kadar göreli olarak konumlandırılır ve bu noktada "sıkışmış" olarak işlem görür "içeren bloğun karşı kenarını karşılayana kadar.

Öğe, belgenin normal akışına göre konumlandırılır ve daha sonra üst, sağ, alt değerlerine dayalı olarak tabloyla ilgili öğeler dahil en yakın kaydırma atasına ve içeren bloğa (en yakın blok düzeyi atası) göre kaydırılır. ve sol. Ofset, diğer öğelerin konumunu etkilemez.

Bu değer her zaman yeni bir yığın içeriği oluşturur. Yapışkan bir öğenin, en yakın gerçekte kaydırma atası olmasa bile, "kaydırma mekanizması" (taşma gizli, kaydırma, otomatik veya yer paylaşımı oluşturulduğunda oluşturulan) olan en yakın ataya "yapıştığını" unutmayın.

Bu örnek anlamanıza yardımcı olacaktır:

code https://codepen.io/darylljann/pen/PpjwPM


0

danday74'ün düzeltmesi işe yaramazsa, üst öğenin yüksekliğinin olup olmadığını kontrol edin.

Benim durumumda biri solda biri sağda olmak üzere iki çocuğum vardı. Doğru yüzen kişinin yapışkan olmasını istedim, ancak <div style="clear: both;"></div>ebeveynin sonuna bir yükseklik eklemek için a eklemek zorunda kaldım .


Bunun neden biri tarafından reddedildiğinden emin değilim, ama bu tam olarak benim durumumdu: float:leftAna öğeye ekledim (şamandıra olmadan yüksekliği 0 idi) ve position:stickyçalıştı.
aexl

0

Bir JS çözümü kullandım. Firefox ve Chrome'da çalışır. Herhangi bir sorun, bana bildirin.

html

<body>
  <header id="header">
    <h1>Extra-Long Page Heading That Wraps</h1>
    <nav id="nav">
      <ul>
        <li><a href="" title="">Home</a></li>
        <li><a href="" title="">Page 2</a></li>
        <li><a href="" title="">Page 3</a></li>
      </ul>
    </nav>
  </header>
  <main>
    <p><!-- ridiculously long content --></p>
  </main>
  <footer>
    <p>FOOTER CONTENT</p>
  </footer>
  <script src="navbar.js" type="text/javascript"></script>
</body>

css

nav a {
    background: #aaa;
    font-size: 1.2rem;
    text-decoration: none;
    padding: 10px;
}

nav a:hover {
    background: #bbb;
}

nav li {
    background: #aaa;
    padding: 10px 0;

}

nav ul  {
    background: #aaa;
    list-style-type: none;
    margin: 0;
    padding: 0;

}

@media (min-width: 768px) {

    nav ul {
        display: flex;
    }
}

js

function applyNavbarSticky() {
    let header = document.querySelector('body > header:first-child')
    let navbar = document.querySelector('nav')
    header.style.position = 'sticky'

    function setTop() {
        let headerHeight = header.clientHeight
        let navbarHeight = navbar.clientHeight
        let styleTop = navbarHeight - headerHeight

        header.style.top = `${styleTop}px`
    }

    setTop()

    window.onresize = function () {
        setTop()
    }
}

0

z-indexaynı zamanda çok önemlidir. Bazen işe yarar ama göremezsiniz. Emin olmak için çok yüksek bir sayıya ayarlamayı deneyin. Ayrıca her zaman koymayın top: 0ama bir yere (araç çubuğunun altında) gizlenmesi durumunda daha yüksek bir şey deneyin.


0

İşte beni harekete geçiren şey ... yapışkan div'ım başka bir div'ın içindeydi, bu nedenle üst div, yapışkan div'ın yapışkan içeriğinin diğer içeriği "kaydırması" için "yeterince uzun" olmasını sağlamak için ek div'a bazı ek içeriğe ihtiyaç duyuyordu. aşağı kaydırırsınız.

Benim durumumda, yapışkan div'ın hemen ardından şunu eklemek zorunda kaldım:

    %div{style:"height:600px;"} 
      &nbsp;

(Uygulamamda solda "uzun" bir resim ve sağda kısa bir veri giriş formu bulunan iki yan yana div var ve siz aşağı kaydırdıkça veri giriş formunun resmin yanında süzülmesini istedim, bu yüzden form her zaman ekrandadır. Ben yukarıdaki "ekstra içeriği" ekleyene kadar işe yaramaz bu yüzden yapışkan div "üzerinde kaymak" bir şey var


-1

O DOĞRU var overflowihtiyaçlar kaldırıldı veya ayarlanacak initialyapmak için position: stickyalt öğe üzerinde çalışmalarını. Açısal uygulamamda Malzeme Tasarımı kullandım ve bazı Malzeme bileşenlerinin overflowdeğeri değiştirdiğini öğrendim . Senaryom için düzeltme

mat-sidenav-container, mat-sidenav-content {
  overflow: initial;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.