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 :

propriété opacity<>z-indexe souci héritage


Sujet :

CSS

  1. #1
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut propriété opacity<>z-indexe souci héritage
    Bonjour à tous,

    j'ai un ennui de css, j'ai écrit du text par dessus une div que j'ai rendu transparente. Le texte semble hériter lui aussi de la propriété opacity, pourtant dans mon css le z-index devrait placer le texte devant et donc ne pas etre transparent.

    mon fichier css d'exemple:
    Code : 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
    @CHARSET "ISO-8859-1";
    body{
        background: black;
    }
     
    #image{
       position:relative;
       opacity:1;
       z-index:1;
    }
     
    #transparence{
       position:relative;
       top: -100px;
       left: 20%;
       background-color: white;
       padding: 50px;
       opacity:0.3;
       z-index: 10;
    }
     
    #duText{   
        position:relative;
        color: black;
        opacity:1;
        z-index:15;
        font-size:1.2em;
    }
    le html:
    Code : 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
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
        <head>
            <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./css/test.css" />
        </head>
    <body>
    <div id="image">
        <img src="images/gradien.png" width="1200" height="180" alt="gradien"/>
    </div>
    <div id="transparence">
    <?php
    echo'<div id="duText">';
    echo("Salut les gens :)");
    echo'</div>';
    ?>
    </div>
    </body>
    </html>
    je m'attendais à ce que le texte " Salut les gens " soit noir, or celui ci est noir fade, comme ci la transparence de la div "transparence" s'appliquait à la place de "duText"

    auriez vous une idée du pourquoi?

    merci de vos réponses ou orientations

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut turican2,

    Citation Envoyé par turican2
    comme ci la transparence de la div "transparence" s'appliquait à la place de "duText"
    non pas à la place mais en plus.
    ce qui me parait pratique: si tu veux appliquer une transparence à une div c'est l'ensemble qui est affecté sinon t'imagine ce serait fastidieux d'appliquer à chacun de ces enfants. remarque que l'idée qu'il pourrait hérité et que l'on pourrait forcer (!important) serait pratique, mais cela ne fonctionne pas ainsi puisque l'opacité est relative à la div parente.
    il faut donc que tu englobe dans une principale les deux div et qu'elles soient enfants directes de celle-ci.


  3. #3
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut
    oui ça fonctionne comme tu me l'indiques merci. ça va juste me forcer à faire du calcule de position mais c'est franchement pas gênant

    merci beaucoup

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Citation Envoyé par turican2
    ça va juste me forcer à faire du calcule de position
    pas tant que cela: tu met sur la balise qui engloble une position relative et le rectangle blanc transparent (fils) en absolu.


  5. #5
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    opacity s'applique en effet à tous les éléments enfants, image et texte, et tu ne peux pas l'annuler dans le fils. En fait cela applique le filtre sur tous les éléments.




    Par contre tu peux utiliser le code couleur rgba() pour utiliser une couleur transparente. L'intérêt c'est que tu peux limiter cela et l'appliquer à une seule propriété :

    Par exemple pour une couleur de fond blanc avec 30% de transparence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    background-color: rgba(255,255,255, 0.3);
    Seul problème : il faut un navigateur relativement récent (Firefox 3.0, Safari 3.1 ou Opera 10.0) et que ce n'est pas encore supporté par IE...




    Une autre solution serait d'utiliser une image PNG d'un pixel transparent, que tu utiliserais en image de fond. C'est supporté depuis IE7 si je ne me trompe pas, mais attention sous IE6 cela peut avoir un résultat affreux selon l'image (fond gris/noir).



    a++

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    adiGuba a tout à fait raison si tu n'a jusqu'une transparence à réaliser, c'est mieux de procéder ainsi.

    ne pas oublié qu'opacity ne fonctionne pas avec tout les navigateurs sous ie c'est filter...


  7. #7
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par vodiem Voir le message
    ne pas oublié qu'opacity ne fonctionne pas avec tout les navigateurs sous ie c'est filter...
    ou -ms-filter pour IE8...



    Pour tout cela je vous conseille le site "developper" de Mozilla qui est assez complet sur les propriétés et leurs supports par les différents navigateurs (Firefox, IE, Safari et Opera) : https://developer.mozilla.org/en/CSS_Reference

    Par exemple pour opacity : https://developer.mozilla.org/en/CSS/opacity

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/02/2012, 09h37
  2. Index automatique héritage
    Par biddaputzese dans le forum Général Java
    Réponses: 3
    Dernier message: 27/11/2008, 16h36
  3. Les propriétés personnalisés ne sont pas indexées
    Par rafikfareh dans le forum SharePoint
    Réponses: 1
    Dernier message: 30/06/2008, 19h55
  4. [VB.NET 2005] Propriété opacity sur un objet
    Par ricil78 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/04/2007, 11h11
  5. [CSS2] Souci d'héritage et de priorité des styles.
    Par ARRG dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 12/07/2005, 09h03

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