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 :

R�cup�rer la width d'une table pour d�finir max-width sur �l�ments suivants


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 731
    Par d�faut R�cup�rer la width d'une table pour d�finir max-width sur �l�ments suivants
    Bonjour,

    J'ai une table dont la largeur d�pend du contenu.

    Je veux r�cup�rer la width effective de la table et l'affecter comme valeur max-width � certains �l�ments plus bas dans la page.

    Chose infaisable en CSS, sauf trucs tordus.

    Je me dis qu'une minuscvule fonction javascript peut faire l'affaire mais � vrai dire je connais tr�s mal javascript.

    Pouvez-vous m'orienter vers une bonne source ou peut-�tre me donner les deux lignes de code ?

    Merci d'avance.

  2. #2
    Membre tr�s actif
    Homme Profil pro
    D�veleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veleoppeur Web/Mobile
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Par d�faut
    Bonjour,

    Pour r�cup�rer une propri�t� css en JQuery par exemple, avec cette m�thode

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var width = $(element).css("width")
    Puis pour ajouter un style � un �l�ment c'est la m�me m�thode :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $(element).css("max-width", width)

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 731
    Par d�faut
    Merci beaucoup.

    Je profite du week-end allong� pour mes tests, je te tiens au courant.

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 731
    Par d�faut
    Bonjour,

    J'ai ajout� dans le HEAD de ma page html :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    <script type="text/javascript">
    <!--
    var width = $(table.compcab).css("width")
    $(ul.bul).css("max-width", width)
    //-->
    </script>
    Tu devines que l'�l�ment dont je veut le width est <tabla class="compcab"> pour l'appliquer � <ul class="bul">

    Ca ne donne rien du tout...

    Qu'en penses-tu ?

  5. #5
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retrait�. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 73
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Retrait�. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par d�faut
    Bonjour,
    je suis d�butant en JS, mais j'ai eu un besoin semblable :
    HTML :
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <body>
    	<div id="DivCanvas">
    		<!-- <canvas id="canvas" width=”800” height=”600”></canvas> En fait canvas est créé en javascript dans Astro.js sinon PB proportions -->
    		<img src="./images/doudou.bmp" id="doudou"/>
    	</div>
     
    	<div id="AutreDivFlotant">
    		<p>Le Div s'élargie au fur et à messure qu'on ajoute du texte...</p>
    		<textarea id="textarea" name="Message"></textarea>
    	</div>
    </body>
    CSS :
    Code css : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #DivCanvas {
    	width: 800px;
    	height: 800px;
    }
    #AutreDivFlotant {
    	position: fixed; top: 2px; right: 4px;
    	float: right;
    	width: auto;
    	height: 800px;
    	border: 1px solid blue;
    }
    canvas {
    	border: 1px solid black;
    	background-color: #FCFAE1;
    }

    JS :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    var DivFloat = document.getElementById('AutreDivFlotant');
    var WidthDivFloat = document.getElementById('AutreDivFlotant').offsetWidth;
    alert ("WidthDivFloat="+ WidthDivFloat);
    DivFloat.setAttribute('width-max', WidthDivFloat);
    alert ("Taille du Div flottant="+ document.getElementById('AutreDivFlotant').offsetWidth );
    [EDIT 06:50] Et en largeur, le textarea ne va plus au del� de la longueur du texte

    On doit pouvoir faire la m�me chose sur le Width d'une table...
    Mais sous toutes r�serves en attendant l'avis d'experts...

  6. #6
    Membre actif
    Homme Profil pro
    Futur d�veloppeur, �tudiant
    Inscrit en
    Juillet 2012
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Futur d�veloppeur, �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 67
    Par d�faut
    Bonjour,

    Le code que t'a donn� Rpass est du JQuery. Il faut donc importer la librairie si tu veux que ce code fonctionne.

    Ensuite, voici des morceaux de code :
    - Pour r�cup�rer la width de ton objet :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var width = document.getElementByClass('compcab').style.width;
    Le getElementByClass n'est pas toujours bien vu, donc si c'est pour un exam, tu devrais ajouter un attribut id="compcab" � ton table, puis utilise getElementById('compcab') � la place de getElementByClass.

    -Pour d�finir le max-width d'un objet :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementByClass('bul').style.maxWidth = width;
    ou encore :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    var bul = document.getElementByClass('bul');
    bul.style.maxWidth = width;
    ce qui te permet d'�viter de r��crire le long document.get...style... si tu as besoins de faire d'autres ajouts de style sur ce m�me objet.
    Ici encore, il serait mieux de mettre un id � ton ul afin de pouvoir utiliser le getElementById. Mais bon, �a c'est toi qui voit.

    J'esp�re avoir pu t'aider

Discussions similaires

  1. R�ponses: 5
    Dernier message: 17/07/2013, 08h23
  2. [Toutes versions] R�cup�rer les valeurs d'une table pour une autre table
    Par spacesheep dans le forum Access
    R�ponses: 3
    Dernier message: 29/03/2013, 17h06
  3. R�ponses: 11
    Dernier message: 22/06/2009, 09h58
  4. R�ponses: 62
    Dernier message: 16/04/2009, 10h09
  5. R�ponses: 2
    Dernier message: 18/02/2007, 21h30

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