2013-02-20 17 views
11

ho un 4 colonne fluido layout:4 colonne a 2 colonne con Twitter Bootstrap

<div class="container-fluid"> 
    <div class="row-fluid"> 
     <div class="span3">A</div> 
     <div class="span3">B</div> 
     <div class="span3">C</div> 
     <div class="span3">D</div> 
    </div> 
</div> 

[ A ][ B ][ C ][ D ] 

Per i dispositivi mobili, bootstrap rende le colonne uno sotto l'altro, che funziona bene:

[   A    ] 
[   B    ] 
[   C    ] 
[   D    ] 

Ma per i tablet, mi piacerebbe avere 2 colonne di 2:

[  A  ][  B  ] 
[  C  ][  D  ] 

E 'possibile realizzare questo comportamento in modo nativo con boo tstrap?

+1

Non esiste una funzionalità disponibile in modo nativo, per quanto ne so. – Pavlo

+0

Sì, non in modo nativo. L'ho fatto io stesso sovrascrivendo alcuni dei CSS di Bootstrap. Sareste interessati a vederlo? – frostyterrier

+0

Ok questo è quello che pensavo :(E sì, sono curioso di vedere come l'hai fatto :) :) – Emilie

risposta

6

Ho scoperto che Zurb Foundation (http://foundation.zurb.com/docs/grid.php#threeBlockEx) offre questa funzionalità, ma voglio continuare con Twitter Bootstrap. Quindi sono riuscito ad aggiungere una regola personalizzata, basata sulla tecnica utilizzata da Foundation:

@media (min-width: 768px) and (max-width: 979px) { 
    .row-fluid > [class*=span]:nth-child(2n+1) { 
     clear: both; 
     margin-left: 0; 
    } 
} 
1

È sufficiente eseguire l'override del CSS per gli span nella query @media corrispondente ai tablet.

Così si può provare qualcosa di simile:

// Tablets & small desktops only 
@media (min-width: 768px) and (max-width: 979px) { 
    [class*=span] { 
    width: 50%; 
    } 
} 

Naturalmente, potrebbe essere necessario effettuare regolazioni. A causa del riempimento e dei margini, la larghezza potrebbe non essere effettivamente del 50%.

0

Hmm. Ho provato entrambe le regole nel mio CSS e nessuno di loro ha funzionato per me. È un peccato che questo manchi in BS 2.0. Spero che lo aggiungano in BS 3.0!

Grazie,

JK

4

aggiunta alla risposta di Emilie è inoltre necessario ripristinare la larghezza delle colonne,

@media (min-width: 768px) and (max-width: 979px) { 
    .row-fluid > [class*=span]:nth-child(2n+1) { 
     clear: both; 
     margin-left: 0; 
    } 

    .row-fluid .span3 { 
     width: 48.61878453038674%; 
    } 
} 
+0

Funziona perfettamente! Ma non fare lo stesso errore che ho fatto - dimentica di includere il foglio di stile DOPO il css di bootstrap - e risparmia te stesso alcune ore :) – Nurp

Problemi correlati