2014-10-13 17 views
5

Sto cercando di creare colonne simili a giornali sulla mia pagina. Tuttavia, la mia pagina contiene tabelle e in IE, Chrome, Safari e Opera, la tabella viene separata in due colonne diverse, ma non è questo il comportamento che voglio. Dove c'è un tavolo, mi piacerebbe averlo interamente all'interno di una colonna. Ecco il codice:Numero di colonne CSS che divide la tabella in due colonne diverse

.newspaper { 
 
    -webkit-column-count: 2; /* Chrome, Safari, Opera */ 
 
    -moz-column-count: 2; /* Firefox */ 
 
    column-count: 2; 
 
    -webkit-column-gap: 5px; /* Chrome, Safari, Opera */ 
 
    -moz-column-gap: 5px; /* Firefox */ 
 
    column-gap: 5px; 
 
}
<div class="newspaper"> 
 
    <table> 
 
    <tr><td>Table Row 1</td></tr> 
 
    <tr><td>Table Row 2</td></tr> 
 
    <tr><td>Table Row 3</td></tr> 
 
    <tr><td>Table Row 4</td></tr> 
 
    </table> 
 
    <p>Paragraph</p> 
 
</div>

Un modo semplice per vedere il problema e violino con esso è quello di utilizzare Chrome e andare a http://www.w3schools.com/css/tryit.asp?filename=trycss3_column-gap e incollare il codice nella loro esempio con la mia. Se provi Firefox vedrai che la tabella rimane interamente nella colonna di sinistra.

+0

Allora, che cosa si vuole è la vostra tabella a sinistra e il paragrafo a destra, a destra> –

+0

Sì, ma il motivo per cui sto usando il conteggio delle colonne è perché la mia pagina è dinamica e voglio che occupi sempre la quantità minima di spazio verticale. Potrebbe esserci un paragrafo sopra il tavolo, e non so quale sarà più lungo, quindi sto usando il conteggio delle colonne per impaginare la pagina, ma non voglio che la tabella divida in due colonne diverse. –

+0

Sono sicuro con la mia risposta. Ma devi avere un sacco di paragrafi. Funzionerà bene. –

risposta

4

Aggiungi column-break-inside: avoid; al vostro tavolo:

.newspaper { 
 
    -webkit-column-count: 2; /* Chrome, Safari, Opera */ 
 
    -moz-column-count: 2; /* Firefox */ 
 
    column-count: 2; 
 
    -webkit-column-gap: 10px; /* Chrome, Safari, Opera */ 
 
    -moz-column-gap: 10px; /* Firefox */ 
 
    column-gap: 10px; 
 
    border:dotted 1px #ccc; 
 
} 
 
.newspaper table { 
 
    -webkit-column-break-inside:avoid; 
 
    -moz-column-break-inside:avoid; 
 
    -o-column-break-inside:avoid; 
 
    -ms-column-break-inside:avoid; 
 
    column-break-inside:avoid; 
 
}
<div class="newspaper"> 
 
    <table> 
 
    <tr><td>Table Row 1</td></tr> 
 
    <tr><td>Table Row 2</td></tr> 
 
    <tr><td>Table Row 3</td></tr> 
 
    <tr><td>Table Row 4</td></tr> 
 
    </table> 
 
    <p>Paragraph</p> 
 
</div>

+1

Grazie mille! Questo sembra funzionare se modifico leggermente il tuo suggerimento e aggiungi la tabella .newspaper { -webkit-column-break-inside: evitare; -moz-column-break-inside: evitare; -o-column-break-inside: evitare; -ms-column-break-inside: evitare; column-break-inside: evitare; } Vuoi modificare la tua risposta in modo che io possa accettarla? –

+0

Perché il tavolo? Qual è il più lungo? La tabella o il paragrafo? Ma. Come desideri .. –

+0

Non so in anticipo quale sarà più lungo, le cose prima o dopo il tavolo. Ci saranno un sacco di tabelle e paragrafi sulla pagina. Non mi interessa tanto se i paragrafi sono divisi tra le colonne. Sono i tavoli a spaccare che mi infastidiscono. Grazie ancora! –

0

io non sono al 100% su ciò che si sta cercando di realizzare qui ...

Se non si vuole 2 colonne è sufficiente rimuovere il CSS. http://plnkr.co/edit/UtvHv0V9cydAfnO4jFwH?p=preview

Se si desidera che il paragrafo sia a destra, fare in modo che il tavolo si sposti verso sinistra. http://plnkr.co/edit/52ly416gGmtHhAZSyrC3?p=preview

table{ 
    float:left; 
} 

p{ 
    position:relative; 
    left: 20px; 
} 
+0

Grazie per il vostro interesse. Ho sicuramente bisogno di due colonne perché voglio che il contenuto occupi meno spazio nella pagina. Non so in anticipo se voglio il tavolo a sinistra o a destra, perché la pagina è diamanica, con molte tabelle e testo sopra, ed è per questo che sto usando il conteggio delle colonne per impaginare la pagina automaticamente come le colonne dei giornali. Funziona esattamente come voglio in Firefox. Speravo di poter aggiungere uno stile al tavolo che gli impedisse di separarsi, un po 'come si può fare con page-break-inside: evitare, per farlo funzionare in tutti i browser. –

Problemi correlati