Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Strzałka - hover
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
napixowany
Witam, jeśli byłaby taka możliwość chciałbym prosić szanownych Użytkowników o poradę. Mam mały problem dotyczący zmieniania się obrazka po najechaniu myszką. Otóż posiadam taki kod:

  1. <div id="colMenuCenter">
  2. <ol>
  3. <li><a href="#">Wydarzenia</a></li>
  4. </ol>
  5. </div>


oraz

  1. #colMenuCenter li { list-style-type: none; padding: 5px 0px; }
  2. #colMenuCenter li a { width: 156px; height: 14px; margin: 0 auto; padding: 3px 10px; display: block; text-decoration: none; }
  3. #colMenuCenter li a:hover { background-color: #352b2a; color: #feffff; text-decoration: none; }


Oprócz zmiany koloru tła zależałoby mi na tym żeby wstawić przed napisem wydarzenia taką strzałkę dla a:



oraz dla a:hover taką:



Strzałki nr 2 nie widać gdyż jest białego koloru (strzałka nr1 - li.png, strzałka nr2 - li2.png). Czy jest jakaś możliwość zrobienia tego bez ustalania tła jako np. jpg z tą strzałką? Proszę o pomoc. Pozdrawiam i z góry dziękuje.
Blame
Możesz skorzystać z pseudoelementu :before, ale nie obsługują go starsze przeglądarki winksmiley.jpg
napixowany
Rozumiem. A czy mógłbyś mi doradzić w jaki sposób go wykorzystać tak, aby ta strzałka miała dwa kolory? Brązowy i po najechaniu biały?
devnul
nie wiem czy o to Ci chodzi ale dodaj sobie dodatkowy tag - np spam czy coś w obrębie linku
  1. <a href="#"><span>strzałka</span>jakiś tekst</a>

i następnie w stylach włącz jego wyświetlanie dopiero po najechaniu na odnośnik
  1. a span {
  2. visibility: hidden;
  3. }
  4. a:hover span {
  5. visibility: visible;
  6. }
napixowany
Dziękuje za kolejną wskazówkę. Devnul próbowałem Twojego sposobu jednakże przydałby mi się tylko dla li2.png, ale wtedy uzyskałbym taki efekt.

Przed najechaniem:
puste pole Wydarzenia

Po najechaniu:
biała strzałka Wydarzenia

A mi chodzi o uzyskanie takiego efektu. Przed najechaniem
brązowa strzałka (li.png) Wydarzenia

Po najechaniu:
biała strzałka (li2.png) Wydarzenia



Problem został rozwiązany przy użyciu :before. Gorące podziękowania dla Was, a w szczególności dla Blame.
tr@k
Dla a dajesz
Kod
background: url(li.png) no-repeat left

ustawiasz odpowiedni padding-left, żeby tekst nie nachodził na strzałkę. W a:hover zmieniasz obraz na li2.png
devnul
szczerze mówiąc to nie rozumiem czemu nie chcesz użyć background-image bezpośrednio na linku wystarczyło by dla obu stanów zmieniać obrazek albo z w skorzystać ze sprita i wyświetlać tylko odpowiedni fragment obrazka.
Cytat
Dziękuje za kolejną wskazówkę. Devnul próbowałem Twojego sposobu jednakże przydałby mi się tylko dla li2.png, ale wtedy uzyskałbym taki efekt.

zamiast w takim razie chować i ukrywać możesz zmieniać kolor zawartości w span (jeśli to strzałka znakowa) lub tło. :before ma tą zaletę że nie mieszasz warstwy prezentacji z warstwą danych jednak nie będzie to działało poprawnie w nIEktórych przeglądarkach.
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.