Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML]Przezroczysty div na calej wysokosci strony.
Forum PHP.pl > Forum > Przedszkole
cros
Chodzi o to, ze chce przykryc cala zawartosc strony divem (polprzezroczystym), w ktorym mam zamiar umiescic panel logowania.
Stosuje taki kod (w uproszczeniu)
Kod
<div id="tresc strony" style="z-index: 1; width:100%; height:100%; background-color:#ffffff; text-align:center;">
...jakas tresc strony...
</div>
<div id="zaslona_logowanie" style="z-index 2; position: absolute; left: 0px; top:0px; background-color:black; filter: alpha(opacity=80); -moz-opacity: 0.8; opacity: 0.8; width:100%; height:100%;">
...panel logowania...
</div>

Niby wszystko ok, ale gdy tresc strony jest dluzsza (wyzsza) od wysokosci okna przegladarki, to przykryta zostaje tylko czesc strony, a gdy scrollbarem zjade nizej,
to strona juz wyglada normalnie.
Wiem ze jest taka mozliwosc, bo widuje to na innych stronach, ale pomimo setek prob, nie udaje mi sie osiagnac takiego efektu.
Strona, na ktorej zawartosc zostaje calkowicie przykryta, nawet jak zjedzie sie scrollem na sam dol: KLIK, wystarczy kliknac w sugestie, ktore znajduja sie po prawej stronie (z boku), a strona calkowicie zostaje przyciemniona.
Zna ktos rozwiazanie?
Szeszek1992
zastosuj position:fixed
cros
Niestety "position:fixed;" nie dziala w IE, przez co divy nie nakladaja sie na siebie, tylko jeden jest pod drugim.
Czy sa jakies inne mozliwosci?
krzysztof_kf
Z tego co wiem to są problemy z position w ie biggrin.gif denerwuję mnie ta przeglądarka ...
cros
Dokladnie, juz kombinuje na rozne sposoby, raz z opacity, a pozniej z polprzezroczystym png, ale zawsze przykrywa tylko ta czesc strony, ktora na poczatku jest widoczna, po zjechaniu scrollbarem nizej, juz mam normalne tlo.
position:Fixed zalatwia sprawe w FF w 100%, ale jak zwykle IE ma problemy, niestety ludzie nadal korzystaja z tego badziewia i trzeba sie pomeczyc :/

PS!
Ma ktos pod reka kod javascript, ktory dopasowuje wysokosc (albo polozenie) diva do wysokosci strony?
Probowalem wygooglac, ale nie potrafie sformulowac zapytania, wyskakuja mi rozne dziwne rzeczy, oprocz tego co potrzebuje biggrin.gif
W tym przykladzie strony, ktory podalem w 1 poscie, widac ewidentnie ze sprawe zalatwili javascript, bo widac jak div sie "nadpisuje", gdy szybko przewijamy strone. Probowalem podejrzec zrodlo, zeby wyjac czego mi trzeba, ale tam to jest masakra w tym kodzie winksmiley.jpg
ziqzaq
"Półprzezroczyste warstwy overlay i okienka div". Aby mieć możliwość przewijania treści w tle daj sobie overflow-x:hidden; i overflow-y:auto;
krzysztof_kf
A wspierasz jeszcze ie 6 ? jak nie to zamiast position: absolute daj te position: fixed; i działa poprawnie pod 7 i 8 biggrin.gif
cros
Cytat(krzysztof_kf @ 20.04.2010, 18:58:29 ) *
A wspierasz jeszcze ie 6 ? jak nie to zamiast position: absolute daj te position: fixed; i działa poprawnie pod 7 i 8 biggrin.gif

No u mnie pod IE 8 nie dziala fixed, div z tlem laduje pod divem z zawartoscia.
krzysztof_kf
A może byś wrzucił dokumentację odpowiednią bo to też dużo daję biggrin.gif

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2">
  3. <meta name="language" content="pl">
  4. </head>
  5. <div id="tresc strony" style="z-index: 1; width:100%; height:100%; background-color:#ffffff; text-align:center;">
  6. ...jakas tresc strony...
  7. </div>
  8. <div id="zaslona_logowanie" style="z-index 2; position: fixed; left: 0px; top:0px; background-color:black; filter: alpha(opacity=80); -moz-opacity: 0.8; opacity: 0.8; width:100%; height:100%;">
  9. ...panel logowania...
  10. </div>
  11.  
  12. </body>
  13. </html>
cros
Cytat(ziqzaq @ 20.04.2010, 18:55:08 ) *
"Półprzezroczyste warstwy overlay i okienka div". Aby mieć możliwość przewijania treści w tle daj sobie overflow-x:hidden; i overflow-y:auto;

