Bootstrap缩略图+每行高度相同的标题?

这里或这里有相关的问题,虽然似乎没有一个对我有用。

我已经按照Bootstrap示例来实现带有标题的缩略图 。 但是,我的标题文本具有不同的长度,导致三个缩略图的高度不同。 这看起来很丑陋。 为了解决这个问题,我尝试了matchHeight jQuery插件,但是没有效果。

这是我的代码:

    $(".thumbnail").matchHeight({ byRow: true, });    ... 

Heading 1

...

Heading 2

...

Heading 3

...

...

我在这里想念的是什么? 如何让这三个缩略图很好地对齐?

 .thumbnail { height: 547px; overflow-y: hidden; } .img-responsive { margin-bottom: 30px; } 
    

Heading 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque hendrerit maximus nulla id eleifend. Curabitur sit amet tellus vitae orci condimentum aliquam. Aenean facilisis lacinia suscipit. Cras quam massa, pharetra a convallis nec, gravida eu metus. Phasellus gravida faucibus nulla, sit amet suscipit purus. Donec luctus, ligula sed finibus congue, libero odio ultricies nulla, a pharetra diam mauris non turpis. Phasellus a aliquet lorem.

Heading 2

Nullam pulvinar posuere arcu ac mattis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis in interdum leo. Nunc sed purus vel eros mollis pharetra sit amet sit amet felis. Ut pharetra mi ac dolor dignissim facilisis. Phasellus odio massa, pulvinar sed velit ac, malesuada posuere urna. Aliquam urna eros, sollicitudin et diam quis, lacinia feugiat erat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean porttitor, tortor sit amet accumsan placerat, ante augue pretium nunc, vel volutpat turpis ex vitae dui. Etiam imperdiet turpis sed ante posuere, venenatis lobortis lorem pharetra.

Heading 3

Quisque mollis sollicitudin tellus, in sagittis diam rutrum ut. Mauris ex arcu, vehicula et ullamcorper id, viverra vel nibh. Ut vestibulum tellus vel erat lobortis, quis fringilla nulla semper. Proin a varius tortor, ac varius tortor. Sed fringilla dignissim neque cursus sit amet. Maecenas molestie hendrerit orci, ut faucibus mauris tempor in.

试试这个js:

 (function() { $(function() { $('.thumbnail').matchHeight({ byRow: true, property: 'height', target: null, remove: false }); }); })(); 

演示: http : //plnkr.co/edit/WZsXno08rc9rv3lZfODW?p = preview

我最终在这个答案中使用了一个巧妙的技巧,并编写了我自己的代码。 #mq-detector元素告诉我何时切换媒体查询而不必硬编码视口宽度。 然后我迷上了窗口的resize回调,知道用户何时更改了浏览器窗口的大小:

  

checkAdjustThumbnailHeight函数在第一次呈现页面时调用,并且每次触发浏览器的resize事件时都会调用。 该function检查媒体检测器元素并相应地调整缩略图高度:

 function checkAdjustThumbnailHeight() { if ($("#mq-detector > span.visible-lg").is(":visible")) { adjustThumbnailHeight(); } else if ($("#mq-detector > span.visible-md").is(":visible")) { adjustThumbnailHeight(); } else if ($("#mq-detector > span.visible-sm").is(":visible")) { inheritThumbailHeight(); } else if ($("#mq-detector > span.visible-xs").is(":visible")) { inheritThumbailHeight(); } else { } } 

请注意,对于smxs (实际像素值,请参见此处 )尺寸,我不会修改缩略图高度,因为在这些情况下缩略图会一个在另一个上方呈现,而不是彼此相邻。 对于mdlg大小,我将缩略图高度设置为最大高度:

 function adjustThumbnailHeight() { var heights = [ ]; $(".thumbnail").each(function() { heights.push( $(this).height() ); }); var max = Math.max.apply(null, heights); $(".thumbnail").each(function() { $(this).height(max); }); } function inheritThumbailHeight() { $(".thumbnail").each(function() { $(this).css("height", "inherit"); }); } 

这似乎工作正常。

附录由于某些图像可能需要更长时间才能完成加载,因此缩略图的高度可能会偏斜。 因此,我使用imageLoaded插件来推迟调整缩略图高度,直到所有图像都完成加载。