• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

:hover innego diva

Cloud VPS
+1 głos
656 wizyt
pytanie zadane 24 maja 2021 w HTML i CSS przez Hubert731 Obywatel (1,650 p.)
Witam, jak zrobić, aby po najechaniu kursorem na przykladowo zdjecie, zmienialy sie własciwosci innego diva?

4 odpowiedzi

+2 głosów
odpowiedź 24 maja 2021 przez KamQiX Dyskutant (9,090 p.)

O tak:

div.class1:hover + div.class2
{
  //tutaj style dla div.class2, które będą widoczne po najechaniu na div.class1
}

 

1
komentarz 24 maja 2021 przez SzkolnyAdmin Szeryf (90,110 p.)
Ale to oznacza, że div o klasie "class2" znajduje się wewnątrz div-a o klasie "class1". Pytającemu nie o to chodziło.
komentarz 24 maja 2021 przez Hubert731 Obywatel (1,650 p.)

no wlasnie mam cos podobnego i nie działa mi

.png:hover .title
{
 color:white;
}
<li ><span class="title">Logo</span></li>
				<img class="png" src="materialy\firma\Logo.png">

 

1
komentarz 24 maja 2021 przez ScriptyChris Mędrzec (190,190 p.)
div.class1:hover + div.class2 {}

Ale to oznacza, że div o klasie "class2" znajduje się wewnątrz div-a o klasie "class1"

@SzkolnyAdmin, nie, ponieważ tu jest użyty selektor następnego przyległego rodzeństwa.

no wlasnie mam cos podobnego i nie działa mi

@Hubert Wajda, ponieważ .title nie jest wewnątrz .png, tak jak wskazuje selektor. Przy tej strukturze HTML nie obędzie się bez JS-a. Użyj even listenera na event mouseover i wtedy nadaj klasę, która w CSS będzie zmieniać kolor.

Mógłbyś ewentualnie zmienić strukturę na:

<img class="png" src="materialy\firma\Logo.png">

<li>
  <span class="title">Logo</span>
</li>

, i wtedy:

.png:hover + li .title
{
 color:white;
}

powinno działać, ale ten kod HTML nie będzie prawidłowo ustrukturyzowany, bo skoro jest tam <li>, to jego rodzicem musi być <ol> lub <ul>. Z kolei te elementy nie mogą zawierać w sobie innych dzieci niż <li> (lub <script> lub <template>), więc użycie <img> jako bezpośredniego dziecka listy jest błędem.

Tak, czy inaczej, kod HTML, który pokazałeś ma nieprawidłową strukturę. Popraw ją. Jeśli obrazek z klasą png i span z klasą title będą w osobnych elementach <li>, to nie obędzie się bez użycia JavaScriptu (CSS nie posiada bowiem selektora rodzica).

komentarz 24 maja 2021 przez Hubert731 Obywatel (1,650 p.)
Rozumiem, bardzo dziękuję za pomoc :D
komentarz 25 maja 2021 przez KamQiX Dyskutant (9,090 p.)

@ScriptyChris, @SzkolnyAdmin ma rację. Dopiero edytowałem swój wpis. Początkowo był być znaku +

0 głosów
odpowiedź 24 maja 2021 przez SzkolnyAdmin Szeryf (90,110 p.)
Tak, jeżeli div jest bratem obrazka. Poszukaj selektora brata w CSS.

Lub nadaj klasy (lepiej) albo identyfikatory (gorzej) elementom: obrazkowi i div-owi.
0 głosów
odpowiedź 24 czerwca 2021 przez VBService Ekspert (256,600 p.)

Można zastosować trik z position

<ul>
  <li>
    <img class="png" src="http://lorempixel.com/150/150/city">
    <span class="title">Logo</span>
  </li>
</ul>
ul {
  position: relative;
  list-style-type: none;
}
ul img {
  position: absolute;
  display: block;
  top: 1.2em;
}
ul .title {
  position: absolute;
  top: 0;
  font-size: 1em;

  /* dodane dla demonstracji nie wymagane ;-) */
  letter-spacing: 0;
  transition: all 0.5s;
}
.png:hover + .title
{
  color: green;

  /* dodane dla demonstracji nie wymagane ;-) */
  letter-spacing: 1em;
}

Podobne pytania

0 głosów
1 odpowiedź 321 wizyt
0 głosów
1 odpowiedź 451 wizyt
0 głosów
3 odpowiedzi 1,394 wizyt
pytanie zadane 29 marca 2018 w HTML i CSS przez lukasz281992 Nowicjusz (190 p.)

93,485 zapytań

142,417 odpowiedzi

322,765 komentarzy

62,897 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...