Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CSS] zmiana atrybutu rodzica
XP'ek
post 23.12.2011, 08:33:22
Post #1





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


Witam,

mam takie rozwiązanie

<div id="rodzic">
<div class="dziecko">
<a href="#">#</a>
</div>
</div>


w jaki sposób mogę po najechaniu na link wysłać zmianę tła dla div'a z id

Ten post edytował XP'ek 23.12.2011, 08:34:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
rocktech.pl
post 23.12.2011, 08:46:38
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

Ostrzeżenie: (0%)
-----


Witam.

Przy użyciu selektorów tego nie zrobisz.
Użyj JavaScriptu.


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
Sephirus
post 23.12.2011, 08:47:50
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


AFAIK nie ma pseudoklasy ani selektora pozwalającego na działanie na rodzicu z poziomu dziecka. Najlepiej posłużyć się tutaj jednak JavaScriptem. Zresztą - taką sytuację można zawsze jakoś obejść.

Najprostrza metoda JS polegała by na przygotowaniu DIVowi rodzic dodatkowej klasy "po najechaniu" na przykład #rodzic.hover, wówczas wystarczy dać elementowi A wewnątrz tego diva odpowiednie zdarzenia JS:

  1. #rodzic { /* deklaracja styli bez najechania */
  2. (...)
  3. }
  4.  
  5. #rodzic.hover { /* deklaracja styli po najechaniu */
  6. (...)
  7. }


[JAVASCRIPT] pobierz, plaintext
  1. var a = document.getElementById('rodzic').getElementsByTagName('a')[0];
  2.  
  3. a.onmouseover = function (event) {this.parentNode.parentNode.className = 'hover';}
  4. a.onmouseout = function (event) {this.parentNode.parentNode.className = '';}
[JAVASCRIPT] pobierz, plaintext


Oczywiście jest to przykład dla twojego kodu HTML wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
XP'ek
post 23.12.2011, 08:52:03
Post #4





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


tak tylko właśnie tutaj chodzi o to że classa dziecko ma zawierać 6 linków i każdy link ma inny bg dla rodzica gdy on jest :hover lub po prostu aktywny wink.gif
Go to the top of the page
+Quote Post
Sephirus
post 23.12.2011, 09:00:23
Post #5





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Też da się zrobić smile.gif Wrzuć cały kod tego to Ci to opiszę wink.gif

EDIT:

jeśli te linki są po kolei w tym divie:

  1. <div id="rodzic">
  2. <div class="dziecko">
  3. <a ... >(...)</a>
  4. <a ... >(...)</a>
  5. <a ... >(...)</a>
  6. <a ... >(...)</a>
  7. <a ... >(...)</a>
  8. <a ... >(...)</a>
  9. </div>
  10. </div>


To można to łatwo cyknąć tak:

Robisz tak smile.gif

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var rodzicBg = new Array('plik1.png','plik2.png','plik3.png','plik4.png','plik5.png','plik6.png');
  3. var defaultRodzicBg = 'plik0.png';
  4.  
  5. var aList = document.getElementById('rodzic').getElementsByTagName('a');
  6.  
  7. for(var i = 0; i < aList.length; i++)
  8. {
  9. var a = aList[i];
  10.  
  11. a.rodzicBgIndex = i;
  12. a.onmouseover = function (event) {this.parentNode.parentNode.style.backgroundImage = 'url(' + rodzicBg[this.rodzicBgIndex] + ')';}
  13. a.onmouseout = function (event) {this.parentNode.parentNode.style.backgroundImage = 'url(' + defaultRodzicBg + ')';}
  14. }
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Sephirus 23.12.2011, 09:05:15


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
XP'ek
post 23.12.2011, 09:05:48
Post #6





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


  1. <div id="belka">
  2. <div class="belka-menu">
  3. <a class="activ1" href="#">#</a>
  4. <a class="activ2" href="#">#</a>
  5. <a class="activ3" href="#">#</a>
  6. <a class="activ4" href="#">#</a>
  7. <a class="activ5" href="#">#</a>
  8. <a class="activ6" href="#">#</a>
  9. </div>
  10. <div class="belka-masz">Masz pytanie? <strong style="color:#da251d;">Zadzwoń</strong></div>
  11. </div>



chodzi o to że dla belki jest 1px pasek na górze który idzie przez całą długość rodzica a jego kolor jest zmienny dla każdego linka

Ten post edytował XP'ek 23.12.2011, 09:10:05
Go to the top of the page
+Quote Post
Sephirus
post 23.12.2011, 09:08:26
Post #7





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No to ok wink.gif zastosuj kodzik z mojego poprzedniego postu - zmień rodzic na belka i jazda wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
XP'ek
post 23.12.2011, 09:11:55
Post #8





Grupa: Zarejestrowani
Postów: 263
Pomógł: 9
Dołączył: 3.05.2009
Skąd: Wroc

Ostrzeżenie: (0%)
-----


a jak w twoim kodzie mogę odnieść się typowo do danego A z classą bo js za bardzo nie znam...
Go to the top of the page
+Quote Post
Sephirus
post 23.12.2011, 09:17:32
Post #9





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Nie do końca rozumiem co chcesz zrobić? Napisz konkretnie co cchesz uzyskać wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:27