2014-10-03 1 views

ответ

2

Вы можете использовать плагин Foundation Equalize вместе с Twitter Bootstrap, но вам нужно сделать пару вещей, чтобы заставить его работать.

DEMO

Во-первых, ваш принцип проблема в том, что foundation.js ищет соответствующие foundation.css. Поскольку вы используете Twitter Bootstrap в качестве базовых стилей, вы, вероятно, не хотите иметь дело со всеми потенциальными конфликтами стиля или с тем, чтобы ваши пользователи загружали другой большой файл css. Неужели все, что требуется, это ссылка на версию Foundation и имена, так что просто добавьте следующие строки в CSS:

meta.foundation-version { 
    font-family: "/5.4.5/"; 
} 
meta.foundation-data-attribute-namespace { 
    font-family: false; 
} 

Вторая проблема связана с вашей разметкой. У вас есть атрибут data-equalizer-watch, применяемый к содержащемуся элементу .col-sm-4, но у вас есть граница с дочерним элементом с классом latest-news-item. Таким образом изменить разметку быть:

<div class="row" data-equalizer> 
    <div class="col-sm-4" > 
     <div class="latest-news-item" data-equalizer-watch> 
     <!--Your content here--> 
     </div> 
    </div> 
    <div class="col-sm-4" > 
     <div class="latest-news-item" data-equalizer-watch> 
     <!--Your content here--> 
     </div> 
    </div> 
    <div class="col-sm-4" > 
     <div class="latest-news-item" data-equalizer-watch> 
     <!--Your content here--> 
     </div> 
    </div> 
</div> 

Как вы можете видеть в демо, я был в состоянии получить тестовую страницу, чтобы работать с этими изменениями, но я также был в состоянии значительно уменьшить размер файла foundation.js используя страницу Custom option on the Foundation Download и просто создавая js-версию только с плагином выравнивания. Минимальная версия была 31K. Если вы не планируете использовать какие-либо другие плагины для фундамента, вы можете использовать пользовательский файл.

Это говорит о том, что для людей, которые ищут альтернативный подход с более легким весом, было бы так же легко написать собственный jQuery, например, добавив класс в строку, которую вы хотите уравнять (я назвал ее «уравнивать» «), а затем добавить:

var row=$('.equalize'); 
$.each(row, function() { 
    var maxh=0; 
    $.each($(this).find('div[class^="col-"]'), function() { 
     if($(this).height() > maxh) 
      maxh=$(this).height(); 
    }); 
    $.each($(this).find('div[class^="col-"]'), function() { 
     $(this).height(maxh); 
    }); 
}); 

Заверните его в функцию, и вы можете вызвать его на изменение размеров, а также, если это важно для вас.

+0

Возможно, вы можете настроить Foundation так, чтобы он содержал только те детали, о которых вы заботитесь. – cvrebert

+0

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