2016-09-19 2 views
2

У меня есть базовый макет с flexbox.Не изотоп хорошо играет с Flexbox, или это только я?

CSS:

.grid { 
    display: flex; 
    flex-wrap: wrap; 
} 
.element-item { 
    flex-direction: row; 
    width: calc(100%/2); 
} 
.element-item img { 
    width: 100%; 
    height: 16em; 
    object-fit: cover; 
} 

HTML:

<div class="grid"> 
    <div class="element-item taxonomy"> 
     <img class="attachment-post-thumbnail" src="image-1.jpg" alt="image-1" /> 
     <h3>Title</h3> 
     <h5>Taxonomy</h5> 
    </div> 
    ... 
</div> 

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

JQuery::

// init Isotope 
var $grid = $('.grid').isotope({ 
    // options 
    itemSelector: '.element-item', 
}); 

// filter items on button click 
$('.filter-button-group').on('click', 'button', function() { 
    var filterValue = $(this).attr('data-filter'); 
    $grid.isotope({ filter: filterValue }); 
}); 

Не изотоп "работу" хорошо с Flexbox? Или мне не хватает опции Isotope jQuery. Или я не был достаточно точным с помощью свойств Flexbox?

Спасибо.

jsfiddle по запросу https://jsfiddle.net/Lyqdguvz/

+0

Довольно уверен, что изотоп действительно не работает с Flexbox, но ссылка на jsfiddle была бы полезна. – Macsupport

+0

Здесь вы найдете: https://jsfiddle.net/Lyqdguvz/ –

+0

Теперь я смущен! Оно работает. Я не знаю, почему он нарушает мой сайт в WordPress. Единственный другой jQuery и JS, который я запускаю, - это пятно и lightgallery, и я пробовал комментировать их скрипт и css из файла functions.php и .js. Бестолковые. –

ответ

0

Хорошо, я решил.

Что я забыл включить в то, что у меня был родительский контейнер .grid#main, установленный на display: flex и flexwrap: wrap. Снятие свойств отображения контейнеров решило его.

0

Насколько я могу сказать, более поздние версии изотопным дружат с Flex (я в настоящее время, используя его с проектом Flexbox), но вам нужно добавить опцию режима макета вашего ЯШАМ:

// init Isotope 
var $grid = $('.grid').isotope({ 
    // options 
    itemSelector: '.element-item', 
    layoutMode: 'fitRows' 
}); 

Доступны также другие варианты режима компоновки - ознакомьтесь с этим ресурсом: http://isotope.metafizzy.co/layout-modes.html

+0

_note: мой комментарий не является ответом_ @rhysclay 'fitRows' эффективно получает строки изотопов для рендеринга высоты самого высокого элемента в данной строке. Однако остальные элементы в строке не являются максимальной высотой, то есть высотой растяжения гибкой коробки. Это то, что я ищу. К сожалению, это не похоже на то, что изотоп будет играть с этим аспектом высоты Flexbox: [https://github.com/metafizzy/isotope/issues/1234](https://github.com/metafizzy/isotope/issues/ 1234) – redplanet

+0

Вот [Возможное исправление] (https://stackoverflow.com/questions/6060992/element-with-the-max-height-from-a-set-of-elements) угол - я попробую это, если/as/когда позволяет время. – redplanet

Смежные вопросы