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 :

Imprimer une DIV masqué par Javascript


Sujet :

CSS

  1. #1
    Membre actif

    Inscrit en
    Novembre 2003
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 168
    Points : 232
    Points
    232
    Par défaut Imprimer une DIV masqué par Javascript
    Bonjour,

    J'ai une DIV qui peut être plusieurs fois masquée et affichée par l'utilisateur grâce à du code Javascript (madiv.style.display = 'none'; et madiv.style.display = 'block'; )

    J'aimerais que cette div soit toujours imprimée avec la page et à une position bien précise, pour cela j'utilise une feuille de style en mode print :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link href="StyleImpression.css" rel="stylesheet" type="text/css" media="print" />
    et dans cette feuille de style je définis la classe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    .ImprimeCentre 
    {
        display: block;
        position:absolute;
        top: 30px;
        left: 200px;
    }
    Mais le problème c'est que si l'utilisateur modifie une de ces props CSS (par exemple : masquer la div) ba au moment de l'impression la div ne sera pas imprimée, comme si que la valeur affectée par javascript prend le dessus sur la valeur définit dans la feuille de style d'impression (media=print)

    y a t'il un contournement ?

  2. #2
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Bonsoir,

    Le problème vient du display:inline attribué en-ligne qui surclasse le display:block.
    Il faudrait rajouter !important pour donner la priorité à ta déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    .ImprimeCentre 
    {
        display: block !important;
        position:absolute;
        top: 30px;
        left: 200px;
    }

  3. #3
    Membre actif

    Inscrit en
    Novembre 2003
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 168
    Points : 232
    Points
    232
    Par défaut
    Merci, je vais essayer ceci, mais le problème c'est que je viens de lire que IE ne comprends pas "!Important" !!!! Je te dirais de quoi tantôt

  4. #4
    Membre averti
    Profil pro
    Chef Gérant
    Inscrit en
    Octobre 2005
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef Gérant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2005
    Messages : 230
    Points : 399
    Points
    399
    Par défaut
    bonjour,

    tu parles de IE6 ?

    Il interprete !important , mais il faut qu'il soit dans une regle distinct de la valeur a surchargée:

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    p {color:blue!important}
    p {color:red;}
    p {color:green!important;color:gray;}
    IE 6 affichera bleu .
    Il faut juste en ecrire un peu plus

    GC

  5. #5
    Membre actif

    Inscrit en
    Novembre 2003
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 168
    Points : 232
    Points
    232
    Par défaut
    Finalement, on a décidé de dupliquer chaque div, la première servira à l'exécution et donc c'est elle qui sera affichée/masquée par JS, la deuxième servira à l'impression. Ce n'est pas TOP mais bon....
    Patience, encore deux p'tits mois et l'Algérie et la Tunisie seront en coupe du monde

    Merci GC, mais comme je viens de l'expliquer à Macmillenium, on a opté pour une autre piste.

Discussions similaires

  1. validation d'une liste dynamique par javascript
    Par flora2007 dans le forum Struts 1
    Réponses: 1
    Dernier message: 09/08/2007, 10h59
  2. [DOM] Inserer une feuille CSS par Javascript
    Par atar64 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/06/2007, 17h24
  3. recuperer valeur d'une grille creer par javascript
    Par ouedmouss dans le forum JSF
    Réponses: 1
    Dernier message: 29/09/2006, 11h56
  4. [PHP-JS] recuperer valeur d'une liste generé par javascript
    Par crevettes59000 dans le forum Langage
    Réponses: 2
    Dernier message: 05/03/2006, 10h11

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