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 :

<label> en absolute et <select> qui le suit


Sujet :

CSS

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut <label> en absolute et <select> qui le suit
    Bonjour,

    Petite difficulté pour moi qui ne suis pas habitué à manipuler le CSS...

    J'ai un formulaire avec une série de contrôles qui peuvent se suivre sur la même ligne. En voici une capture partielle :
    Nom : Capture_formulaire_inscription_1.png
Affichages : 106
Taille : 24,7 Ko

    Les labels et les input texte de la première colonne sont tous de classe labelMoyen de largeur 198px.
    Les deux select de la première colonne sont de classe selectMoyen de largeur 140, choisie en fonction du contenu de la liste.

    Comme le label "Année dans le diplôme" se retrouve au dessus de l'input "Date de candidature", j'ai eu l'idée de lui appliquer une classe col2 en position absolute left à 400px mais le select qui lui correspond ne suit pas son label et se retrouve au dessus du label.
    Nom : Capture_formulaire_inscription_2.png
Affichages : 103
Taille : 24,9 Ko

    Quelle est la bonne pratique pas trop compliquée pour aligner joliment les contrôles d'un formulaire sur plusieurs colonnes ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- position absolute : mauvaise idée

    2- Montre ton code (code HTML généré ! "Ctril"+"U").

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Voilà l'extrait de code html produit concerné.
    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
    <form id="form_ajout_inscription" enctype="multipart/form-data" action="fr/Inscription/Ajouter" method="post">
    	<div id="menuOnglets">
    		<ul>
    			<li onClick="afficherOnglet(0);">Inscription</li>
    			<li onClick="afficherOnglet(1);">Personne</li>
    			<li onClick="afficherOnglet(2);">Adresses postales</li>
    			<li onClick="afficherOnglet(3);">Scolarité</li>
    			<li onClick="afficherOnglet(4);">Divers</li>
    		</ul>
    	</div><!-- Fin menuOnglets -->
    	<div id="contenuOnglets">
    		<div id="onglet0" class="onglets"><!-- Onglet Inscription -->
    			<div id="inscDiplome">
    				<label for="annee_universitaire" class="labelMoyen gridCol1">Année universitaire :</label>
    				<select id="annee_universitaire" name="annee_universitaire" class="selectMoyen">
    					<option value="2018"
    										>
    						2018-2019					</option>
    					<option value="2019"
    							 			>
    						2019-2020					</option>
    				</select><!-- Fin annee_universitaire -->
    				<br />
    				<label for="diplome_ensfea" class="labelMoyen gridCol1">Diplôme ENSFEA choisi :</label>
    				<select id="diplome_ensfea" name="diplome_ensfea" class="selectMoyen" onChange="afficheMention(this.value);">
    					<option value="0" selected >--Sélectionner--</option>
    							<option value="207"
    										>
    						Master AFC					</option>
    							<option value="133"
    										>
    						Master IFSE					</option>
    							<option value="132"
    										>
    						Master MEEF					</option>
    						</select>&nbsp;<!-- Fin diplome_ensfea -->
    				<label for="diplomeAnnee" class="labelMoyen gridCol2">Année dans le diplôme :</label>
    				<select name="diplomeAnnee" class="selectCourt">
    					<option value="1"
    										>
    						1
    					</option>
    					<option value="2"
    										>
    						2
    					</option>
    				</select>&nbsp;<!-- Fin diplomeAnnee -->
    J'ai aussi essayé un peu la technique grid (que je ne connaissais pas) ce matin mais ça n'a rien changé.
    La mise en forme, c'est pas mon truc.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    Salut

    Moi je serai toi, j'ajouterai la partie code CSS
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    grid, flex ou table, actuellement on a l'embarras du choix mais je partirais sur un modèle de boîte table-xxx et non <table>, ne pas confondre !

    Sur base de la structure suivante :
    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
    <div class="table-groupe">
      <p>
        <label>Label #1.1</label>
        <select class="s-medium"></select>
      </p>
      <p>
        <label>Label #2.1</label>
        <select class="s-medium"></select>
        <label>Label #2.2</label>
        <select class="s-small"></select>
      </p>
      <p>
        <label>Label #3.1</label>
        <select></select>
        <label>Label #3.2</label>
        <select></select>
      </p>
      <p>
        <label>Label #4.1</label>
        <select></select>
        <label>Label #4.2</label>
        <select></select>
      </p>
      <p>
        <label>Label #5.1</label>
        <select></select>
        <label>Label #5.2</label>
        <select></select>
      </p>
    </div>
    et en appliquant le CSS suivant
    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
    .table-groupe {
      display: table;
      border: 1px solid green;
      border-collapse: separate;
      border-spacing: .5em;
      background: #DDFCB0;
    }
    .table-groupe p {
      display: table-row;
      background: #ADA;
    }
    .table-groupe p * {
      display: table-cell;
      vertical-align: bottom;
    }
    .table-groupe label {
      width: 12em;
      margin: .25em;
    }
    .table-groupe label::after {
      content: ":";
      float: right;
    }
    .table-groupe select {
      width: 12em;
      margin: 0;
      font: inherit;
    }
    .table-groupe select.s-medium {
      width: 9em;
    }
    .table-groupe select.s-small {
      width: 6em;
    }
    tu ne devrais pas être loin de ce que tu cherches à obtenir.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Merci, je vais étudier ça ; je ne connais pas.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bon.

    Si tu veux que ton formulaire soit "responsive", il faut :
    • mettre les largeurs (des colonnes) en %
    • ajouter un media query, pour être par défaut ("mobile first") sur 1 colonne, et passer sur 2 colonnes si la largeur (de la fenêtre) est supérieure à xxx px ("break-point" à 768px, par exemple)


    Voici une solution avec flexbox :

    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
    <div class="flex-groupe">
      <p>
        <label>Label #1.1</label>
        <select></select>
      </p>
    </div>
    <div class="flex-groupe">
      <p>
        <label>Label #2.1</label>
        <select>
          <option>xxx #2.1</option>
        </select>
      </p>
      <p>
        <label>Label #2.2</label>
        <select>
          <option>xxx #2.2</option>
        </select>
      </p>
     
      <p>
        <label>Label #3.1</label>
        <select>
          <option>xxx #3.1</option>
        </select>
      </p>
      <p>
        <label>Label #3.2</label>
        <select>
          <option>xxx #3.2</option>
        </select>
      </p>
     
      <p>
        <label>Label #4.1</label>
        <select>
          <option>xxx #4.1</option>
        </select>
      </p>
      <p>
        <label>Label #4.2</label>
        <select>
          <option>xxx #4.2</option>
        </select>
      </p>
    </div>

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    .flex-groupe {
      display: -webkit-flex;
      display: flex;
      flex-wrap: wrap;
    }
    .flex-groupe > p {
      vertical-align: bottom;
      flex:0 0 100%; width: 100%; /* 1 colonne */
      display: -webkit-flex;
      display: flex;
    }
    .flex-groupe > p label {
      display: block;
      flex:0 0 40%; width: 40%;
    }
    .table-groupe > p select {
      display: block;
      flex:0 0 60%; width: 60%;
    }
    .flex-groupe label::after {
      content: ":";
      float: right;
    }
    /* TABLET - DESKTOP */
    @media screen and (min-width: 768px) {
      /* on passe sur 2 colonnes */
      .flex-groupe > p {
        flex:0 0 50%; width: 50%; /* 2 colonnes */
      }
    }
    Dernière modification par Invité ; 06/02/2019 à 15h30.

Discussions similaires

  1. [XL-2007] USF label visible : Peut-on imbriquer un select case dans un If
    Par mouftie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/03/2014, 11h07
  2. select distinct qui ne marche pas
    Par Baldric de Dol dans le forum Requêtes
    Réponses: 6
    Dernier message: 05/05/2008, 17h16
  3. Select Case qui ne marche pas
    Par Zak Blayde dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/07/2007, 13h45
  4. [select]serveur TCP : probleme suite a un accept!
    Par phraides dans le forum Développement
    Réponses: 8
    Dernier message: 27/05/2007, 19h55
  5. [VBA-E]Select case qui ne fonctionne pas :(
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 31/01/2006, 12h13

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