2013-06-15 7 views
7

Po zmianie rozmiaru przeglądarki/na urządzeniach o różnych rozmiarach, potrzebuję zestawu elementów HTML, które są semantycznie powiązane, aby pozostać razem i przenieść się w bloku. Oznacza to, że jeśli jeden z elementów przejdzie do następnego "rzędu" z powodu ich niewystarczającej szerokości, aby pomieścić całe ugrupowanie, WSZYSTKO powinno się przesunąć w dół.Czy można pogrupować zestaw elementów HTML, aby mogły się poruszać razem?

IOW, jest to coś w rodzaju atrybutu "zachowaj razem", które mają niektóre grupy elementów w dokumencie przetwarzania tekstu.

się być nieco bardziej specyficzny, że mam zbiory następujących elementów:

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" 

Więc Podsumowując, jeśli nie ma wystarczająco dużo miejsca dla drugiego „kolumny” w „wierszu, "zamiast trzymać w pierwszej" kolumnie "i przesuwać elementy w drugiej kolumnie w dół do następnego" rzędu ", w pierwszej kolumnie należy trzymać się rodzeństwa i zawsze pozostać z nim w tym samym" rzędzie "(I wstawia "wiersz" i "kolumnę" w cudzysłowach, ponieważ nie używam tabeli html, a te istnieją tylko w sensie wirtualnym).

Jeśli znalezienie tego trochę trudno wyobrazić (Nie winię cię), sprawdź na skrzypcach: http://jsfiddle.net/W7CYC/8/

Uwaga: owijanie ugrupowania język HTML5 s nie pomogło.

Oto kod:

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

Może umieścić przed/po zdjęciu, a nie mam pojęcia wat opisujesz tutaj, i czytałem przez całą postu . –

+0

Tak, zrzut ekranu, który pokazuje, jak chcesz wyglądać, zrobiłby wielką różnicę. Trudno powiedzieć w tym momencie, co dokładnie chcesz zrobić. –

+0

Czy próbujesz umieścić wszystko wewnątrz znacznika

w celu jego zawinięcia, aby cały element został zawinięty do następnej linii? –

Odpowiedz

4
przedmioty

grupa po prostu z div (lub jeśli chcesz używać section, to też jest w porządku). Przy odrobinie podpowiedzi CSS możesz zgrupować przedmiot wewnątrz opakowania. Niestety, nie ma takiego atrybutu niż trzymać razem ale można zrobić następujące:

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

min-width pomaga utrzymać elementów wewnątrz owijki w porządku. Wybierz wartość, która najlepiej pasuje do Twojej sytuacji.
przepełnienie o wartości ukryte umożliwia zrozumienie otoki i dodanie wartości szerokości i wysokości elementów pływających w środku.
display z wartością wbudowany blok niech wszystkie owijki zamawiają obok siebie tak długo, jak jest wystarczająco dużo miejsca, jeśli nie, opakowanie skacze do innego rzędu.

http://www.w3schools.com/ służy do poznawania i uczenia się ogólnie CSS, HTML i technologii internetowych. Bardzo przydatne.

EDIT
Jak edytować, min-width lub szerokości garnitury lepiej w tej sytuacji niż max-width

+0

Być może nie rozumiem, jak to zaimplementować, ale dodałem tę klasę do mojego CSS i dodałem class = "wrapper" do elementów sekcji, ale jedno z obrazów w pierwszej sekcji nadal przesuwa się w dół do drugiego rzędu. Zobacz http://jsfiddle.net/W7CYC/10/ –

+0

Och, przepraszam. Zamiast 'max-width' powinieneś użyć właściwości' min-width'. Moja zła, mam nadzieję, że pomaga :) –

1

Bootstrap ruszty

Bootstrap zawiera potężny ruchomej pierwszy system siatki schematu flexbox dla układów budowlanych o różnych kształtach i rozmiarach. Oparty jest na układzie 12-kolumnowym i ma wiele poziomów, po jednym dla każdego zakresu zapytań o media. Możesz korzystać z niego za pomocą miksów Sass lub naszych predefiniowanych klas. Przykładem

Kod:

<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> 

wyjściowa: Jest to domyślne wyjście: enter image description here a gdy wielkość przeglądarce zmniejszyć do mniej niż 1200 pikseli enter image description here

mamy tu cztery wiersz i pierwszy rząd coumns będzie zawsze w tym samym wątku.

w drugim rzędzie pozostanie gdy maksymalna szerokość wynosi> = 768px

w trzecim rzędzie pozostanie gdy maksymalna szerokość wynosi> = 992px więc on.I włożona Opisuje G oczyszcza opcji

tutaj jest demo gif wyjścia

enter image description here

można mieszać tego zajęcia together.for przykład

<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> 

oznacza, że ​​jeśli małe urządzenia chcę trzy kolumny z tym samym, ale w bardzo małym urządzeniu chcę, aby pierwsza kolumna była o połowę mniejsza, a co dwie pozostałe kolumny o 25%.

Teraz, jak widać w każdym rozmiarze, możesz ustawić zachowanie każdego wiersza i każdej kolumny, a jeśli chcesz się zawsze poruszać razem, możesz użyć klas col-* bez żadnego prefiksu. Opcje Kraty

   (<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 jest bardziej szczegółowo jeśli trzeba

Powiązane problemy