Newsgroup: it.comp.www.html
Titolo: layout css vs table

Qualche anno fa facevo sitarelli utilizzando le tabelle per il layout.
Oggi mi metto a guardare i layout con i css ma c'ï¿œ qualcosa su cui non 
arrivo.
Io utilizzavo:
<table width=100%>
   <tr>
     <td>
       <?php echo $contenuto1; ?>
     </td>
     <td>
       <?php echo $contenuto2; ?>
     </td>
     <td>
       <?php echo $contenuto3; ?>
     </td>
   </tr>
</table>
In questo modo la larghezza delle colonne si autoregolava in base al 
contenuto.
Come posso ottenere lo stesso effetto con i css?
Mi sembra di capire che se ad esempio affianco 3 <div>, solo uno puï¿œ 
avere larghezza variabile.
Sbaglio? Ignoro? E' possibile farlo? Mi dite come?
Grazie,
Gabriele
--
Newsgroup robomoderato - gli articoli vengono approvati automaticamente

 Come posso ottenere lo stesso effetto con i css?
Non puoi.
Se e` l'effetto che vuoi, probabilmente e` sbagliata la tua idea di 
layout.
In ogni caso vale la regola d'oro: non pensare di usare i css per fare 
layout come con le table.
Impara i css e POI costruisci i tuoi layout.
Bye.


 Impara i css e POI costruisci i tuoi layout.
Cosï¿œ non provo a fare cose che i CSS non possono darmi. Mi pare giusto.
Un mese o due fa avevo guardato l'HTML di google (in particolare la 
pagina di login di google docs) e avevo notato che usavano table (e 
annidate per diversi livelli) per ottenere il layout.
La considerazione che mi viene da fare ï¿œ: "Se lo fanno loro lo posso 
fare anch'io".
In particolare credo di aver capito questo: loro usano un codice non 
significativo semanticamente perchï¿œ non ha bisogno di essere indicizzato 
in base ai contenuti (sarebbe anche il mio caso, un'applicazione di 
servizio intranet).
Fatta questa premessa, "tutto vale purchï¿œ funzioni" o ci sono altri 
risvolti che non prendo in considerazione?
Gabriele


 servizio intranet).
Non e` importante solo il fattore SEO, ma anche e soprattutto la 
modularita` del layout.
Finche` fai un sitarello di 10 pagine in cui hai il pieno controllo puoi 
fare quello che vuoi.
Quando stai facendo, per esempio, un CMS, il fatto che il tuo blocco sia 
un <div>...</div> generico e non un <td>...</td> specifico di una certa 
tabella del layout ti aiuta non poco, perche` quel blocco puo` essere 
messo, per esempio, nel corpo di un post o nel footer, invece che nella 
sidebar fissa, e quello che cambia e` magari solo la gerarchia dentro il 
css, mentre l'html rimane lo stesso.
Oppure trasformare un layout da 3 colonne per PC fisso (1280x1024) a 
singola colonna con accordion per un tablet si puo` rivelare un semplice 
css diverso e un javascript iniettato nel footer del template.
Insomma: il layout coi css e` piu` flessibile dal punto di vista del 
programmatore, ma naturalmente piu` difficile da gestire per un grafico.
Bye.


 programmatore, ma naturalmente piu` difficile da gestire per un grafico.
Quindi il mio problema ï¿œ che sto ragionando contemporaneamente da 
programmatore e da grafico; dovrei separare i ragionamenti.
Prendiamo il caso specifico.
L'intestazione del sito viene prodotto da una include alla quale passo 
dei parametri: logo,titolo,alcuni link che possono variare tra le 
pagine. Voglio che compaiano 3 colonne che si ridimensionano 
automaticamente in base alle dimensioni:
<header>
<table width=100%>
   <tr>
     <td>
       <?php echo $contenuto1; ?>
     </td>
     <td>
       <?php echo $contenuto2; ?>
     </td>
     <td>
       <?php echo $contenuto3; ?>
     </td>
   </tr>
</table>
</header>
Gestisco <header> con i css ma ottengo l'effetto desiderato con la table.
Idem per le form (campo a fianco della label). I campi dovranno essere 
visualizzati o meno a seconda di vari criteri. Non so a priori quanto 
sia la larghezza della "collonna" delle label. Mi scoccia "sprecare" 
spazio fornendo una misura fissa a <label> tramite css.
Quindi uso <div> per definire il blocco del form e nella form uso un 
layout a tabelle.
<div>
   <form>
     <table width=100%>
...
       <tr>
         <td>
           <label>
         </td>
         <td>
           <input>
         </td>
       </tr>
...
     </table>
   </form>
</div>
Puï¿œ essere un compromesso accettabile? Ci sono pratiche migliori?
Usare Zend Form (che non conosco quasi) mi aiuterebbe ad astrarre la 
parte grafica rispetto a quella progettuale/proggrammazione?
Grazie
Gabriele
