2009-09-09 6 views
11

Próbuję wyświetlić liczbę obrazów w poziomie w pionie o stałej szerokości. Chciałbym użyć poziomego paska przewijania, aby wyświetlić obrazy, które nie mieszczą się wewnątrz elementu div.css - Wyświetlanie obrazów z poziomym paskiem przewijania

Obrazy są jednak wyświetlane w pionie, a nie w poziomie. Czy istnieje sposób zmuszenia ich do wyświetlania obok siebie?

div#event { 
width: 150px; 
overflow-x: scroll; 
overflow-y: hidden; 
} 

div#event ul { list-style: none; } 

div#event img { 
width: 100px; 
float: left; 
} 

<div id="lasteventimg"> 
<ul><li><img src="./gfx/gallery/image1.jpg" /></li> 
<li><img src="./gfx/gallery/image2.jpg" /></li> 
<li><img src="./gfx/gallery/image3.jpg" /></li> 
</ul> 
</div> 

Odpowiedz

8

Będziesz musiał wyświetlić listę elementów inline lub unoszą je i dać ul bardzo dużej szerokości, aby uniknąć elementów ruchomych do następnego wiersza:

ul { 
    width: 10000px; // for example 
    white-space: nowrap; 
} 
li { 
    float: left: 
    // or 
    display: inline; 
} 
+0

hej mam ten sam problem, ale nie używam żadnych lists- Właśnie dodawanie obrazów do poziomego elementu div (za pośrednictwem javascript) Używam float: left i overflow-x: scroll, – Shark

1

pójdę z

div#lasteventimg ul li { 
    display: inline; 
} 

Aby upewnić się, że li elementy nie są renderowane jako elementy blokowe.

1

Przede wszystkim należy zmienić styl z #event na #lasteventimg. Następnie, jeśli ustawić width z ul być na tyle szeroki, aby pomieścić wszystkie obrazy, powinien pojawić się zachowania, które próbujesz dostać:

div#lasteventimg { 
width: 150px; 
overflow-x: scroll; 
overflow-y: hidden; 
} 

div#lasteventimg ul { list-style: none; width: 300px; } 

div#lasteventimg img { 
width: 100px; 
float: left; 
} 

<div id="lasteventimg"> 
<ul><li><img src="./gfx/gallery/image1.jpg" /></li> 
<li><img src="./gfx/gallery/image2.jpg" /></li> 
<li><img src="./gfx/gallery/image3.jpg" /></li> 
</ul> 
</div>  
0

Musisz zmienić swoją listę, więc elementy są renderowane poziomo, a następnie domyślną pionową.

#imagelist li 
{ 
display: inline; 
list-style-type: none; 
} 
0

Dlaczego nie spróbujesz tego?

ul 
{ 
    width: 10000px; 
    white-space: nowrap; 
} 

li 
{ 
    display: block; 
    float:left; 
} 
12

kod Poprawnie dla dowolnej liczby obrazów, jeśli nie wiem, szerokość UL:

#lasteventimg {width:150px;overflow-x:scroll;overflow-y:hidden;} 
ul {list-style:none; display:block;white-space:nowrap;} 
li {width: 100px;display:inline;} 


<div id="lasteventimg"> 
<ul> 
<li><img src="./gfx/gallery/image1.jpg" /></li> 
<li><img src="./gfx/gallery/image2.jpg" /></li> 
<li><img src="./gfx/gallery/image3.jpg" /></li> 
<li><img src="./gfx/gallery/image4.jpg" /></li> 
<li><img src="./gfx/gallery/image5.jpg" /></li> 
</ul> 
</div> 
+0

Podczas gdy to działa, gdy elementy śródliniowe napotykają znak nowej linii, przeglądarka wstawia odstępy między elementami śródliniowymi. Dzięki CSS nie ma sposobu na niezawodne pozbycie się tego w różnych przeglądarkach. Będziesz musiał wykonać hack "Jesus Fish" (

  • rzeczy
  • <[nowa linia] li> rzeczy) lub wyeliminować podział wiersza między tagami (
  • ) – mrbinky3000

    +1

    @ mrbinky3000: Kładzenie komentarzy między liniami w celu utrzymania linii przerwy też działają ('

  • ') – Eric