To powoduje, ze gdy wyswietli mi sie ta warstwa przykrywajaca tresc strony, to wtedy nie moge korzystac z przewijania, wszystko wraca do normy (mozna przewijac), gdy "przykrycie" zostanie wylaczone - nie wiem czy o to ci chodzilo, ale ten efekt jest nawet fajny, narazie z niego skorzystam, dokpoki nie wykombinuje czegos innego.

Cytat(krzysztof_kf @ 20.04.2010, 19:24:24 ) *
A może byś wrzucił dokumentację odpowiednią bo to też dużo daję biggrin.gif

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2">
  3. <meta name="language" content="pl">
  4. </head>
  5. <div id="tresc strony" style="z-index: 1; width:100%; height:100%; background-color:#ffffff; text-align:center;">
  6. ...jakas tresc strony...
  7. </div>
  8. <div id="zaslona_logowanie" style="z-index 2; position: fixed; left: 0px; top:0px; background-color:black; filter: alpha(opacity=80); -moz-opacity: 0.8; opacity: 0.8; width:100%; height:100%;">
  9. ...panel logowania...
  10. </div>
  11.  
  12. </body>
  13. </html>

Mam caly naglowek strony winksmiley.jpg Mysle ze moze nie mam odpowiednio zaktualizowanego IE 8 i dlatego u mnie fixed nie dziala, albo cos w kodzie mam nie tak, co raczej nie wchodzi w gre.
krzysztof_kf
Faktycznie patrzyłem po przez ie-tester biggrin.gif
zegarek84
Cytat(cros @ 20.04.2010, 17:06:39 ) *
Niestety "position:fixed;" nie dziala w IE, przez co divy nie nakladaja sie na siebie, tylko jeden jest pod drugim.
Czy sa jakies inne mozliwosci?

są 2 a nawet 3 rozwiązania...

ie7 obsługuje position fixed -> musi być w trybie standardów...

w ie6 można zemulować to przez odpowiednie ułożenie warstw i nadanie position absolute -> wniosek?? jest position fixed ale leniwy microsoft ;p :
CSS Emulating Fixed Positoning -> Prosty sposób na IE

dalej... w sieci jest fajny skrypt -> google i klep jak najszybciej "ie7 javascript" (lub js - projekt hostowany przez google)... i działa position fixed na ie6 winksmiley.jpg

to pseudo trzecie rozwiązanie już nie jest rewelacyjne gdyż polega na tym, iż masz warstwę z całą stroną rozciągniętą... dajesz jej position relative i na końcu niej (jeszcze w niej ale na końcu) dodajesz tą warstwę co chciałeś z position absolute... dajesz left i top 0px i height (pewnie błąd ;p) 100% i szerokość 100% - rozciągnie się na całą warstwę ale będzie można niestety przewijać -> więc pierwsze 2 rozwiązania do tego lepiej będą wyglądać winksmiley.jpg

ps. w ie6 png przezroczystość jest ale nie pamiętam jakie - bodajże na 8 bitów?? [sorki nie chcę w błąd wprowadzać - ale nie ma pełnej przezroczystości bez skryptów]
ziqzaq
Cytat
To powoduje, ze gdy wyswietli mi sie ta warstwa przykrywajaca tresc strony, to wtedy nie moge korzystac z przewijania, wszystko wraca do normy (mozna przewijac), gdy "przykrycie" zostanie wylaczone - nie wiem czy o to ci chodzilo, ale ten efekt jest nawet fajny, narazie z niego skorzystam, dokpoki nie wykombinuje czegos innego.

A próbowałeś tego co napisałem o overflow?

//Edit: Jak chcesz to szybko przetestować to otwórz sobie demo z tej stronki i w Firebugu wyedytuj styl overflow body tak jak napisałem wcześniej.
cros
Cytat(krzysztof_kf @ 20.04.2010, 19:24:24 ) *
A może byś wrzucił dokumentację odpowiednią bo to też dużo daję biggrin.gif


Patrzylem tysiac razy i tego nie zobaczylem
Kod
<meta http-equiv="X-UA-Compatible" content="IE=5">

Przez ta linijke wszystko sie sypalo w IE8, bez tego smiga.

Cytat(ziqzaq)
A próbowałeś tego co napisałem o overflow?

//Edit: Jak chcesz to szybko przetestować to otwórz sobie demo z tej stronki i w Firebugu wyedytuj styl overflow body tak jak napisałem wcześniej.

po usunieciu tej linijki, o ktorej napisalem wyzej, wszystko smiga jak nalezy.
Dzieki chlopaki za pomoc biggrin.gif

2 dni i mnostwo nerw straconych przez bezmyslne kopiowanie naglowkow sad.gif

EDIT: Jednak problem stanowi cos innego, otoz po wpisaniu tego
Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Nie dziala position:fixed w IE8, ale za to dziala
Kod
<a href='java script:funkcja();">KLIK</a>

Ale jesli dam
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

to Fixed dziala w IE8, ale za to nie dziala odwolanie do funkcji javascript w FF.
Normalnie mam juz odsyc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.