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 :

Cacher des div, disparition de leur contenu.


Sujet :

CSS

  1. #1
    Nouveau membre du Club
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Points : 37
    Points
    37
    Par défaut Cacher des div, disparition de leur contenu.
    Hello.

    Petit problème avec mes CSS. J'essaie de simuler des onglets pour diviser un formulaire et éviter une page trop haute.
    Voilà le code HTML, avec la fonction javascript (mais qui ne pose pas de problème) :
    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
     
    function HideDiv(id_div)
    {
    	switch (id_div)
    	{
    		case 'Page1':
    			document.getElementById("Page1").className = 'DisplayPage';
    			document.getElementById("Page2").className = 'HidePage';
    			document.getElementById("Page3").className = 'HidePage';
    			document.getElementById("Page4").className = 'HidePage';
    			document.getElementById("Onglet1").className = 'OngletSel';
    			document.getElementById("Onglet2").className = 'Onglet';
    			document.getElementById("Onglet3").className = 'Onglet';
    			document.getElementById("Onglet4").className = 'Onglet';
    		break;
    		case 'Page2':
    			document.getElementById("Page1").className = 'HidePage';
    			document.getElementById("Page2").className = 'DisplayPage';
    			document.getElementById("Page3").className = 'HidePage';
    			document.getElementById("Page4").className = 'HidePage';
    			document.getElementById("Onglet1").className = 'Onglet';
    			document.getElementById("Onglet2").className = 'OngletSel';
    			document.getElementById("Onglet3").className = 'Onglet';
    			document.getElementById("Onglet4").className = 'Onglet';
    		break;
    		case 'Page3':
    			document.getElementById("Page1").className = 'HidePage';
    			document.getElementById("Page2").className = 'HidePage';
    			document.getElementById("Page3").className = 'DisplayPage';
    			document.getElementById("Page4").className = 'HidePage';
    			document.getElementById("Onglet1").className = 'Onglet';
    			document.getElementById("Onglet2").className = 'Onglet';
    			document.getElementById("Onglet3").className = 'OngletSel';
    			document.getElementById("Onglet4").className = 'Onglet';
    		break;
    		case 'Page4':
    			document.getElementById("Page1").className = 'HidePage';
    			document.getElementById("Page2").className = 'HidePage';
    			document.getElementById("Page3").className = 'HidePage';
    			document.getElementById("Page4").className = 'DisplayPage';
    			document.getElementById("Onglet1").className = 'Onglet';
    			document.getElementById("Onglet2").className = 'Onglet';
    			document.getElementById("Onglet3").className = 'Onglet';
    			document.getElementById("Onglet4").className = 'OngletSel';
    		break;
    		default:
    			document.getElementById("Page1").className = 'DisplayPage';
    			document.getElementById("Page2").className = 'HidePage';
    			document.getElementById("Page3").className = 'HidePage';
    			document.getElementById("Page4").className = 'HidePage';
    			document.getElementById("Onglet1").className = 'OngletSel';
    			document.getElementById("Onglet2").className = 'Onglet';
    			document.getElementById("Onglet3").className = 'Onglet';
    			document.getElementById("Onglet4").className = 'Onglet';
    		break;
    	}
    }
     
                    <table id="Form">
                        <tr>
                            <td id="Onglet1" class="OngletSel" onclick="HideDiv('Page1')">
                                Page 1
                            </td>
                            <td id="Onglet2" class="Onglet" onclick="HideDiv('Page2')">
                                Page 2
                            </td>
                            <td id="Onglet3" class="Onglet" onclick="HideDiv('Page3')">
                                Page 3
                            </td>
                            <td id="Onglet4" class="Onglet" onclick="HideDiv('Page4')">
                                Page 4
                            </td>
                            <td>
                                &nbsp;
                            </td>
                        </tr>
                        <tr>
                            <td class="Table_Form_td_border" colspan="5">
                                <div id="Page1" class="DisplayPage">
                                    <asp:Label ID="LblTitle" runat="server" Text="Titre : " CssClass="LabelSheets"></asp:Label>
                                    <asp:DropDownList ID="DdlTitle" runat="server" width="50px" CssClass="DropDownListSheets"></asp:DropDownList>
                                    <asp:Label ID="LblName" runat="server" Text="Nom : " CssClass="LabelSheets"></asp:Label>
                                    <asp:TextBox ID="TbName" runat="server" CssClass="TextBoxSheets"></asp:TextBox>
                                    <asp:Label ID="LblSurname" runat="server" Text="Prénom : " CssClass="LabelSheets"></asp:Label>
                                    <asp:TextBox ID="TbSurname" runat="server" CssClass="TextBoxSheets"></asp:TextBox>
                                </div>
                                <div id="Page2" class="HidePage">
                                </div>
                                <div id="Page3" class="HidePage">
                                </div>
                                <div id="Page4" class="HidePage">
                                </div>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="5">
                                <asp:Button ID="BtnOK" runat="server" Text="Valider" CssClass="Button" Width="100px"/><asp:Button ID="BtnCancel" runat="server" Text="Annuler" CssClass="Button" Width="100px"/>
                                <asp:Label ID="LblError" runat="server" Text="" CssClass="Text_Error"></asp:Label>
                            </td>
                        </tr>
                    </table>
    Et le CSS qui va avec :
    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
    Table#Form {
    	width:100%;
    }
    .Table_Form_td_border {
    	border:solid 1px black;
    }
    Td#Page1 {
    	background-color:#FFFFFF;
    	border:solid 1px black;
    }
    Td#Page2 {
    	background-color:#FFFFFF;
    	border:solid 1px black;
    }
    Td#Page3 {
    	background-color:#FFFFFF;
    	border:solid 1px black;
    }
    Td#Page4 {
    	background-color:#FFFFFF;
    	border:solid 1px black;
    }
    .Onglet {
    	width:10%;
    	background-color:White;
    	color:Black;
    	float:left;
    	cursor:pointer;
    	text-align:center;
    	border:solid 1px black;
    	margin-right:2px;
    	padding:1px 1px 1px 1px;
    }
    .OngletSel {
    	width:10%;
    	background-color:#3798D6;
    	color:White;
    	float:left;
    	cursor:pointer;
    	text-align:center;
    	border:solid 1px black;
    	margin-right:2px;
    	padding:1px 1px 1px 1px;
    }
    .DisplayPage {
    	visibility:visible;
    	height:auto;
    	padding:5px 5px 5px 5px;
    }
    .HidePage {
    	visibility:hidden;
    	height:0px;
    	line-height:0px;
    	margin:0px 0px 0px 0px;
    	padding:0px 0px 0px 0px;
    }
    Des petits screens permettront de mieux appréhender le problème.
    Au 1er affichage de ma page tout est normal :


    Si je clique sur ma 2e page les textbox de ma 1ere page sont toujours affichées (mais pas sélectionnable, on ne peut rien saisir) :


    Si je reviens sur la 1ere page, pas de problème, je retourne sur la page 2 même problème qu'au dessus et si je sélectionne la page3 cette fois les textbox n'apparaissent plus :


    Mais en retournant sur la page 1 elles ne sont plus là :


    Je n'ai plus le problème si je supprime les attributes height des classes .DisplayPage et .HidePage, mais les div sont alors affichées l'une à la suite de l'autre au lieu de l'une au dessus de l'autre (le principe des onglets).

    Quelqu'un a-t-il une solution pour que les textbox n'apparaissent que dans leur div respectives et qu'elles ne disparaissent pas ?

    [EDIT] Nouvelle info, j'ai installé FF 2.des_brouettes et ça marche correctement, mais les problèmes persistent sous IE7.
    Images attachées Images attachées     

  2. #2
    Nouveau membre du Club
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 38
    Points : 37
    Points
    37
    Par défaut
    Réponse extrêmement simple trouvée ici.
    Il suffit de faire un display:none.

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

Discussions similaires

  1. Taille des div en fonction du contenu
    Par frog43 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 12/06/2008, 14h52
  2. Afficher / Cacher des divs
    Par figatelliSTI dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/04/2008, 16h57
  3. Réponses: 5
    Dernier message: 28/02/2008, 08h44
  4. Cacher des DIV petit soucis
    Par akrogames dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/11/2007, 15h23

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