Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Trasparenza di immagini

    Ho trovato su un sito dedicato (tra gli altri) a CSS, una interessante possibilità di cui si parla anche qui, per far apparire trasparenti le immagini e (al passaggio del mouse) farle ritornare alla originale brillantezza:
    http://www.w3schools.com/css/css_image_transparency.asp

    La cosa che mi colpisce è che (parlando di css) i redattori del sito in questione presentino poi la soluzione con:
    codice:
    img.transparent {
        opacity:0.4;
        filter:alpha(opacity=40);
    (si noti il doppio metodo css3 (per firefox) e filter:alpha per MSIE).
    Poi per ottenere l'effetto di cambio opacità dicono di aggiungere in img i comandi:
    codice:
    onmouseover="this.style.opacity=1;this.filters.alpha.opacity=100"
    onmouseout="this.style.opacity=0.4;this.filters.alpha.opacity=40"
    Mi domando e domando a voi, in verità come mai non funziona (e infatti non funziona) una soluzione del tipo:
    codice:
    img.transparent {
        opacity:0.4;
        filter:alpha(opacity=40);
    img.transparent a{
        opacity:0.4;
        filter:alpha(opacity=40);
    }
    img.transparent a:hover{ 
        opacity:1.0;
        filter:alpha(opacity=100);
    }

  2. #2
    xkè la regola:
    codice:
    img.transparent a{
        opacity:0.4;
        filter:alpha(opacity=40);
    }
    da te definita, stà ad indicare che il tag <a> contenuto nel tag <img> con classe transparent, abbia una trasparenza del canale alpha pari a 0.4.
    Ma tu non puoi avere un tag <a> interno al tag <img>....
    per rendere l'effetto totalmente css-based dovresti usare la pseudoclasse :hover direttamente sul tag img:
    codice:
    img.transparent {
        opacity:0.4;
        filter:alpha(opacity=40);}
    img.transparent:hover {
        opacity:1.0;
        filter:alpha(opacity=100);}
    xò IE 6 e precedenti nn lo riconoscerebbero.
    Una soluzione possibile, anche se non elegante è invertire quello che volevi fare tu, cioè mettere l'imagine all'interno di un link (tag a) e poi impostare la modifica della trasparenza sulla pseudoclasse :hover del tag a, che è pienamente supportata da IE 6.
    Praticamente cosi:
    codice:
    [img]...[/img]
    // css
    a.transparent img{
        opacity:0.4;
        filter:alpha(opacity=40);
    }
    a.transparent :hover img{ 
        opacity:1.0;
        filter:alpha(opacity=100);
    }
    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

  3. #3
    Molto bene: devo dire però che il metodo (chiarissimo) su img:
    codice:
    img.transparent {
        opacity:0.4;
        filter:alpha(opacity=40);}
    img.transparent:hover {
        opacity:1.0;
        filter:alpha(opacity=100);}
    Funziona perfettamente sia su IE 7, sia su Firefox.
    Mentre quello che tu dici funzionante su IE 6, (link+img) su questi due browser che ho provato non funziona.
    Non sapevo (mea culpa ) che hover potesse essere usato anche per le immagini. Se ne impara sempre una.

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Su explorer 6 il supporto alla pseudoclasse :hover si limita ai soli link (<a>)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Originariamente inviato da fcaldera
    Su explorer 6 il supporto alla pseudoclasse :hover si limita ai soli link (<a>)
    difatti è quello che intendevo, solo che mi son sbagliato a scrivere il codice css , c'è uno spazio di troppo. inoltre il link aggiunge un bordo blu, quindi bisogna aggiungere una regola.
    codice:
    [img]...[/img]
    // css
    a.transparent img{
        opacity:0.4;
        filter:alpha(opacity=40);
        border:0;
    }
    a.transparent:hover img{ 
        opacity:1.0;
        filter:alpha(opacity=100);
        border:0;
    }
    funzinante su IE 5.5 +, Firefox 2.x, opera 9.x. Provalo...
    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

  6. #6
    Originariamente inviato da dvjack
    [...] funzinante su IE 5.5 +, Firefox 2.x, opera 9.x. Provalo...
    Proprio vero! Sei un grande! Ottimo risultato e grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.