IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Opacité s'applique à tout le div


Sujet :

CSS

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut Opacité s'applique à tout le div
    Bonjour,

    J'ai un div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="width: 263px; height: 24px; background-image: url(barre_haut.gif); padding-left: 10px; filter:alpha(opacity=70);-moz-opacity:0.70;opacity:0.70;">
    Dans ce div, j'ai des images et du texte, le problème est, que je veux appliquer seulement l'opacité 70 à l'image de fond de mon div (barre_haut.gif), je veux que les images et le texte soient à opacité maximum...comment faire ?

    Merci d'avance pour votre aide,
    Bonne journée.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 308
    Par défaut
    Bonjour,

    L'opacité s'applique à toutes éléments contenu, et sans avoir vraiment cherché, je n'ait jamais trouver comment faire, hormis à repenser ma structure ou mes images

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    Le problème est que je ne peux pas disposer mes divs autrement, j'avais déjà essayé et c'était impossible dans ma situation.

    Ne serait-il pas possible de créer un effet de transparence avec du javascript par exemple ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2009
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 308
    Par défaut
    Peut être mais j'avoue ne jamais avoir chercher dans cette voie, et avoir préféré trouver des méthodes mettant en oeuvre moins de techno pour une simple transparence

    Si tu nous donnais un lien ou ton code source histoire de se rendre compte

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    opacity s'applique forcément à l'élément complet (textes et images), y compris ses descendants.

    Une solution serait de convertir ton image en PNG et d'appliquer une transparence directement sur l'image. L'avantage du PNG sur le GIF est justement de gérer un niveau de transparence par pixel, là où le GIF ne possède qu'une couleur totalement transparente.


    Quelques exemples ici : http://entropymine.com/jason/testbed/pngtrans/

    Seul problème : cela ne fonctionne pas sous IE5.5 et IE6.
    Si tu as besoin de supporter ces navigateurs à l'identique il faudra passer par du javascript supplémentaire pour corriger cela : http://www.twinhelix.com/css/iepngfix/

    a++

  6. #6
    BnA
    BnA est déconnecté
    Membre éclairé Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Par défaut
    Ce qui suit ne marche pas?

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    div#aRendreTransparente{
    filter:alpha(opacity=70);
    -moz-opacity:0.70;
    opacity:0.70;
    }
     
    div#aRendreTransparente *{
    filter:alpha(opacity=100);
    -moz-opacity:1;
    opacity:1;
    }
    En gros, on applique la transparence (0.7) à la DIV et son contenu, mais on redéclare directement une transparence (à 1, donc opaque) à tout le contenu de cette DIV.

    Ca, ça ne marche pas? (J'avoue que je n'ai jamais testé cette méthode)

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BnA Voir le message
    En gros, on applique la transparence (0.7) à la DIV et son contenu, mais on redéclare directement une transparence (à 1, donc opaque) à tout le contenu de cette DIV.

    Ca, ça ne marche pas? (J'avoue que je n'ai jamais testé cette méthode)
    Non avec opacity cela ne marche pas, car il s'applique à tous les éléments et il se cumule...

    Pour le filter de IE par contre je ne suis pas sûr du fonctionnement...

    De toute manière si c'est pour rendre une image transparente, autant travailler directement sur l'image

    a++

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    opacity s'applique forcément à l'élément complet (textes et images), y compris ses descendants.

    Une solution serait de convertir ton image en PNG et d'appliquer une transparence directement sur l'image. L'avantage du PNG sur le GIF est justement de gérer un niveau de transparence par pixel, là où le GIF ne possède qu'une couleur totalement transparente.


    Quelques exemples ici : http://entropymine.com/jason/testbed/pngtrans/

    Seul problème : cela ne fonctionne pas sous IE5.5 et IE6.
    Si tu as besoin de supporter ces navigateurs à l'identique il faudra passer par du javascript supplémentaire pour corriger cela : http://www.twinhelix.com/css/iepngfix/

    a++
    Tout d'abord merci pour vos réponses !

    J'aimerais appliquer ta solution, si j'ai bien compris ce n'est pas le serveur qui agit sur la transparence de l'image mais l'image elle même, donc logiquement il faut un logiciel pour le faire. Quel logiciel utiliser pour rendre mon image transparente ?

    Merci d'avance !

  9. #9
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    N'importe quel logiciel de traitement d'image fait l'affaire... comme Gimp ou PhotoShop !

    Par contre cela sort de mes compétence...

    a++

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    J'ai également trouver un code qui fonctionne surement avec la librairie GD, le voici :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php
     
    function modif_alpha($src , $dest , $alpha){
     /* 
     * webmaster@creatixnet.com - licence bananière 
     * ("faites de ce code ce que vous voulez...")
     *
     * Paramètres : $src : fichier source
     * $dest : fichier de destination
     * $alpha : transparence (entre 0 (opaque) et 127 (transparent))
     *
     * EX : modif_alpha('image.jpg', 'image.png', 70)
     * rend l'image à moitié transparente.
     */ 
     
     if (file_exists($src)) $size = getimagesize($src);
     else return FALSE; 
     
     switch($size[2])
     {
      case 1 :
       if (imagetypes() & IMG_GIF)
        $pic = imagecreatefromgif($src);
       break;
      case 2 :
       if (imagetypes() & IMG_JPG)
        $pic = imagecreatefromjpeg($src);
       break;
      case 3 :
       if (imagetypes() & IMG_PNG)
        $pic = imagecreatefrompng($src);
       break;
      default :
       if (preg_match("/\.wbmp$/i", $src) && (imagetypes() & IMG_WBMP))
        $pic = imagecreatefromwbmp($src);
     }
     if (!$pic) return FALSE;
     
     
     $new=imagecreatetruecolor($size[0], $size[1]);
     imagealphablending($new, FALSE);
     imagesavealpha ($new, true);
     $colors_num = imagecolorstotal($pic);
     
     
     for($x=0;$x<$size[0];$x++) {
       for($y=0;$y<$size[1];$y++) {
         $colorat=imagecolorat($pic,$x,$y);
         $color = imagecolorsforindex($pic, $colorat);
         $r = $color["red"];
         $g = $color["green"];
         $b = $color["blue"];
         $idx=imagecolorallocatealpha($new,$r,$g,$b,$alpha);
         imagesetpixel($new,$x,$y,$idx);
       }
     }
     imagepng($new, $dest);
     return TRUE;
    }
     
    ?>

    Je fais un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    modif_alpha('espace_membre.png', 'espace_membre.png', 70);

    Mais l'image ne s'affiche pas, pourquoi ça ?

    Et quelqu'un connaît-il la solution pour faire un png transparent avec un logiciel comme photofiltre ? Merci d'avance !

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/01/2011, 19h39
  2. table toute simple --> div+css
    Par LadyWasky dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 13/08/2010, 01h34
  3. En version 1.04, la carte n'occupe pas toute la Div
    Par jeanluc35 dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 24/08/2009, 22h48
  4. Cacher TOUT un DIV
    Par m@ximus dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 06/02/2008, 09h26
  5. afficher tout les divs qui ont leurs id commence par la chaine "select"
    Par karimphp dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/01/2008, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo