Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS]A'la if zmieniający kolor diva po określonej czynności
Forum PHP.pl > Forum > Przedszkole
JustHuman4
Witam. Oto kod stronki:

  1. <title>bleble</title>
  2.  
  3. <style type="text/css">
  4. #pole{
  5. width: 1000px;
  6. height: 1500px;
  7. background: lime;
  8. margin: auto;
  9. -webkit-transition: all 1s linear;
  10. }
  11.  
  12. #kwadrat{
  13. width: 500px;
  14. height: 500px;
  15. background: green;
  16. margin: auto;
  17. -webkit-transition: all 1s linear;
  18. }
  19.  
  20. #kwadrat:hover{
  21. background: greenyellow;
  22. }
  23.  
  24. #pole:hover{
  25. background: gray;
  26. }
  27.  
  28.  
  29.  
  30. </style>
  31.  
  32. </head>
  33. <div id="pole">
  34. <div id="kwadrat">
  35. </div>
  36. </div>
  37.  
  38. </body>
  39. </html>



Chcę zrobić aby div "pole" zmienił kolor na szary dopiero po najechaniu na div "kwadrat".
Pozdrawiam
gothye
  1. #kwadrat:hover #pole {background-color: silver}
?
JustHuman4
Taa fajnie by było gdyby to było takie proste... Przecież to nie działa :/
Orzeszekk
bez javascriptu sie nie obejdziesz.przykład w JQuery, bo zapomnialem juz jak pisze sie w normalnym javascripcie.

<script type="text/javascript">
function swapColors()
{
$(".pole").css("background-color", "gray");
}
</script>

<div id="kwadrat" onmouseover="swapColors()"/>
viking
To co tu chciałeś zrobić za pomocą CSS niestety nie jest zaimplementowane w browserach (odwrotne poruszanie się po drzewie DOM). Tłumaczą się tym, że zabiłoby to wydajność. Jeśli nie chcesz całego jQuery to w Mootools jest biblioteka do tego https://github.com/mootools/slick albo http://mootools.net/docs/core/Slick/Slick
by_ikar
Znaczy się działa taki hover, ale działa tylko dla elementów dzieci. Nie działa dla elementów spoza rodzica do którego jest przypisane hover. Więc zadziałało by to odwrotnie. W momencie kiedy najedziesz na "pole", to możesz zrobić coś z "kwadrat". Inaczej w css się nie da..
kamil4u
Jak zmienisz trochę HTML to da radę:
  1. <html>
  2. <head>
  3. <title>bleble</title>
  4.  
  5. <style type="text/css">
  6. #pole{
  7. position: relative;
  8. width: 1000px;
  9. height: 1500px;
  10. background: lime;
  11. margin: auto;
  12. top: -500px;
  13. z-index: 10;
  14. }
  15.  
  16. #kwadrat{
  17. width: 500px;
  18. height: 500px;
  19. background: green;
  20. margin: auto;
  21. position: relative;
  22. z-index: 20;
  23. }
  24.  
  25. #kwadrat:hover{
  26. background: greenyellow;
  27. }
  28.  
  29. #kwadrat:hover + #pole{
  30. background: gray;
  31. }
  32.  
  33.  
  34.  
  35. </style>
  36.  
  37. </head>
  38. <body>
  39.  
  40. <div id="kwadrat"></div>
  41. <div id="pole"></div>
  42.  
  43. </body>
  44. </html>


A jak nie możesz to właśnie JS:
Kod
function swapColors()
{
document.getElementById('pole').style.backgroundColor = "gray";
}
JustHuman4
Ślicznie dziękuję wink.gif
Pozdrawiam
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.