2013-06-15 2 views
7

Когда размер браузера изменяется/на устройствах различного размера, мне нужен набор элементов html, которые все семантически связаны, чтобы оставаться вместе и перемещаться в блоке. То есть, если один из элементов переместится к следующей «строке» из-за того, что их недостаточно для того, чтобы содержать всю группу, ВСЕ это должно двигаться вниз.Можно ли группировать набор элементов html, чтобы они перемещались вместе?

IOW, это похоже на атрибут «держать вместе», который имеет некоторые группировки элементов в документе обработки текстов.

Чтобы быть немного более конкретно, сказать, что у меня есть коллекции следующих элементов:

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" 

Так, чтобы подвести итог, если не хватает места для второго «колонки» в «строке, «вместо того, чтобы хранить в первом столбце» и перемещать элементы во втором столбце до следующей «строки», в первом столбце должны быть соблюдены его братья и всегда оставаться в одной и той же «строке» с ними (I «Я помещаю« строку »и« столбец »в кавычки, потому что я не использую таблицу html, и они существуют только в виртуальном смысле).

Если вы находите это немного трудно представить себе (я не виню вас), проверьте скрипку: http://jsfiddle.net/W7CYC/8/

Примечание: Обертывание группировки Into html5 s не помогло.

Вот код:

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

Может быть, оставить до/после картины, как я не имею ни малейшего представления о ват вы здесь с описанием, и я прочитал весь пост , –

+0

Да, скриншот, показывающий, что вы хотите, чтобы он выглядел, сыграет большую роль. Трудно сказать в этот момент именно то, что вы хотите сделать. –

+0

Вы просто пытаетесь получить все внутри тега

для обертывания, чтобы сгруппировать его, чтобы весь элемент обернулся к следующей строке? –

ответ

4
элементы

Вы группа просто с div (или если вы хотите использовать section, все в порядке). С небольшим намеком CSS вы можете группировать элемент внутри обертки. К сожалению, нет такого атрибута, чем держать вместе но вы можете сделать следующее:

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

мин-ширина поможет вам сохранить элементы внутри обертки в порядке. Выберите значение, наиболее подходящее для вашей ситуации.
переполнение со значением скрыто позволяет вашей оболочке понимать и добавлять значения ширины и высоты плавающих элементов внутри.
со значением встроенный блок пусть все обертки упорядочиваются рядом друг с другом, если есть достаточно места, если нет, обертка переходит к другой строке.

http://www.w3schools.com/ служит отличным источником для понимания и изучения CSS, HTML и веб-технологий в целом. Очень полезно.

EDIT
Как я редактировал, мин-ширина или ширина костюмы лучше в этой ситуации, чем макс-ширина

+0

Возможно, я неправильно понял, как это реализовать, но я добавил этот класс в свой CSS и добавил class = "wrapper" к элементам раздела, но одно из изображений в первом разделе все еще перемещается во вторую строку. См. Http://jsfiddle.net/W7CYC/10/ –

+0

О, извините. Вместо 'max-width' вы должны использовать свойство' min-width'. Мой плохой, надеюсь, что помогает :) –

1

Bootstrap сетка

Bootstrap включает в себя мощную мобильной первую систему Flexbox сетки для строительных макетов всех форм и размеров. Он основан на макете 12 столбцов и имеет несколько уровней, по одному для каждого диапазона запросов. Вы можете использовать с помощью Sass mixins или наших предопределенных классов. Пример

код:

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

Выход: Это по умолчанию выход: enter image description here и когда размер моего браузера уменьшить до менее чем 1200px enter image description here

Здесь мы имеем четыре строки и первые кубики строк всегда будут на одном и том же буксире.

вторая строка останется, когда максимальная ширина составляет> = 768px

третья строка останется, когда максимальная ширина составляет> = 992px и так on.I вставили эти детали в G избавляется опционы

Здесь это GIF демо выход

enter image description here

вы можете смешать эти классы together.for например

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

означает, что если небольшие устройства, я хочу три колонки с одинаковыми с, но в очень маленьком устройстве. Я хочу, чтобы первая колонка составляла половину пространства, а каждый второй столбец составлял 25%.

Теперь, когда вы можете видеть в каждом размере, вы можете указать, какое поведение должно выполнять каждая строка и каждый столбец, и если вы хотите всегда перемещаться вместе, вы можете использовать классы col-* без префикса. Сетки Опции

   (<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 более подробно, если вам нужно