Div che si adatta in larghezza.

Discussioni inerenti lo sviluppo di markup XHTML e CSS validi.

Moderatori: antoscarface, Kagemitsu

Regole del forum
Per scrivere del codice all'interno di ogni post, utilizzare il tag: [syntax=il_linguaggio]codice[/syntax] sostituendo "il_linguaggio" con il linguaggio del codice che dovete inserire, ad esempio: html, css, javascript, php, asp, ecc...

Div che si adatta in larghezza.

Messaggioda gnardell » sabato 24 settembre 2011, 17:04

Salve,
non sto riuscendo a risolvere un problema che dovrebbe essere piuttosto semplice.
Ho creado un contenitore per una galleria di immagini che dovrebbero essere visualizzate affiancate con una scroll bar orizzontale con il seguente codice:
<div id="gallery">
<img src="img/foto/finestre.jpg" alt="Finestre.jpg" >
<img src="img/foto/in_equilibrio.jpg" alt="In equilibrio.jpg" >
<img src="img/foto/giochi.jpg" alt="Giochi.jpg" >
</div>

nel css ho inserito invece:

#gallery {
width:2000px;
}

#gallery img { display: block;
padding:0.5em;
margin-bottom:auto;
margin-top:auto;
float: left;
}

Il punto è che ho dovuto indicare una larghezza precisa per il il div, altrimenti le immagini vengono visualizzate una sotto l'altra invece che affiancate.
Ma il div è più grande di quello che mi serve e vorrei che si addattasse automanticamente in base alle immagini inserite di volta in volta, senza dover ogni volta indicare la larghezza.
gnardell

Avatar utente
 
Messaggi: 12
Iscritto il: lunedì 27 giugno 2011, 18:28

Re: Div che si adatta in larghezza.

Messaggioda diego.viola » sabato 24 settembre 2011, 20:05

Ciao, ti rispondo in fretta. Se assegni la proprietà float non serve a nulla indicare display: block (che significa mandare a capo ogni elemento).

In realtà puoi benissimo omettere la dimensione fissa del tuo div padre (#gallery). E' sufficiente indicare difatti float: left per le immagini del div (appunto #gallery > img).

Try it! ;)
diego.viola

Avatar utente
 
Messaggi: 7
Iscritto il: sabato 24 settembre 2011, 14:39
Località: Trieste

Re: Div che si adatta in larghezza.

Messaggioda gnardell » sabato 24 settembre 2011, 23:12

Putroppo non funziona.
Il risultato che vorrei ottenere è come questo http://www.elizabethweinberg.com/book/one, ma senza dichiarare la larghezza fissa del width.
gnardell

Avatar utente
 
Messaggi: 12
Iscritto il: lunedì 27 giugno 2011, 18:28

Re: Div che si adatta in larghezza.

Messaggioda diego.viola » domenica 25 settembre 2011, 0:36

Potresti postare (formattando adeguatamente) il markup ed il codice css?
diego.viola

Avatar utente
 
Messaggi: 7
Iscritto il: sabato 24 settembre 2011, 14:39
Località: Trieste

Re: Div che si adatta in larghezza.

Messaggioda gnardell » domenica 25 settembre 2011, 10:18

Guesto è il codice e relativo css:

Sintassi: html [ Scarica ] [ Nascondi ]
  1. <body>
  2. <div id="page">
  3.         <div id="header">
  4.                 <h1>
  5.                         <a href="index.html" >Giuseppe Nardella</a>
  6.                 </h1>
  7.         </div>
  8.         <div id="navigation">
  9.                 <ul>
  10.                         <li><a href="progetti.html">Progetti</a></li>
  11.                         <li><a href="foto.html">Foto</a></li>
  12.                         <li><a href="contatti.html">Contatti</a></li>
  13.                 </ul>
  14.         </div>
  15.  
  16.         <hr >
  17.         <div id="gallery">
  18.                 <img src="img/foto/finestre.jpg" alt="Finestre.jpg" >
  19.                 <img src="img/foto/in_equilibrio.jpg" alt="In equilibrio.jpg" >
  20.                 <img src="img/foto/giochi.jpg" alt="Giochi.jpg" >
  21.         </div>
  22.  
  23.         <div id="footer">
  24.                 &copy; Giuseppe Nardella 2011
  25.         </div>
  26. </div>
  27. </body>


Sintassi: css [ Scarica ] [ Nascondi ]
  1. #page {
  2.         width: 960px;
  3.         position: relative;
  4.         margin: 0 auto;
  5. }
  6.  
  7. #header{
  8.         width: 25em;
  9.         float: left;
  10. }
  11.  
  12. #menu {width:10em;
  13. }
  14.  
  15. #navigation{
  16.         position: relative;
  17.         left: 20em;
  18. }
  19.  
  20. ul{
  21.         float:left;
  22.         margin: 1.5em 0 0 0;
  23. }
  24.  
  25. li {
  26.         float: left;
  27.         padding: 0 1em;
  28. }
  29.  
  30.  
  31. hr {
  32.         clear:both;
  33. }
  34.  
  35. #content img{display: block;
  36.         margin-top: 2em;
  37.     margin-left: auto;
  38.     margin-right: auto;
  39.   }
  40.  
  41. #gallery {
  42.         width:2000px;
  43. }
  44.  
  45. #gallery>img {
  46.         padding:0.5em;
  47.         margin-bottom:auto;
  48.         margin-top:auto;
  49.         float: left;
  50.  
  51.    
  52.   }
  53.          
  54. #thumbs img {display: block;
  55.         margin: 0.5em;
  56.     float: left;
  57.   }
  58.  
  59.   h2 { margin-bottom: 0;
  60.   }
  61.  
  62. #footer {
  63. clear:left;
  64. margin-top:0.5em;
  65. text-align:center;
  66. }
  67.  
  68. #progetti {
  69.         width:3000px;
  70.  
  71. }
  72.  
  73. #progetti img {display: block;
  74. position:relative;
  75. top:-2em;
  76.         padding:0 0.5em;
  77.         margin-bottom:auto;
  78.         margin-top:auto;
  79.     float: left;
  80.   }
gnardell

Avatar utente
 
Messaggi: 12
Iscritto il: lunedì 27 giugno 2011, 18:28

Re: Div che si adatta in larghezza.

Messaggioda diego.viola » domenica 25 settembre 2011, 17:44

Scusami, ti ho frainteso. Ho guardato solo ora l'esempio ed ho capito a cosa miravi.

Ci ho speso qualche minuto per pensarci, ma senza attribuire una dimensione fissa al contenitore non saprei proprio come ricreare quell'effetto. Magari qualcuno più esperto saprebbe aiutarti.

L'unica soluzione che posso proporti (se proprio non vuoi impostare manualmente il width) è uno script javascript che calcoli la dimensione totale delle immagini e attribuisca il valore al div. In questa maniera ogni volta che aggiungi un'immagine lui ti aumenta le dimensioni del div e te le fa vedere tutte in fila con la scrollbar orizzontale.

Altro non mi viene in mente, so sorry. :)
diego.viola

Avatar utente
 
Messaggi: 7
Iscritto il: sabato 24 settembre 2011, 14:39
Località: Trieste


Torna a XHTML & CSS