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

Cień po najechaniu na obrazek w ramce

Object Storage Arubacloud
+2 głosów
207 wizyt
pytanie zadane 14 grudnia 2022 w HTML i CSS przez river__styx Nowicjusz (140 p.)

Siemka, potrzebuje pomocy. Po najechaniu myszką na obrazek w iframe ma pojawiać się cień i to mam załatwione, ale problem jest taki, że nawet jak ramka jest pusta to po najechaniu na nią się ten cień pojawia. Jak sprawdzić czy ramka ma zawartość i dopiero wtedy wyświetlić cień? Wymagania jakie mam to użycie tylko HTML i CSS bez JS.

Próbowałem tak, ale nie działa:

.bigimage iframe:hover + .bigimage iframe:target{
    box-shadow: 10px 10px 10px rgb(55, 55, 55);
}

bigimage to classa diva w którym jest iframe

<div class="bigimage">
        <iframe src="about:blank" name='content' class="test"></iframe>
    </div>

 

2 odpowiedzi

0 głosów
odpowiedź 14 grudnia 2022 przez ScriptyChris Mędrzec (190,190 p.)

Nie da się ostylować wnętrza iframe przy pomocy CSS z zewnątrz, ponieważ jest to osobny dokument. Jeśli już tworzysz iframe z jakąkolwiek treścią, to możesz skorzystać z atrybutu srcdoc, żeby inline-owo wstawić tam HTML razem z CSS. Ewentualnie, jeśli iframe będzie w tej samej domenie, możesz JS-em dostać się do środka przy pomocy contentDocument i wtedy manipulować stylami.

0 głosów
odpowiedź 15 grudnia 2022 przez VBService Ekspert (253,340 p.)
edycja 15 grudnia 2022 przez VBService

To może taki trick

[ on-line ]

<div class="bigimage">
  <iframe src="about:blank" name="content" class="test"></iframe>
</div>

<div class="bigimage">
  <iframe src="" name="content" class="test"></iframe>
</div>

<div class="bigimage">
  <iframe src="https://picsum.photos/150/200?random=1" 
          name="content" class="test"></iframe>
</div>
.bigimage iframe:not([src="about:blank"], [src=""]):hover {
  box-shadow: 10px 10px 10px rgb(55, 55, 55);
}

 

 

 

BTW, przyjrzyj się dokładnie co robi selector + (plus)

div + p
Wybiera pierwszy element <p>, który jest umieszczony bezpośrednio po elementach <div>

[ on-line ]

.bigimage:hover + .bigimage iframe {
  box-shadow: 10px 10px 10px red;
}
.bigimage iframe:hover + .bigimage iframe {
  box-shadow: 10px 10px 10px green;
}

 

 

P.S. [ on-line 1 ]  [ on-line 2 ]  [ on-line 3wink - mam nadzieję, że będą inspiracją do dalszych eksperymentów nad wyglądem takiej galerii.

Podobne pytania

0 głosów
1 odpowiedź 287 wizyt
pytanie zadane 1 czerwca 2018 w HTML i CSS przez Kiszony Użytkownik (630 p.)
0 głosów
0 odpowiedzi 755 wizyt
pytanie zadane 31 sierpnia 2020 w HTML i CSS przez rob Bywalec (2,440 p.)
0 głosów
2 odpowiedzi 1,495 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...