2013-06-15 14 views
7

Quando la dimensione del browser viene modificata/su dispositivi di dimensioni diverse, ho bisogno di un insieme di elementi html che siano tutti semanticamente correlati per rimanere insieme e spostarsi in un blocco. Cioè, se uno degli elementi si sposta sulla successiva "riga" a causa della loro larghezza insufficiente a contenere l'intero raggruppamento, TUTTO dovrebbe spostarsi verso il basso.È possibile raggruppare una serie di elementi HTML in modo che si muovano insieme?

IOW, questo è un po 'come l'attributo "conserva insieme" che alcuni raggruppamenti di elementi in un documento di elaborazione testi hanno.

Per essere un po 'più specifico, dire che ho collezioni dei seguenti elementi:

1) an anchor tag, filling out a first "column" 
2) a collection of tags, to the right of the anchor tag, consisting of: 
(a) a div, followed by a <br/> 
(b) a cite, followed by a <br/> 
(c) another div, followed by a <br/> 
(d) two or three anchor tags that are aligned side-by-side at the bottom of the second "column" 

Quindi, per riassumere, se non c'è abbastanza spazio per il secondo "colonna" in una "fila, "piuttosto che mantenere la prima" colonna "e spostare gli elementi nella seconda colonna fino alla successiva" riga ", la prima nella colonna dovrebbe aderire ai suoi fratelli e rimanere sempre sulla stessa" riga "con loro (I metto "riga" e "colonna" tra virgolette perché non sto usando una tabella html, e quelle esistono solo in senso virtuale).

Se si sta trovando questo un po 'difficile da visualizzare (io non ti biasimo), controlla il violino: http://jsfiddle.net/W7CYC/8/

Nota: avvolgendo i raggruppamenti in HTML5 s non ha aiutato.

Ecco il codice:

HTML:

<div class="yearBanner">2013</div> 
<section> 
<a id="mainImage" class="floatLeft" href="http://rads.stackoverflow.com/amzn/click/0299186342"><img height="240" width="160" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"></a> 

    <div id="prizeCategory" class="category">BIOGRAPHY</div> 
    <br/> 
<cite id="prizeTitle" class="title">Son of the Wilderness: The Life of John Muir</cite> 

    <br/> 
    <div id="prizeArtist" class="author">Linnie Marsh Wolfe</div> 
    <br/> 
    <img class="floatLeft" height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
    <img class="floatLeft" height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
    <img class="floatLeft" height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
</section> 
<section> 
<a class="floatLeft" href="http://rads.stackoverflow.com/amzn/click/0299186342"><img height="240" width="160" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"></a> 

    <div class="category">BIOGRAPHY</div> 
    <br/> 
<cite class="title">Son of the Wilderness: The Life of John Muir</cite> 

    <br/> 
    <div class="author">Linnie Marsh Wolfe</div> 
    <br/> 
    <img height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
    <img height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
    <img height="60" width="40" src="http://ecx.images-amazon.com/images/I/51usxIl4vML._SY346_.jpg"> 
</section> 

CSS:

body { 
    background-color: black; 
} 
.floatLeft { 
    float: left; 
    padding-right: 20px; 
    padding-left: 5px; 
} 
.yearBanner { 
    font-size: 3em; 
    color: white; 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    float: left; 
    padding-top: 64px; 
} 
.category { 
    display: inline-block; 
    font-family: Consolas, sans-serif; 
    font-size: 2em; 
    color: Orange; 
    width: 160px; 
} 
.title { 
    display: inline-block; 
    font-family: Calibri, Candara, serif; 
    color: Yellow; 
    width: 160px; 
} 
.author { 
    display: inline-block; 
    font-family: Courier, sans-serif; 
    font-size: 0.8em; 
    color: White; 
    width: 160px; 
} 

jQuery:

$('#prizeCategory').text("Changed Category"); 
$('#prizeTitle').text("Changed Title that spans two rows"); 
$('#prizeArtist').text("Changed Author and co-author"); 
$('#mainImage img').attr("src", "http://ecx.images-amazon.com/images/I/61l0rZz6mdL._SY300_.jpg"); 
$('#mainImage img').attr("height", "200"); 
+1

Forse pubblicare una prima/dopo immagine, come io ho idea wat si sta descrivendo qui, e ho letto tutta la posta . –

+0

Sì, uno screenshot che mostra quello che vuoi che faccia sembrare farebbe una grande differenza. Difficile dire a questo punto esattamente quello che stai cercando di fare. –

+0

Stai solo provando a far rientrare tutto all'interno del tag

per raggrupparlo in modo che l'intero elemento si sposti alla riga successiva? –

risposta

4
articoli

