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 :

Calcul d'un max-width


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut Calcul d'un max-width
    Salut,

    Je voudrais calculé la largeur max d'un div de mon application. Pour cela j'essaye de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    max-width : document.body.clientWidth - 400 px;
    J'ai essayé aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    max-width : document.body.clientWidth - 400  + 'px';
    max-width : document.body.clientWidth-400+px;
    aussi avec window.innerWidth

    Mais ca marche pas. Pouvez vous me dire comment pourrais je faire cela ?

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Points : 316
    Points
    316
    Par défaut
    Salut,

    Voici un script qui s'adresse à des tableaux (<table>) et qui fonctionne

    Cela doit pouvoir s'adapter à des <div>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function taille(){
    largeur=(document.documentElement.clientWidth)-20;
    hauteur=(document.documentElement.clientHeight)-20;
    document.getElementById("tableau1").style.width=largeur+'px';
    document.getElementById("tableau1").style.height=hauteur+'px';
    document.getElementById("tableau2").style.width=(largeur-156)+'px';
    document.getElementById("tableau2").style.height=(hauteur-6)+'px';
    };
    Bonne journée

  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 : 53
    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
    max-width : screen.availWidth - 400  + 'px';
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    max-width : document.body.offsetWidth - 400  + 'px';
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    Merci bq je vais essayer tous ca

  5. #5
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    Ca marche pas !

    Voila le code que j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .panelgroupTest
    {
    	height : 500px; 
    	max-width : document.body.offsetWidth - 400  + 'px';
    	width : expression(document.body.clientWidth > 950  ? document.body.clientWidth-400+'px' : '950px' );
    	min-width : 950px;
    	overflow: auto  ;
    }
    le width tout court c'est pour IE et les min max pour FireFox

    Est ce qu'il y a quelque chose d'anormales ?

  6. #6
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Citation Envoyé par Esil2008 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .panelgroupTest
    {
    	height : 500px; 
    	max-width : document.body.offsetWidth - 400  + 'px';
    	width : expression(document.body.clientWidth > 950  ? document.body.clientWidth-400+'px' : '950px' );
    	min-width : 950px;
    	overflow: auto  ;
    }
    Est ce qu'il y a quelque chose d'anormales ?
    On ne peut pas intégrer du javascript directement dans du CSS ?!

    Ou alors je découvre quelque chose qui va révolutionner ma façon de faire des pages web !
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  7. #7
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    Ben, moi je demande une solution qui me permettra de faire cela. J'ai pas prétendu que c'est juste ...

    En plus ce code marche très bien sous IE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    width : expression(document.body.clientWidth > 950  ? document.body.clientWidth-400+'px' : '950px' );
    Pourtant c'est du javascript !

  8. #8
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Citation Envoyé par Esil2008 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .panelgroupTest
    {
    	height : 500px; 
    	max-width : expression(document.body.offsetWidth - 400  + 'px');
    	width : expression(document.body.clientWidth > 950  ? document.body.clientWidth-400+'px' : '950px' );
    	min-width : 950px;
    	overflow: auto  ;
    }
    le width tout court c'est pour IE et les min max pour FireFox

    Est ce qu'il y a quelque chose d'anormales ?
    Et bien je ne connaissais pas ; danss ton code, il ne manque pas le expression sur max-width ?

    Ensuite j'aurai des questions sur
    • Les navigateurs autres que IE ?
    • Que se passe-t-il si javascript n'est pas activé ?
    • Les performances ?
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  9. #9
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    le problème c'est que expression ne marche pas sous FF ni sous Chrome par contre ca marche très bien sous IE et Opera.

    Si le javascript n'est pas activé c'est une bonne remarque mais si je fais comme ca c'est que je suis obligé. A la place je devrais avoir simplement un width : 100%; mais ça cause un problème avec un composant d'une implémentation JSF ... Bref c'est casse tête

    Sinon côté perf, c'est rien remarqué d'énorme dans le chargement, je peux pas dire plus

  10. #10
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    J'essaye d'implémenter la méthode d'Alexdezark. Cette méthode marche très bien, voila ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function taille() {
    	largeur= document.body.clientWidth-400 ;
    	document.getElementById("panelTest").style.width=largeur+'px';
     
    }
    Mais je sais pas comment faire appelle à cette méthode dans le style de mon div. J'ai essayé de faire cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <ice:panelGroup id ="panelTest" style="taille();" >
    mais ca marche pas.

    Vous savez comment on peut faire cela.

    Merci

    PS : ice:panelGroup c'est une sorte de div

  11. #11
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    J'ai fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function taille() {
       largeur= document.body.clientWidth-400 ;
       document.getElementById("panelTest").style.width=largeur+'px';
    }
    window.onload = taille;
    Et ca marche

    Merci a vous

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

Discussions similaires

  1. [SQL] Pb Calcul d'un max
    Par sg-40 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/06/2006, 14h50
  2. Calculer le flow max sur un graphe
    Par faressam dans le forum C++
    Réponses: 6
    Dernier message: 09/02/2006, 16h35
  3. Max-width dans une image sous IE?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 23/12/2005, 02h04
  4. Emuler un min/max-width ou un min/max-height
    Par Perceval dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 18/09/2005, 18h43
  5. internet explorer et max-width
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/08/2005, 23h50

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