Incerc sa fac divul de navigatie fix la scroll. Imi ramane divul in pozitie dar nu-mi pastreaza propietatile clasei “container”, adica imi muta continutul la margine.
Se poate face sa-mi ramana meniul in pozitie cu affix?
structura mea este un div jumbotron care are doua divuri container in el. in unul din containere este navigatia pe care vreau s-o fac fixa.
Le:
Am incercat si cu js -> http://jsfiddle.net/#&togetherjs=DbTl4AcHot
De fapt am incercat toate metodele, cred ca am vreo 5 ore de cand incerc sa fac
Nu
Pana intra affix eu am background transparent la meniu, dupa ce intra affix trebuie sa fie cu fundal alb width:100% dar textul(logoul si meniul) sa ramana in aceeasi pozitie.
LE: Credeam ca stiu CSS dar se pare ca habar n-am, inteleg selectorii respectivi dar habar n-am ce ai facut acolo. In plus am incercat sa modific culoarea textului pentru clasa affix dar nu-mi modifica nimic. In chrome la “inspect elements” in dreapta la styles imi arata propietatea desi in realitatea culoarea textului este neschimbata.
Chiar nu am pretentia sa-mi spui / dai mura-n gura, spune-mi doar ce sa citesc si voi fi mai mult decat recunascator si pentru asta …
În primul rând, tot navbar ăla trebuie să stea într-un div care va fi affix. De ce așa și nu affix direct pe navbar? Păi nu poți avea width:100% pe navbar;
Affix va trebui să stea într-un alt element (affix-container) pentru că odată trecut de punctul de scroll (punctul în care devine fix) va „ieși” din flow-ul documentului, astfel încât tot conținutul ce urmează va sări vreo 70px brusc în sus;
Apoi scoatem marginea de la meniul din navbar și o punem pe affix-container. Tot acestui element îi atribuim și o înălțime egală cu cea a .navbar (dacă vei avea conținut dinamic îți recomand să redimensionezi și affix-container corespunzător), astfel încât chiar dacă în interiorul lui vor fi elemente cărora li se va schimba poziția (din static/relative în fixed) nu vor fi afectate elementele ce vor urma.
Asta la mark-up. În CSS facem altele:
pentru affix-container stabilim width, height, margini (așa cum am menționat mai sus)
Singurul copil pentru affix-container va fi… affix. Aici ai putea folosi ori child selector (foo > bar), ori ai putea folosi un attribute slector: .affix-container [data-spy="affix"]. Vei avea nevoie să-i dai width:100% pentru că îl vrei cât toată fereastra browserului când va fi fixed și vei avea nevoie și left/top:0 pentru că altfel va fi mutat razna (în plus, pe android 4.x s-ar putea să nici nu fie vizibil)
îi setăm culoarea pentru background doar când capătă clasa affix (adică atunci când devine fix)
scoatem marginea de la meniu (am zis mai sus de ce)
scoatem și border/background de la meniu (din același motiv).
E mai mult decat clar . Mersi inca o data.
Incercasem si eu mai multe variante, inclusiv sa pun navbar intr-un div affix, dar nu m-a dus capul sa fac si in CSS.
Am rezolvat si cu schimbarea culorii.
.affix-container > .affix a {
color: red !important;
}