2013-08-29 15 views
5

Chcę umieścić div obok siebie. Nie znam liczby div, ponieważ jest to dynamicznie tworzone i zmieniane. Chciałbym mieć jeden element nadrzędny div, który będzie miał pasek przewijania w przypadku, gdy istnieje wiele elementów div dziecka (i ich szerokość jest większa od elementu nadrzędnego).Place divs obok siebie, niezależnie od szerokości rodzica

Oto jsFiddle example. Tak więc, w zasadzie chciałbym mieć wszystkie te trzy kolumny, obok siebie i z paskiem przewijania na spodzie div rodzica.

HTML:

<div class="content"> 
    <div class="column">Column</div> 
    <div class="column">Column</div> 
    <div class="column">Column</div> 
</div> 

CSS:

content { 
    width: 100px; 
    background- color: #355E95; 
    overflow: visible; 
} 

.column { 
    width: 50px; 
    display: inline-block; 
} 

Odpowiedz

9

white-space:nowrap Dodaj do div.

FIDDLE

+0

Wierzę, że to jest właściwa odpowiedź, myślę, że mogę tęsknić przeczytać pytanie, myśląc, że potrzebuje więcej niż jednego wiersza –

+0

Wielkie dzięki, to jest to, czego potrzebowałem! – Ned

+0

Nie ma za co :) – Danield

0

Fiddle: http://jsfiddle.net/bdssw/

użycie float:left;

.column { 
    width: 50px; 
    display: inline-block; 
    float:left; 
} 
+0

tak, ale to daje mi dwie kolumny, obok siebie, chciałbym mieć wszystkie trzy, a scrollbar do przewijania elementów div, które nie są widoczne. Czy to jest możliwe? – Ned

+0

To dlatego, że szerokość zawartości jest ustawiona na 100 pikseli; jeśli jest w 100%, możemy umieścić Div obok każdego z nich. @nedeljko –

+0

Ok, widzę. Ale chodzi o to, że mam ustaloną szerokość tej części nadrzędnej, i chcę mieć możliwość dodawania elementów div wewnątrz i pokazywania paska przewijania, jeśli szerokość dodawanych elementów div jest większa niż w przypadku rodzica. Czy to w ogóle możliwe? – Ned

-1

użycie width:auto;

.content { 
    width: auto; 
    background-color: #355E95; 
    overflow:scrolling; 
    position:fixed; 
} 

.column { 
    width: 50px; 
    float:left; 
} 

http://jsfiddle.net/XqSJG/6/

+0

Dlaczego głosowanie na dół dla ważnego wkładu? – SaturnsEye

1

Trzeba by użyć div zawartości do przewijania, a następnie owinięcie na kolumnach, dostosowując szerokość owijki aby zmieścić wszystkie 3 swoich kolumnach (150px w twoim przykładzie).

Konstrukcja kolumny wykonana jest przez pływającą lewą część div, ale będzie unosząca się na szerokość pojemnika nadrzędnego, w tym przypadku kontener macierzysty ma tylko 100 pikseli, więc musimy dodać opakowanie, aby zmieściło się w środku.

Jeśli chcesz również przewijać w pionie, musisz ustawić wysokość pojemnika.

Jsfiddle: http://jsfiddle.net/tYnH3/

css:

.content { 
    width: 100px; 
    background-color: #355E95; 
    overflow: auto; 
} 

.content-wrapper { 
    width: 150px; 
} 

.column { 
    width: 50px; 
    float: left; 
} 

html:

<div class="content"> 
    <div class="content-wrapper"> 
     <div class="column"> 
      Column   
     </div> 
     <div class="column"> 
      Column   
     </div> 
     <div class="column"> 
      Column   
     </div> 
     <div class="column"> 
      Column   
     </div> 
     <div class="column"> 
      Column   
     </div> 
     <div class="column"> 
      Column   
     </div> 
    </div> 
</div> 
+0

Edytuj: utworzono przepełnienie automatyczne, aby usunąć pionowy zwój. –

+0

Rozumiem, ale problemem jest to, że nie wiem, ile kolumn będę mieć. Czasami może to być 3, czasem 10 z nich, i jak widzę, w zależności od tego, muszę zmieniać szerokość otoki zawartości. Czy istnieje dynamiczne rozwiązanie? Wypróbowałem w 100%, ale to nie działa. – Ned

+0

100% dostosuje ją do szerokości nadrzędnej, jeśli potrzebujesz jej w 3 kolumnach, to zadziała, jeśli chcesz, aby 4 kolumny zmieniły szerokość, ilość elementów w środku zostanie skorygowana. Jeśli kolumny zmieniają się w zależności od strony, to czy będą wiedzieć, ile kolumn chcesz, bez zmiany? Może moglibyśmy oddzielić go od klasy lub ustawić szerokość "zawartości-wrappera" na stronie, którą chcesz, powiedzmy 4 kolumny na –

0

Spróbuj następującą JS skrzypce

http://jsfiddle.net/jT6SW/1/

#wrapper 
{ 
float: left; 
height: 150px; 
width: 250px; 
margin: auto; 
border: 1px black solid; 
overflow-y: hidden; 
overflow-x: scroll; 
} 
Powiązane problemy