Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CSS]ukryty obrazek
Forum PHP.pl > Forum > Przedszkole
czareku
Witam. Mam taki problem, w mojej aplikacji przedstawione są poszczególne fazy tworzenia dokumentu, jesli jakaś faza jest aktywna to obrazek przedstawiajacy tą fazę ukrywa się i jest puste miejsce, jak zrobić aby kiedy dana faza jest aktywna wyświetlał się inny obrazek, np. z innym tłem? Kod wygląda tak:
czesc pliku php
Kod
<BR><h1>PPM phases</h1><BR><ul class="phases"><BR><li class="employee<?php echo ($status == 'Employee Input') ? '2' : ''?>"><span class="hidden">Employee Input</span><img src="web/imgs/arrow.png" /></li><BR><li class="manager<?php echo ($status == 'Manager Input') ? '2' : ''?>"><span class="hidden">Manager Input</span><img src="web/imgs/arrow.png" /></li><BR><li class="calibration<?php echo ($status == 'Calibration Meeting') ? '2' : ''?>"><span class="hidden">Calibration Meeting</span><img src="web/imgs/arrow.png" /></li><BR><li class="ppm<?php echo ($status == 'PPM Meeting') ? '2' : ''?>"><span class="hidden">PPM Meeting</span><img src="web/imgs/arrow.png" /></li><BR><li class="completion<?php echo ($status == 'Completion') ? '2' : ''?>"> <span class="hidden">Completion</span></li><BR></ul><BR>


czesc pliku .css:
Kod
span.hidden{
display: none;
visibility: hidden;
}
div#BODY div.personal-body div.details ul.phases {
list-style: none;
display: block;
padding: 15px 0 0 20px;
}
div#BODY div.personal-body div.details ul.phases li {
display: block;
float: left;
width: 138px;
height: 35px;
margin-left: 5px;
}
div#BODY div.personal-body div.details ul.phases li img {
position: relative;
top: 8px;
left: 126px;
}
div#BODY div.personal-body div.details ul.phases li.employee {
background: url(../imgs/periods_03.jpg) no-repeat;
margin-left: 0;
}
div#BODY div.personal-body div.details ul.phases li.employee2 {
background: url(../imgs/periods_18.jpg) no-repeat;
}
div#BODY div.personal-body div.details ul.phases li.manager {
background: url(../imgs/periods_05.jpg) no-repeat;
}
div#BODY div.personal-body div.details ul.phases li.calibration {
background: url(../imgs/periods_07.jpg) no-repeat;
}
div#BODY div.personal-body div.details ul.phases li.ppm {
background: url(../imgs/periods_09.jpg) no-repeat;
}
div#BODY div.personal-body div.details ul.phases li.completion {
background: url(../imgs/periods_11.jpg) no-repeat;
}
Cysiaczek
Dodaj tag do tematu, a kod ujmij w bbcode. W przeciwnym razie temat zostanie zamknięty.
empathon
Po co te <br /> w liście? Odstępy pomiędzy elementami w liście powinieneś ustalić w CSS.
Myślę, że wszystko wydawałoby Ci się łatwiejsze gdybyś stosował wcięcia w kodzie, zobacz:
  1. <h1>PPM phases</h1>
  2.  
  3. <ul class="phases">
  4. <li class="employee<?php echo ($status == 'Employee Input') ? '2' : ''?>">
  5. <span class="hidden">Employee Input</span>
  6. <img src="web/imgs/arrow.png" />
  7. </li>
  8. <li class="manager<?php echo ($status == 'Manager Input') ? '2' : ''?>">
  9. <span class="hidden">Manager Input</span>
  10. <img src="web/imgs/arrow.png" />
  11. </li>
  12. <li class="calibration<?php echo ($status == 'Calibration Meeting') ? '2' : ''?>">
  13. <span class="hidden">Calibration Meeting</span>
  14. <img src="web/imgs/arrow.png" />
  15. </li>
  16. <li class="ppm<?php echo ($status == 'PPM Meeting') ? '2' : ''?>">
  17. <span class="hidden">PPM Meeting</span>
  18. <img src="web/imgs/arrow.png" />
  19. </li>
  20. <li class="completion<?php echo ($status == 'Completion') ? '2' : ''?>">
  21. <span class="hidden">Completion</span>
  22. </li>
  23. </ul>


I nie twórz bez potrzeby takich długaśnych selektorów (np.: od div#body) to bardzo mało elastyczne.
Strzelam:
  1. div#BODY div.personal-body div.details ul.phases li.employee {
  2. background: url(../imgs/periods_03.jpg) no-repeat;
  3. margin-left: 0;
  4. }
  5. div#BODY div.personal-body div.details ul.phases li.employee2 {
  6. background: none;
  7. }


Edit:
Cytat
Mam taki problem, w mojej aplikacji przedstawione są poszczególne fazy tworzenia dokumentu, jesli jakaś faza jest aktywna to obrazek przedstawiajacy tą fazę ukrywa się i jest puste miejsce, jak zrobić aby kiedy dana faza jest aktywna wyświetlał się inny obrazek, np. z innym tłem?

Masz problemy z przecinkami i kropkami. Nie żałuj ich. Naprawdę trudno się przez to przebić i pomoc (nawet jak się chce).

Dla class *2 nadajesz inny background i tyle.
czareku
Dzięki za uwagi i za radę:P Chodzi o to żeby zrobić mniej więcej coś takiego? Jak uzywam hiddena to jest wszystko ok, mam wszystkie obrazki za wyjatkiem aktywnego- ktory jest ukryty. Jednak jesli robie cos takiego jak podalem nizej, tylko, ze dla wszystkich faz to automatycznie wszystkie zmieniaja swoj obrazek. Za jakas godzinke postaram sie wrzucic screeny i zobrazowac o co mi dokladniej chodzi;]

  1. <li class="employee<?php echo ($status == 'Employee Input') ? '2' : ''?>
  2. <span class="obr">Employee Input</span>
  3. <img src="web/imgs/arrow.png" /></li>

a w cssie:
  1. span.obr{
  2. width: 138px;
  3. height: 35px;
  4. background: url(../imgs/obrazek.jpg) no-repeat;
  5. }


ok, zrobiłem mała prezentacje graficzna o co mi chodzi:P tak żeby nie było niedomówień =)
rysunek na gorze oraz kod który wkleiłem w pierwszym poście przedstawia jak te fazy działają teraz, czyli ukrywa fazę aktywna (w tym przypadku "calibration meeting"), rysunek na dole pokazuje jakbym chciał, żeby to działało, jeśli robię coś takiego jak napisałem powyżej to wszystkie fazy zmieniają kolor na ten niebieski, niezależnie od tego czy są aktywne czy nie.



hm
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.