Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kolor linka po najechaniu
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
Joachim Peters
Mam zrobioną kolumne, której css wygląda tak:
  1. td.menu_links {
  2. color: #818181;
  3. padding: 5px;
  4. background-color: #fbfbfb;
  5. border-bottom: 1px #e9e9e9 solid;
  6. font-size: 11px;
  7. }

kolumna po najechaniu przyjmuje te wartości:
  1. td.menu_links:hover {
  2. color: black;
  3. padding: 5px;
  4. background-color: #f3f3f3;
  5. border-bottom: 1px #e9e9e9 solid;
  6. font-size: 11px;
  7. }


tylko jak zrobić, żeby po najechaniu na kolumne (nie na link) kolor linku też się zmieniał?
piotrd
sam css tu nie pomoże, potrzebny będzie jeszcze skrypcik js (mialem kiedys cos podobnego wiec jak znajde do go umieszcze tutaj).
revyag
Ale oczywiście wiesz że pod ie nie zadziala zmiana koloru komórki. Albo js albo http://www.xs4all.nl/~peterned/csshover.html
Co do koloru linków:
Kod
<script type="text/javascript">
function col(cond) {
    
    var a = document.getElementsByTagName("a");
    var count = a.length;
    
    for(i = 0; i < count; i++) {
        if(a[i].parentNode.nodeName == 'TD' && a[i].parentNode.className=='menu_links') {
            if(cond) {
                a[i].style.color='#ff0000';
            } else {
                a[i].style.color='#0000ff';
            }
        }
    }
}
</script>

  1. <tr>
  2. <td class="menu_links" onmouseover="col(true)" onmouseout="col(false)"><a href="">link</a></td>
  3. </tr>

Zasada działania:
Wszystkie elementy typu a są pobierane do tablicy. Następnie przelatujemy tablicę i jeśli w hierarchii dom rodzicem węzła a jest td i jego klasa to menu_links, zmieniamy kolor linka.

cond - określa czy komórka tabeli jest "najechana" snitch.gif
siemakuba
ależ kombinacyjne :) pewnie żeby w IE działało?
skoro autor daje :hover dla TD, to chyba z góry olewa IE, a skoro tak, to po co kombinować z JS?

Pytanie: jak zrobić aby kiedy TD jest w stanie "hover" zmienić kolor linka zawartego w tym TD?
Odpowiedź:
Kod
TD:hover A { color:red; }

pozdr.
kwiateusz
zamiast hover w td mozna zawsze uzyc w js onmouseover i podmienic tlo... wtedy dziala i w IE ...
babejsza
a swiją drogą nie:

Kod
border-bottom: 1px #e9e9e9 solid;


tylko:

Kod
border-bottom: 1px solid #e9e9e9;
.

Olewanie IE to duży błąd. Chyba, że strona ma się w ogóle nie wyświetlać w tej przeglądarce, tylko pokazywać komunikat o nieprzystosowaniu.
ens0re
@babejsza, wytlumacz mi jaka jest różnica? laugh.gif
@kwiateusz, a jak ktoś wyłączy obsługe JS? Nie zadziała nigdzie smile.gif
tiraeth
Tak... po co robić stronę pod IE ? smile.gif A potem na Osiołkach wylądować smile.gif

@ens0re: Należy budować strony zgodnie ze specyfikacją i standardami CSS smile.gif
ens0re
Hm? A co ja takiego napisałem, żebyś wyciągnął takie wnioski? Nie napisałem, że rozwiązanie siemakuba jest dobre. Tylko napisałem to co wyżej napisałem smile.gif
revyag
Chodzi o kolejność wartości atrybutów border.
http://www.w3.org/TR/CSS21/box.html#border...hand-properties

Ale nie wiem czy ma to znacznie, validator i tak sobie sam to ustawi w odpowiedniej kolejności.
Prph
Jest inna metoda, bardzo dobrze dzialajaca. Uzywasz do menu <ul></ul> i linki osadzasz w <li></li>.

W sklepie http://sklep.vgm.pl/ menu jest wlasnie tak rozwiazane. CSS:

  1. #menuCategories ul
  2. {
  3. list-style: none;
  4. padding: 0px;
  5. margin: 0px;
  6. }
  7.  
  8. #menuCategories li
  9. {
  10. display: inline;
  11. }
  12.  
  13. // Tu definiujesz wyglad bloczku - odstepy no i ogolny wyglad linkow
  14.  
  15. #menuCategories li a
  16. {
  17. display: block;
  18. padding: 2px 0 2px 1.2em;
  19. text-decoration: none;
  20. line-height: 12px;
  21. border: 0;
  22. font-size: 11px;
  23. border-bottom: 1px solid #d8e7f9;
  24. }
  25.  
  26. // Pozostalo jedynie ustawic co ma sie dziac z linkami po najechaniu, odwiedzeniu itp...
  27.  
  28. #menuCategories li a:link, #menuCategories li a:visited
  29. {
  30. color: #003b61;
  31. }
  32.  
  33. #menuCategories li a:hover, #menuCategories li a:active
  34. {
  35. color: #ffffff;
  36. background: #ffa800;
  37. }


Sprawdza sie to zawsze winksmiley.jpg Oczywiscie mozna zmianic li tak aby linki byly wyswietlane w linii, nie w kolumnie.

  1. <div id="menuCategories">
  2. <ul>
  3. <li><a href="">Artykuły Biurowe</a></li>
  4. </ul>
  5. </div>


Pozdrawiam, Adrian.
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.