gruppo È semplicemente con div (o se si desidera usare section, va bene anche così). Con un piccolo suggerimento di CSS è possibile raggruppare l'elemento all'interno del wrapper. Purtroppo, non c'è tale attributo di tenere insieme ma si può fare seguente:

section.wrapper { 
    min-width: 400px; /* Minimum width of your wrapper element */ 
    overflow: hidden; 
    display: inline-block; 
} 

min-width aiuta a mantenere gli elementi all'interno involucro in ordine. Seleziona un valore che meglio si adatta alla tua situazione.
overflow con valore nascosto consente al wrapper di comprendere e aggiungere valori di larghezza e altezza degli elementi flottati all'interno.
display display con valore blocco inline lasciare che tutti i wrapper si ordinino uno accanto all'altro a condizione che ci sia spazio sufficiente, in caso contrario, wrapper salta all'altra riga.

http://www.w3schools.com/ serve grandi fonti per comprendere e imparare le tecnologie CSS, HTML e Web in generale. Molto utile.

EDIT
Come ho curato, min-width o larghezza tute meglio in quella situazione di max-width

+0

Forse ho frainteso come implementarlo, ma ho aggiunto questa classe al mio CSS e aggiunto class = "wrapper" agli elementi della sezione, ma una delle immagini nella prima sezione si sposta ancora verso il basso fino alla seconda riga. Vedi http://jsfiddle.net/W7CYC/10/ –

+0

Oh, mi dispiace. Invece di 'max-width' dovresti usare la proprietà' min-width'. Il mio male, spero che aiuti :) –

1

Bootstrap griglie

Bootstrap include un potente sistema mobile prima griglia FlexBox per layout costruzione di qualsiasi forma e dimensione. Si basa su un layout a 12 colonne e dispone di più livelli, uno per ciascun intervallo di query multimediali. Puoi usare con i mixin di Sass o le nostre classi predefinite.

codice di esempio:

<div class="row"> 
    <div class="col-4">.col-4</div> 
    <div class="col-4">.col-4</div> 
    <div class="col-4">.col-4</div> 
    </div> 

    <div class="row"> 
    <div class="col-sm-4">.col-sm-4</div> 
    <div class="col-sm-4">.col-sm-4</div> 
    <div class="col-sm-4">.col-sm-4</div> 
    </div> 

    <div class="row"> 
    <div class="col-md-4">.col-md-4</div> 
    <div class="col-md-4">.col-md-4</div> 
    <div class="col-md-4">.col-md-4</div> 
    </div> 

    <div class="row"> 
    <div class="col-lg-4">.col-lg-4</div> 
    <div class="col-lg-4">.col-lg-4</div> 
    <div class="col-lg-4">.col-lg-4</div> 
    </div> 

    <div class="row"> 
    <div class="col-xl-4">.col-xl-4</div> 
    <div class="col-xl-4">.col-xl-4</div> 
    <div class="col-xl-4">.col-xl-4</div> 
    </div> 

uscita: Si tratta di output predefinito: enter image description here e quando le dimensioni del mio browser a ridurre a meno del 1200px enter image description here

Qui abbiamo quattro di fila e i coumns della prima riga saranno sempre allo stesso livello.

la seconda fila rimarrà quando la larghezza massima è> = 768px

terza fila rimarrà quando la larghezza massima è> = 992px e così on.I aver inserito questi dati in G RID mangiare

qui è una gif demo di uscita

enter image description here

potete mescolare questo classi together.for esempio

<div class="row"> 
    <div class="col-sm-4 col-xs-6">first-col</div> 
    <div class="col-sm-4 col-xs-3">second-col</div> 
    <div class="col-sm-4 col-xs-3">third-col</div> 
    </div> 

significa che se i dispositivi di piccole dimensioni vogliono tre colonne con lo stesso ma in un dispositivo molto piccolo, desidero prima di tutto essere la metà dello spazio e ogni due altre colonne con il 25% di.

Ora come puoi vedere in ogni dimensione puoi impostare il comportamento che ogni riga e ogni colonna dovrebbero fare e se vuoi muoverti sempre insieme puoi usare le classi col-* senza alcun prefisso. Opzioni Griglie

   (<768px) (≥768px) (≥992px)  (≥1200px) 
Grid behavior Horizontal at all times Collapsed to start, horizontal above breakpoints 
Container width None (auto) 750px  970px   1170px 
Class prefix .col-xs- .col-sm- .col-md-  .col-lg- 
# of columns 12 
Column width Auto  ~62px  ~81px ~97px 
Gutter width 30px (15px on each side of a column) 
Nestable  Yes 
Offsets   Yes 
Column ordering Yes 

Here è più in dettaglio, se avete bisogno

Problemi correlati