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

JavaScript Discussion :

Doctype (n'importe lequel) annule ma fonction


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Doctype (n'importe lequel) annule ma fonction
    Bonjour à tous,

    J'essaie de faire un site avec une superbe function que j'ai trouvée et qui me permet de faire la mise en forme que je veux... J'ai énormément cherché pour obtenir cette function, parce que ma mise en forme est impossible sans! Regardez dans mon site, c'est la function chk

    Mais quand je mets un DOCTYPE à mon site, n'importe lequel, ça annule cette function!

    Quelqu'un peut m'aider?

    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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    <!-- saved from url=(0014)about:internet -->
     
    <HTML>
    <HEAD>
    <TITLE>Mon site</TITLE>
     
     
    <script type="text/javascript">
     
    function chk(){
    my_div=document.getElementById("textecentre")
    top_space=document.getElementById("textecentre").offsetTop
    bottom_space=4
    my_div.style.height=document.documentElement.clientHeight-top_space-bottom_space
    }
     
    onresize=chk
     
    </script>
     
     
    <style type="text/css">
    html           {height:100%;}
    body           {text-align:center; height:100%;}
    #overall       {margin:auto; width:990px; position:relative; height:100%; background-color:#6699CC;}
    #textecentre   {position:absolute; top:10px; right:260px; width:450px; height:auto; background-color:#99CCFF; overflow:auto;}
    #footer        {width:990px; height:68px; margin:auto; background-color:#006699;}
    </style>
     
     
    </HEAD>
     
    <BODY onload="chk();">
     
     
    <div id="overall">
     
    <div id="textecentre">
     
    <div id="IDpres"><pre>
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
    </pre></div>
     
    </div>
     
    </div>
     
    <div id="footer">
    </div>
    </BODY>
    </HTML>
    Mise à jour : Il y a pas mal de problèmes postés sur des forums concernant le document.body.clientHeight qui ne fonctionne pas sous IE. Mais contrairement à moi, tout le monde semble avoir merveilleusement réglé le problème en remplaçant ça par document.documentElement.clientHeight... je poursuis donc mes recherches et je le remplace dans mon code, pour que si quelqu'un trouve la solution ça soit susceptible de marcher. Du coup, mon message devrait probablement être déplacé dans le forum de javascript, je suis désolé je ne pouvais pas le savoir avant ces nombreuses heures de recherche.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    tu le mets où ce doctype dans ta page ?

    montre nous où et comment tu mets ce doctype dans ton code s'il te plaît.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my_div.style.height=document.body.clientHeight-top_space-bottom_space
    En CSS, il est nécessaire d'indiquer les unités pour les dimensions...

    une superbe function
    Permets moi de ne pas vraiment partager cet avis...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Réponses à vous deux
    @Bovino : D'accord, ça pourrait être pour ça que tous les doctypes (en tout cas ceux que j'ai trouvés sur w3schools, y compris html transitional) ne permettent pas à IE (au moins lui) de voir ma fonction?

    Est-ce que tu connais une alternative, ou une piste d'alternative? (mettre seulement height: 98%, par exemple, ça ne fonctionne pas pour donner ce que je veux : je veux que la DIV commence à 210px du haut et s'arrête en bas du viewport).


    @arnogues :

    Avec plaisir, et j'en ai profité pour valider ma page sur W3C, il n'y a plus aucune erreur. Donc, j'ai fait quelques modifications, et c'est conforme. Je ne mets pas la balise ''xml version'' au tout début parce que ça l'empêche de valider ma page.

    Le tout va comme suit :

    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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <!-- saved from url=(0014)about:internet -->
     
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Mon site</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
     
    <script type="text/javascript">
     
    function chk(){
    my_div=document.getElementById("textecentre")
    top_space=document.getElementById("textecentre").offsetTop
    bottom_space=4
    my_div.style.height=document.documentElement.clientHeight-top_space-bottom_space
    }
     
    onresize=chk
     
    </script>
     
     
    <style type="text/css">
    html           {height:100%;}
    body           {text-align:center; height:100%;}
    #overall       {margin:auto; width:990px; position:relative; height:100%; background-color:#6699CC;}
    #textecentre   {position:absolute; top:210px; right:260px; width:450px; height:auto; margin:1% auto 0; background-color:#99CCFF; overflow:auto;}
    #footer        {width:990px; height:68px; margin:auto; background-color:#006699;}
    </style>
     
     
    </head>
     
    <body onload="chk();">
     
     
    <div id="overall">
     
    <div id="textecentre">
     
    <div id="IDpres"><pre>
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
    </pre></div>
     
    </div>
     
    </div>
     
    <div id="footer">
    </div>
    </body>
    </html>

  5. #5
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Citation Envoyé par Znojmo Voir le message
    J'ai énormément cherché pour obtenir cette function, parce que ma mise en forme est impossible sans!
    Quelle est exactement la mise en forme souhaitée ?
    Citation Envoyé par Znojmo Voir le message
    je veux que la DIV commence à 210px du haut et s'arrête en bas du viewport
    Il y a des solutions sans JS. Par exemple:
    Code html : 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
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Mon site</title>
     
     
    <style>
    html,body {height:100%;margin:0;padding:0;}
     
    div {
            position:absolute;
            width:100%;
            top:210px;bottom:0;
            background:red;
    }
            
     
    </style>
     
     
    </head>
     
    <body>
     
     
    <div>
    texte
    </div>
     
    </body>
    </html>
    Après, il est bien clair que tout dépend du contexte; si tu nous en disais un peu plus ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2012
    Messages : 14
    Points : 11
    Points
    11
    Par défaut estomaqué
    Quoi?? Ça fonctionne sans JS??

    Ça fait des jours, presque entiers, que j'essaie de trouver une solution pour que ça fonctionne avec JS.

    Je suis con.

    Mais j'avais que trop essayé de le faire fonctionner avec de l'aide sur un autre forum, sans trop de succès. On dirait que parce que ça paraissait que j'étais débutant, ceux qui me répondaient essayaient pas trop de voir mon problème...

    En tout cas, toi t'as bien compris que j'avais un vrai problème...

    Merci!

    Voici mon code qui montre un peu ce que je veux faire avec ça :

    Code html : 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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <!-- saved from url=(0014)about:internet -->
     
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Mon site</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
     
     
    <style type="text/css">
    html,body      {height:100%;margin:0;padding:0;}
    #overall       {margin:auto; width:990px; position:relative; height:100%; background-color:#6699CC;}
    #textecentre   {position:absolute; top:210px; bottom:0px; right:260px; width:450px; background-color:#99CCFF; overflow:auto;}
    #footer        {width:990px; height:68px; margin:auto; background-color:#006699;}
    </style>
     
     
    </head>
     
    <body>
     
     
    <div id="overall">
     
    <div id="textecentre">
     
    <div id="IDpres"><pre>
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
     
    présentation
    </pre></div>
     
    </div>
     
    </div>
     
    <div id="footer">
    </div>
    </body>
    </html>

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

Discussions similaires

  1. Moniteur, lequel à choisir ? en fonction de quel critères ?
    Par {F-I} dans le forum Périphériques
    Réponses: 4
    Dernier message: 03/06/2008, 21h01
  2. Comment annuler une fonction(Débutant)
    Par To12 dans le forum IHM
    Réponses: 4
    Dernier message: 24/01/2008, 22h37
  3. Importer une librairie de fonctions
    Par Fred.77 dans le forum C
    Réponses: 15
    Dernier message: 07/11/2007, 17h50
  4. Réponses: 1
    Dernier message: 11/10/2006, 13h26
  5. Annuler la fonction "Créer un réplicat"
    Par Ronn dans le forum Access
    Réponses: 1
    Dernier message: 20/07/2006, 21h04

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