2014-07-27 15 views
0

J'ai quelques divs dans une table et je veux faire un de mes divs pour qu'il ne sorte pas de la page. Je veux ajouter un parchemin sur le conteneur div. mais au contraire, je le div se poursuit encore de ma page:Ma div ne restera pas dans mon conteneur div

<table style="width: 100%;"> 
    <tr> 
     <td> 
      //some stuff 
     </td> 
     <td> 
      <div id="container" style="overflow-x: scroll;"> 
       <div style="width: 1100px;"> div containing chart1 </div> 
       <div style="width: 1100px;"> div containing chart2 </div> 
      </div> 

     </td> 
    </tr> 
</table> 

JSFIDDLE

+0

div qui vous parlez exactement? La div qui contient le texte 'div contenant chart1 et 2'? –

+0

s'il vous plaît poster votre full html et css –

+0

oui, les deux div contenant chart1 et chart2 sont poussés hors de l'écran – roshambo

Répondre

1

D'abord, se débarrasser de overflow-x:scroll sur le récipient. Ensuite, ajoutez un div supplémentaire à l'intérieur de chacun des divs que vous voulez faire défiler:

<div id="container"> 
    <div class="scroll"> 
     <div class="chart">div containing chart1</div> 
    </div> 
    <div class="scroll"> 
     <div class="chart">div containing chart2</div> 
    </div> 
</div> 

Vous pouvez maintenant donner la div « scroll » divs une largeur de tout (par exemple 200px) avec overflow-x:scroll et définissez les internes « graphique » de à width:1100px:

.scroll { 
    width:200px; 
    overflow-x:scroll; 
} 
.chart { 
    width:1100px; 
} 

Voici un jsFiddle

MISE à JOUR:

Tom a raison, vous pouvez appliquer une largeur en pourcentage à la div "scroll". Assurez-vous d'ajouter overflow:hidden à l'élément de corps, sinon la partie cachée de la table va déborder la page:

body{ 
    overflow:hidden; 
} 
.scroll { 
    width:20%; 
    overflow-x:scroll; 
} 

Mise à jour jsFiddle

+0

Juste comme un ajout à votre texte: le point clé est ici, vous devez définir la largeur (max-) de la div parente pour rendre le défilement possible. Si vous n'avez pas ce paramètre, le div parent sera redimensionné à la place. – Tom

+0

@Tom bon point, merci d'ajouter cela. – symlink

+0

merci pour la perspicacité des gars. Cependant, je ne veux pas vraiment définir la largeur de mon div parente. Si un utilisateur a un grand écran, je ne voudrais pas que leur div soit encore petit. Existe-t-il un moyen de définir mes largeurs à partir de ma table en utilisant des pourcentages? – roshambo

-1

Le problème est que la largeur que vous avez spécifié pour les cellules était beaucoup plus que nécessaire (mis à une valeur inférieure et aussi essayez d'utiliser des CSS pour spécifier la hauteur et la largeur de la table elle-même).

Ainsi, la largeur ici:

<div style="width: 1100px;"> div containing chart1 </div> 

devrait être moins, voici le violon mis à jour:

Updated Fiddle

+0

Pourquoi le downvote, exactement? –

+0

Ce n'est pas moi qui a minimisé votre réponse, mais je suppose que c'est parce que votre réponse n'est pas tout à fait correcte. Le problème n'était pas la taille trop grande des divs enfants, le problème était le paramètre 'largeur' manquant dans la div parente. Voir les liens symboliques. – Tom

+0

@Tom Très bien, merci pour la correction ... –