2013-07-03 5 views
6

Attualmente sto studiando l'utilizzo del bootstrap di Twitter come base per i miei futuri progetti di sviluppo web per i clienti. Ho consultato tutta la documentazione standard sulla loro pagina Github e, dal mio punto di vista, per utilizzare efficacemente il layout della griglia, le tue righe devono contenere solo un totale di dodici colonne (composte da diversi elementi o un singolo elemento).Problemi di rete di bootstrap su Twitter - Contenitore di overflow di articoli quando si ridimensiona la dimensione della finestra utilizzando responsive

Con questo in mente ho condotto un piccolo test con un testo che si estende su 4 colonne in fila insieme a un div offset che si estende su 6 colonne. Questo sembra funzionare bene tuttavia, ho quindi provato ad includere una singola riga contenuta in una div che si estende su 3 colonne che è sfalsata di 9 colonne (ancora per un totale di 12) per dare l'impressione che il contenuto all'interno del div sia flottato proprio sulla pagina. Il problema è che questo sembra corretto quando la modalità finestra è adatta a un desktop, tuttavia quando inizio a ridimensionare la finestra, il contenuto del div viene eliminato dal contenitore generale. Se continuo a ridimensionare la finestra, gli elementi si impilano come mi aspetto per la visualizzazione mobile.

La mia domanda è, perché questo si comporta in questo modo? La mia comprensione era che finché c'erano 12 colonne il contenuto sarebbe rimasto racchiuso nel loro contenitore esterno.

Il mio codice può essere trovato sotto. C'è un sacco di css in linea, ma questo è solo a scopo di test. Questo è il bootstrap di serie con tutte le opzioni selezionate nella fase di personalizzazione, il che significa che sono incluse tutte le opzioni di risposta.

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Bootstrap Example</title> 
    <meta name="viewport" content="width-device-width, initial-scale=1.0"> 
    <!--BOOTSTRAP--> 
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> 
    </head> 
<body> 
    <div class="container-fluid" style="border: 1px solid #cccccc"> 
     <div class="row-fluid"> 
     <div class="span4">This is a div spanning 4 columns</div> 
     <div class="span6 offset2">This is a div spanning 6 columns. It should appear alongside the column spanning 4 columns.</div> 
     </div> 
     <div class="row-fluid"> 
     <div class="span3 offset9"> 
      <form class="form-search"> 
       <div class="row-fluid"> 
        <div class="input-append span2"> 
         <input type="text" class="input-medium search-query"> 
         <button type="submit" class="btn btn-info"><i class="icon-search icon-white"></i> Search </button> 
        </div> 
       </div> 
      </form> 
     </div> 
    </div> 
    </div> 
    </body> 
<script src="http://code.jquery.com/jquery.js"></script> 
<script src="js/bootstrap.min.js"></script> 
</html> 

Si verifica se utilizzo il layout del fluido o meno. Nell'esempio fluido, la casella di ricerca apparirà come se fosse fuori dallo schermo. Nell'esempio fisso si sovrapporrà al bordo grigio del contenitore.

risposta

4

have have aggiungere il codice qui: http://bootply.com/66598

L'immagine qui sotto mostra il problema/domanda (credo): enter image description here

Per capire il problema che si dovrà studiare la griglia e capire il differenza tra la griglia predefinita e la griglia del fluido, , vedere: http://twitter.github.io/bootstrap/scaffolding.html#gridSystem

Il problema si verifica su schermi più grandi di 767 px di larghezza. Sotto queste colonne di larghezza (div con class = "span {x}") si impilano. Sui maxischermi il problema non si verificherà anche.

La griglia di default (di Twitter Bootstrap 2.x):

Quando nidificazione righe della riga bambino ottiene un arco totale che si sommano alle arco del suo genitore.

Esempio:

<div class="row"> 
<div class="span6"> 
<!--nesting--> 
    <div class="row"> 
    <div class="span3"></div> 
    <div class="span3"></div> 
    </div> 
</div> 
<div class="span6"> 
</div> 
</div> 

Nella griglia classi campata hanno una larghezza fissa in pixel (a seconda sulla larghezza dello schermo), vedi:
Tra 768px e 980px schermo larghezza: Ogni span1 sarà 940 - (11 grondaie di 20px)/12 = 60px (sopra il 980px (1170-11 * 30)/12 = 70px).

Ora il problema è stato risolto: <input type="text" class="input-medium search-query"> .input-medium darà a questo input una larghezza fissa di 150px e il pulsante "search" prende anche spazio (75px;). Si inserisce in una span2 (<div class="input-append span2">) la strega è in un intervallo 3 (<div class="span3 offset9">). Nella griglia 940 predefinita una span3 ha una larghezza di 3x60 + 2x20 = 220px; mentre il tuo seachbox richiede 75 + 150 = 225 px. Per questo motivo la tua casella di posta esce dalla griglia. Un span4 non ha questo problema. Ovviamente scoppierà anche lo span2 .

La griglia fluido (bootstrap 2.x di Twitter e Twitters Bootstrap 3):

Nella griglia fluido ogni colonna (arco {x}) di ottenere una percentuale della larghezza del suo genitore. Quando si annida, la riga secondaria può essere suddivisa nuovamente in 12 colonne .

Esempio:

<div class="row-fluid"> 
<div class="span6"> 
<!--nesting--> 
    <div class="row"> 
    <div class="span6">50% of the parent and 25% of the grid</div> 
    <div class="span6">50% of the parent and 25% of the grid</div> 
    </div> 
</div> 
<div class="span6"> 
    <div class="row"> 
    <div class="span12">100% of the parent and 50% of the grid</div> 
    </div> 
</div> 
</div> 

Nel tuo caso il tuo searchbox è annidato in uno span2 in uno span3. Lo span3 otterrà circa il 25% della larghezza della griglia. Quando il 25% della tua larghezza della griglia sarà inferiore a 225 px, la casella di ricerca aprirà la griglia. Quindi il tuo problema inizierà intorno a una larghezza dello schermo di 4 x 225 = 900px (appena sotto la griglia predefinita di 940 pixel). Anche qui si contribuirà a mettere il vostro searckbox in un arco di 4 o 5. NOTA <div class="input-append span2"> avrà una larghezza di 16,6% del 25% della griglia (molto piccola).

Possibile soluzione: utilizzare una classe di pull-destra per la vostra searchbox:

<div class="row-fluid"> 
    <div class="span3 offset9"> 
     <form class="form-search"> 

       <div class="input-append pull-right"> 
        <input type="text" class="input-medium search-query"> 
        <button type="submit" class="btn btn-info"><i class="icon-search icon-white"></i> Search </button> 
       </div> 

     </form> 
    </div> 
</div> 
Problemi correlati