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 :

Overflow hidden ne fonctionne pas en vertical


Sujet :

CSS

  1. #1
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut Overflow hidden ne fonctionne pas en vertical
    Bonjour,

    Je reste coincé sur un soucis de overflow:hidden.

    Voici une capture où je cherche à mettre une scrollbar verticale sur le cadre gris :
    Nom : 9XY9jU5.png
Affichages : 1255
Taille : 8,8 Ko

    J'ai essayé diverses combinaisons de propriétés CSS mais sans succès... ..mais j'ai du louper un détail.

    Vous pouvez retrouver le jsfiddle ici : https://jsfiddle.net/zL8b9cmu/

    Merci !
    "Phylactère temporaire" = tooltips

    Votre problème a été résolu ? Alors utilisez sur et

  2. #2
    Membre régulier
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juillet 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juillet 2016
    Messages : 65
    Points : 103
    Points
    103
    Par défaut
    Une solution possible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #part_3 {
      background-color:gray;
      overflow-y:scroll;
      height:100px;
    }

  3. #3
    Membre régulier
    Homme Profil pro
    Fabricant de ressorts - programmeur amateur
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fabricant de ressorts - programmeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Points : 79
    Points
    79
    Par défaut
    ... Et utiliser la balise max-height:100; pour limiter la hauteur de l'élément.
    mac pro bi-quad néhalem (2009) (16 proc et 8Go me MeV)
    Programmation : HTML - Javascript - PHP - AJAX - CSS : niveau amateur pour l'ensemble.

  4. #4
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    Citation Envoyé par Ecared Voir le message
    Une solution possible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #part_3 {
      background-color:gray;
      overflow-y:scroll;
      height:100px;
    }
    Le problème c'est que la hauteur ne peut pas être fixe en px.

    Citation Envoyé par nektarfl Voir le message
    ... Et utiliser la balise max-height:100; pour limiter la hauteur de l'élément.
    Cela ne fonctionne pas

    J'ai oublié de préciser que le div parente (#popup) ne doit pas avoir de propriété CSS height, mais seulement max-height:80% (j'ai mis 200px pour vous monter le overflow hidden qui ne fonctionnait pas).
    "Phylactère temporaire" = tooltips

    Votre problème a été résolu ? Alors utilisez sur et

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

    1/ comment veux-tu qu'une scrollbar apparaisse, si tu n'imposes pas une hauteur fixe ?

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #part_3 {
      background-color:gray;
      overflow:auto;
      height:100px;
    }

    2/ La 2ème solution, logique, est de mettre l'overflow sur la popup :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #popup {
      overflow:auto;
    .......
    }
    #part_3 {
      background-color:gray;
    }

    Sinon, explique la situation de façon plus claire et concrète, et montre un code testable "en situation".

    3/ Quand tu mets une hauteur en % à un élément*, demande-toi toujours : "% de QUOI ?"

    La réponse est : "de son parent".

    OR, toi tu as mis height:100%;
    Sauf qu'il y a déjà 2 autres éléments dans la popup.

    Donc, comme dit Katia à Zezette : "Ca dépend, ça dépasse !"


    * A savoir que TOUS les parents d'un élément DOIVENT avoir une hauteur clairement définie (en px ou %) pour que ça fonctionne.

    D'où une 3ème solution possible :
    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
    31
    32
    33
    34
    35
    * { margin:0; padding:0; border:0; box-sizing:border-box; }
    #popup {
      z-index: 10001;
        position: fixed;
        top: 194px;
        left: 50%;
        width: 600px;
        margin: -134px 0 0 -300px;
        background-color: #fafafa;
        padding: 0 20px;
        border:1px solid black;
     
        /* Pour provoquer le overflow */
        height:250px;
        xxoverflow:hidden;
    }
     
    #part_1 {
      background-color:yellow;
      height:18%;
      margin: 1% 0; 
    }
     
    #part_2 {
      background-color:green;
      height:38%;
      margin: 1% 0; 
    }
     
    #part_3 {
      background-color:gray;
      overflow:auto;
      height:35%;
      margin: 1% 0; 
    }
    N.B. box-sizing:border-box; permet de définir les hauteurs (ou largeurs), sans inclure les margin / padding / border.
    Dernière modification par Invité ; 22/11/2016 à 13h43.

  6. #6
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    Merci pour toutes ces informations. Je vais revoir cela...

    Ce que je cherche à faire est la chose suivante :
    Les contenus en jaune et vert sont statiques (ils contiennent toujours les même éléments).
    Le contenu en gris peut varier, il peut contenir quelques élements ou énormement.

    Ce que je cherche à faire est que selon la taille du contenu en gris, la popup va s'agrandir jusqu'à un moment où celle-ci débordera en bas, dans ce cas une scrollbar s'affichera dans la div grise.
    En aucun cas le contenu jaune ou vert changera de taille.

    Merci
    "Phylactère temporaire" = tooltips

    Votre problème a été résolu ? Alors utilisez sur et

  7. #7
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    J'ai trouvé la solution : les flexboxes

    J'ai donc le css suivant :

    Pour ma popup les propriétés suivantes :
    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
     
    #popup {
        z-index: 10001;
        position: fixed;
        top: 194px;
        left: 50%;
        width: 600px;
        margin: -134px 0 0 -300px;
        background-color: #fafafa;
        padding: 20px;
        border:1px solid black;
        display: flex;          /* flexbox */
        flex-flow: column;      /* flexbox */
        max-height:80%
    }
    Pour mes deux divs dont la taille ne varie pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #part_1 {
        background-color:yellow;
        flex: 0 1 auto;      /* flexbox */
    }
     
    #part_2 {
        background-color:green;
        margin-bottom:10px;
        flex: 0 1 auto;      /* flexbox */
    }
    Et ma div où la taille varie et qui peut afficher une scrollbar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #part_3 {
        background-color:gray;
        overflow:auto;
        flex: 1 1 auto;      /* flexbox */
    }
    jsfiddle : https://jsfiddle.net/Ly3ywxvy/1/

    "Phylactère temporaire" = tooltips

    Votre problème a été résolu ? Alors utilisez sur et

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/12/2014, 13h30
  2. strech with overflow ne fonctionne pas bien
    Par franfr57 dans le forum iReport
    Réponses: 0
    Dernier message: 10/07/2009, 15h10
  3. overflow:hidden; march pas sur IE !
    Par islyoung2 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 31/01/2009, 11h59
  4. div overflow sous firefox ne fonctionne pas
    Par ptitpoisson dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 06/08/2007, 17h09

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