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

jQuery Discussion :

Modification de la largeur d'une colonne (th)


Sujet :

jQuery

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 93
    Points
    93
    Par défaut Modification de la largeur d'une colonne (th)
    Petit script à tester sur un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
                var th = $('table thead tr').children('th:first');
     
                $(th).width('100');
     
                var before = $(th).width();
     
                $(th).width('50');
     
                var after = $(th).width();
     
                alert(before + ' ' + after);
    Je fixe d'abord la taille à 100 puis à 50.
    Ce qui ne coïncide pas du tout avec les valeurs obtenues.

    Si vous testez vous verrez qu'on obtient comme résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    pour firefox :  deux valeurs égalles
    pour ie : on obtient bien 100 pour la première valeur mais plus que 50 pour la suivante
    Je n'y comprends rien. Et vous ?

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Et comme ceci ? tu obtiens pareil ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var th = $('table thead tr').children('th:first');         
    // ou: var th = $('table thead tr th:first');         
    th.width('100');
    var before = th.width(); 
    th.width('50'); 
    var after = th.width();
    alert(before + ' ' + after);
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Vous avez raison.

    Voici un exemple (plus jQuery) OK avec F3 et C3.
    Mais IE8 ne réduit pas la taille à 20 mais à la taille minimum, minimum décidé par IE8, ici en fonction du contenu du tfoot.

    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
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="Author" content="Daniel Hagnoul" />
        <title>Page type</title>
        <style type="text/css">
            body {
                background-color:#696969;
                color:#000000;
                font-family:Arial, Helvetica, sans-serif;
                font-size:medium;
                font-style:normal;
                font-weight:normal;
                line-height:normal;
                letter-spacing:normal;
            }
            h1,h2,h3,h4,h5 {
                font-family:"Times New Roman", Times, serif;
            }
            div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {
                margin:0px;
                padding:0px;
            }
            p {
                padding:6px;
            }
            ul,ol,dl {
                list-style:none;
                padding-left:6px;
                padding-top:6px;
            }
            li {
                padding-bottom:6px;
            }
            div#conteneur {
                width:95%;
                margin:12px auto;
                padding:6px;
                background-color:#FFFFFF;
                color:#000000;
                border:1px solid #666666;
                font-size:0.8em;
            }        
            div#affiche {
                margin:12px;
                border:1px solid #999999;
            }
            table#maTable {
                margin:12px auto;
                empty-cells:show;
                border-collapse:collapse;
                border-spacing:0px;
                border-width:1px;
                border-style:solid;
                border-color:#000000;
                background-color:#FFFFFF;
                color:#000000;
                font-size:0.9em;
            }
            table#maTable td, table#maTable th {
                border-width:1px;
                border-style:solid;
                border-color:#999999;
            }
        </style>
        <script type="text/javascript" src="../lib/jquery-1.3.2.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                    var objTH = $("table thead th:first");  
     
                    $(objTH).css({width: 200});
     
                    var before = $(objTH).css("width");
     
                    /*
                     * OK avec F3 et C3.
                     * IE8 ne réduit pas la taille à 20 mais à la taille minimum,
                     * minimum décidé par IE8, ici en fonction du contenu du tfoot
                     */
                    $(objTH).css({width: 20});
     
                    var after = $(objTH).css("width");
     
                    alert(before + ' ' + after);
            });
        </script>
    </head>
    <body>
        <div id="conteneur">
            <table id="maTable">
                <thead>
                    <tr>
                        <th>Nom</th>
                        <th>Salaire<br />en €</th>
                    </tr>
                </thead>
                <tfoot>
                    <tr>
                        <th colspan="2">Un tableau hypothétique.</th>
                    </tr>
                </tfoot>
                <tbody>
                    <tr>
                        <td>Moi</td>
                        <td>1000</td>
                    </tr>
                    <tr>
                        <td>Lui</td>
                        <td>2000</td>
                    </tr>
                    <tr>
                        <td>Autre</td>
                        <td>3000</td>
                    </tr>
                </tbody>
            </table>
            <div id="affiche"></div>
        </div>
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message

    Mais IE8 ne réduit pas la taille à 20 mais à la taille minimum
    Le redimensionnement est juste.

    C'est quand on fait :
    que IE ressort la mauvaise valeur selon moi.

    , minimum décidé par IE8, ici en fonction du contenu du tfoot.
    Une solution serait de redimensionner le tfoot en même temps alors ?

    merci

Discussions similaires

  1. [VB.NET][datagrid] Configurer la largeur d'une colonne
    Par arnolem dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/03/2006, 11h48
  2. Réponses: 2
    Dernier message: 02/05/2005, 11h57
  3. Réponses: 2
    Dernier message: 07/04/2005, 11h44
  4. [TListView] Comment connaître la largeur d'une colonne ?
    Par remixtech dans le forum Composants VCL
    Réponses: 8
    Dernier message: 03/04/2005, 13h18
  5. [tableau]largeur d'une colonne
    Par Nadine dans le forum ASP
    Réponses: 2
    Dernier message: 15/03/2005, 21h11

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