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 :

Limiter la hauteur d'un affichage


Sujet :

Dimensionnement en CSS

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2020
    Messages
    18
    Points
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2020
    Messages : 18
    Points : 23
    Par défaut Limiter la hauteur d'un affichage
    Bonjour à tous.

    Pour réaliser des mises en formes personnalisées, j'ai remplacé un <select><option> par un système basé sur du css :
    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
    .select {
      display:flex;
      flex-direction: column;
      position:relative;
      height:23px;
    }
    .option {
      padding:0 45px 0 20px;
      min-height:20px;
      display:flex;
      flex-direction: row;
      justify-content: space-between;
      background: var(--primary);
      position:absolute;
      top:0;
      width: 100%;
      pointer-events:none;
      order:2;
      z-index:11;
      transition:background .4s ease-in-out;
      box-sizing:border-box;
      overflow:hidden;
      white-space:nowrap;
    }
    .option:hover {
      background:#666;
    }
    .select:focus .option {
      position:relative;
      pointer-events:all;
    }
    .input {
      opacity:0;
      position:absolute;
      left:-99999px;
    }
    .input:checked + label {
      order: 1;
      z-index:12;
      background: var(--secondary);
      border-top:none;
      position:relative;
    }
    .input:checked + label:after {
      content:'';
      width: 0; 
    	height: 0; 
    	border-left: 5px solid transparent;
    	border-right: 5px solid transparent;
    	border-top: 5px solid black;
      position:absolute;
      right:10px;
      top:calc(50% - 2.5px);
      pointer-events:none;
      z-index:13;
    }
    .input:checked + label:before {
      position:absolute;
      right:0;
      height: 40px;
      width: 40px;
      content: '';
      background: var(--secondary);
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class='select' tabindex='1'>
                <input class='selectopt input' name='liste' type='radio' value='0' id='opt0' checked disabled><label for='opt0' class='option'>Sélectionner</label>
                <input class='selectopt input' name='liste' type='radio' value='1' id='opt1'><label for='opt1' class='option'>Machin &nbsp;<i class='bi bi-images fs-2' ></i></label>
    ...
            </div>
    Le résultat est satisfaisant, sauf sur un point : si je l'applique à une liste d'options trop importante, l'affichage vertical dépasse la hauteur de la fenêtre du navigateur, ce qui n'est pas très esthétique.

    D'où la question : est-il possible, dans cette configuration, de limiter la hauteur de l'affichage de la liste des options.

    En vous remerciant pour votre aide, et bien cordialement.

    JD

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 187
    Points : 44 807
    Par défaut
    Bonjour,
    D'où la question : est-il possible, dans cette configuration, de limiter la hauteur de l'affichage de la liste des options.
    as-tu essayé de mettre une height associée à un overflow:auto ?

    A voir peut-être : Liste <ul> like a <select> ou presque ...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2020
    Messages
    18
    Points
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2020
    Messages : 18
    Points : 23
    Par défaut
    Hello Nosmoking,

    Sur quel(s) éléments ?

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 187
    Points : 44 807
    Par défaut
    Sur ton conteneur <div class='select' tabindex='1'>, avec par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .select:focus {
      height: 15em;
      overflow-y: scroll;
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2020
    Messages
    18
    Points
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2020
    Messages : 18
    Points : 23
    Par défaut
    Ouff ! 2 jours que je galérais. J'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      position:absolute;
      z-index:15;
    pour approcher encore d'avantage du fonctionnement du select.

    Je te remercie, et je coche résolu.
    JD

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

Discussions similaires

  1. div en float left limitée à une hauteur dynamique maximale ?
    Par eki27 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 06/09/2012, 01h45
  2. forcer limite de hauteur d'affichage
    Par rvm31 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 04/03/2012, 00h03
  3. Limitation de la zone d'affichage avec include
    Par sorofin dans le forum Langage
    Réponses: 2
    Dernier message: 09/07/2008, 12h41
  4. DIRECTX9: limitation d'une zone d'affichage
    Par eomer212 dans le forum DirectX
    Réponses: 4
    Dernier message: 09/04/2008, 15h28
  5. [Etat] Limite de hauteur
    Par Ithomir dans le forum IHM
    Réponses: 2
    Dernier message: 20/04/2007, 14h04

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