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

HTML Discussion :

table-cell avec un overflow-y scroll


Sujet :

HTML

  1. #1
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut table-cell avec un overflow-y scroll
    Bonjour, je viens demander un peu votre aide sur un problème que je rencontre concernant une div en table-cell. Pour bien vous expliquer mon problème, je bosse actuellement sur ma propre fancybox en jquery. Pour bien centrer l'image et l'adapter à la résolution de l'écran, j'utilise donc un container avec position fixed et un height/width à 100%. Pour le reste, j'utilise une div avec un display à table et deux div enfant avec un display à table-cell. Pas de problème jusqu'à présent, le tout s'afficher sur bien, mais lorsque la hauteur de la second div devient plus haute que l'image, forcément ça dépasse. Dans cette seconde div, je met les commentaires de la photo, et forcément ça risque de dépasser. Je ne souhaite pas fixer la hauteur, car elle doit s'adapter à chaque écran et doit surtout s'aligner avec la hauteur de la photo. Dans mon cas, la seule solution que j'ai trouvé c'était de jouer avec jQuery de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(container).find('img.popup-image').hide();
    $(container).find('#photo-panel').hide();
    $(container).find('img.popup-image').on('load', function () {
             $(container).find('img.popup-image').slideDown('slow', function(){
                      $(container).find('#photo-panel').height(($(container).find('img.popup-image').height() / 2) * 1.2);
                      $(container).find('#photo-panel').fadeIn('fast');
              });
    });
    Pour éviter de passer par jquery, j'ai tenté de définir un duo comprenant une div avec une position relative et son enfant en absolute, mais si je ne fixe pas la hauteur, rien ne s'affiche ou ça déborde. J'ai regardé pas mal de petits exemples, mais le souci c'est que ça ne marche pas sous Firefox... Quand j'exécute ce code, rien ne s'affiche (comme pour mon projet) : http://plnkr.co/edit/HWTsCsUpddHP3rZsMUtz?p=preview

    Donc je voulais savoir si dans mon cas, je suis obligé de passer par jQuery pour adapter seconde div.table-cell à la hauteur de l'image.

  2. #2
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut
    J'ai trouvé une autre solution avec un code plus léger :

    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
    <div class="item" style="display:table; margin: auto auto; height:100%; max-width: 90%; table-layout:fixed">
     
        <div  style="display:table-cell; height:100%; width:100%; vertical-align: middle;">
            <div style="position:relative; height: 100%; width:100%; display:table-cell">
                <div style="float:left; position: relative; width: 70%; height: 100%;">
                    <img src="/photos/original/1456145934597722624.jpg" class="img-responsive photo" style="width: 100%;">
                </div>
                <div style="float:left; position: relative; width: 30%; height: 100%; ">
                    <div class="xme" style="position: absolute; width: 100%;background-color: white; padding:20px;">
                        www
                    </div>
                </div>
            </div>
        </div>
    </div>
     
    <script type="text/javascript">
        $('img.photo').hide();
        $('img.photo').load(function(){
            $(this).show();
            $('.xme').height($(this).height() - 40);
        });
    </script>
    C'est juste un test, mais ça fonctionne comme je le veux, c'est nettement plus propre je trouve !

Discussions similaires

  1. [XSL-FO] table-cell wrap ou overflow
    Par drumtof dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/07/2011, 21h01
  2. Problème table-cell avec IE 6 et 7
    Par tsunamichups dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 26/05/2010, 16h44
  3. Problème d'affichage avec Display: table-cell sous IE
    Par kaele dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 25/08/2009, 14h50
  4. overflow et table-layout avec IE et FF
    Par nihaoma dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/01/2007, 12h39
  5. [Swing] JPanel avec sa JScrollBar qui scrolle toute seule
    Par chcoust dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 22/11/2006, 14h37

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