Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyskakwiwanie z diva po uzyciu float
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
blawat
witam,

napotkalem na taki dosyc dziwny problem - chcialem sobie zrobic div'a z dolnym obramowaniem w jakims tam kolorze, w tym div'ie mialy znajdowac sie dwa kolejne div'y - jeden z parametrem float: left a drugi float: right -> po zaystosowaniu tych parametrow oba wew. div'y wyskakuja z div'a nadrzednego... dlaczego?

moj kod:

  1. <div id="top">
  2. <div id="logo">
  3. logo
  4. </div>
  5. <div id="login">
  6. login
  7. </div>
  8. </div>
  9. </body>


i css

  1. root {
  2. display: block;
  3. }
  4.  
  5. body {
  6. font-family: "Trebuchet MS", Verdana, Arial, sans-serif;
  7. font-size: 13px;
  8. padding: 0;
  9. margin: 10px;
  10. background-color: #fff;
  11. text-align: center;
  12. }
  13.  
  14. #top {
  15. width: 100%;
  16. border-bottom: solid 1px;
  17. border-color: #CCCCCC;
  18. }
  19.  
  20. #logo {
  21. float: left;
  22. }
  23.  
  24. #login {
  25. float: right;
  26. }


wiem jak rozwiazac ta sytuacje ale nie wiem dlaczego tak sie dzieje... albo co zrobic zeby te elementy zostaly w div #top przy stosowaniu float...
thek
Wyskakują, ponieważ są opływane przez wszystkie kolejne elementy. I to niezależnie czy są one w rodzicu wspólnym, czy zupełnie poza nim, ale dalej w strukturze strony. By temu zapobiegać musisz "powiadomić" stronę, że za tymi elementami musi zachowywać się normalnie, czyli zakończyć ich opływanie. To właśnie dlatego konieczne jest użycie elementu z clear:both ustawionym. Wiele osób używa też overflow, ale moim zdaniem bardziej prawidłowe i sensowniejsze pod względem logicznym jest używanie tego pierwszego.
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.