Html 等于缩略图的高度

Html 等于缩略图的高度,html,css,twitter-bootstrap,Html,Css,Twitter Bootstrap,我每个Twitter引导行有3个缩略图span3元素,但是文本是可变的,这会破坏布局。如何将每个缩略图设置为最大缩略图的高度,使其正确流动 <div class="box_line" style="float: left; border: 1px solid red;"> <div class="thumbnail span3"> <img src="http://placehold.it/260x180" alt=""/> <div

我每个Twitter引导行有3个
缩略图span3
元素,但是
文本是可变的,这会破坏布局。如何将每个
缩略图设置为最大缩略图的高度,使其正确流动

<div class="box_line" style="float: left; border: 1px solid red;">
  <div class="thumbnail span3">
    <img src="http://placehold.it/260x180" alt=""/>
    <div class="caption">
      <h5>Thumbnail label</h5>
      <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
    </div>
  </div>
</div>

缩略标签
我是奥迪奥先生,我是艾格斯塔·艾格特·奎姆先生。Donec在eget metus为非mi porta孕妇确定了最佳身份。我不知道是谁干的,我不知道是谁干的

我还没有找到一个可以执行此操作的jQuery插件,中的解决方案对我也不起作用。

试试这把小提琴:(我使用了您在评论中链接的脚本)

无论如何,请确保只有在加载所有缩略图后才调用该函数,否则可能会得到错误的值

function equalHeight(group) {    
    var tallest = 0;    
    group.each(function() {       
        var thisHeight = $(this).height();       
        if(thisHeight > tallest) {          
            tallest = thisHeight;       
        }    
    });    
    group.each(function() { $(this).height(tallest); });
} 

$(document).ready(function() {   
    equalHeight($(".thumbnail")); 
});

CSS解决方案是使用
clear:left用于应位于行中第一位的每个缩略图。如果您事先知道一行中的缩略图数量,则此操作有效

我使用以下css类:

ul.thumbnails.per6 > li:nth-child(6n+1) {
  clear: left;
}
HTML如下所示:

<ul class="thumbnails per6">
  <li class="span2">
    <div class="thumbnail">...</div>
  </li>
</ul>
  • ...

请参阅以获取浏览器支持。

我知道我来晚了,但这里是Fabrizio答案的一个方便的变体,包装为jQuery插件:

(function($) {
    $.fn.uniformHeight = function() {
        var maxHeight   = 0,
            max         = Math.max;

        return this.each(function() {
            maxHeight = max(maxHeight, $(this).height());
        }).height(maxHeight);
    }
})(jQuery);
…并使用它:

$(".thumbnails").find(".thumbnail").uniformHeight();

另外,如果您的缩略图包含图像,请确保在触发窗口加载事件后调用此选项。

只需设置最大高度即可

.caption p {
   height: 120px;
}

对于有响应的站点,您可能需要在调整窗口大小时更新高度。我扩展了Tim Lowrimore的
uniformHeight
插件,使用了Gaby aka G.Petrioli的巧妙技巧,使用wrapInner获得元素内容的高度


我喜欢蒂姆的回答,以下是我的一行文字版本:

$(".thumbnail").height(Math.max.apply(null, $(".thumbnail").map(function() { return $(this).height(); })));
通过点头来获取数组的最大值。

这是css中的代码

/*in css*/
  .thumbnail img{
   height:100px;
                } 
/或者直接添加到内联/



就这样

使用css flexbox,可以使用css使缩略图的高度相等

这里有最好的例子

。等高缩略图{
显示:-webkit flex;
显示:-ms flexbox;
显示器:flex;
-webkit柔性包装:包装;
-ms-flex-wrap:wrap;
柔性包装:包装;
保证金:0;
填充:0;
列表样式:无;
}
.等高{
宽度:22%;
利润率:0.1%20px;
填充:0.5%;
背景:#FFF;
长方体阴影:0 1px 1px rgba(0,0,0,0.1)
}
.等高缩略图{
显示:块;
保证金:5px0;
填充:0;
}
.等高缩略图img{宽度:100%;}
.caption{填充:2%;}
  • Lorem ipsum dolor sit amet,是一位杰出的献身者。佩伦特·埃尼姆和奥古斯·马蒂斯是临时的猫咪

  • Lorem ipsum dolor sit amet,是一位杰出的献身者。阿利奎姆·埃拉特·帕特。库拉比图尔、洛雷姆·伊普苏姆·多洛·希特·阿梅特、康塞特图尔·阿迪皮斯精英。佩伦特·埃尼姆和奥古斯·马蒂特·费利斯。阿利奎姆·埃拉特·帕特。库拉比图尔

  • Lorem ipsum dolor sit amet,是一位杰出的献身者

  • Lorem ipsum dolor sit amet,是一位杰出的献身者。佩伦特·埃尼姆和奥古斯·马蒂斯是临时的猫咪。阿利奎姆·埃拉特·帕特。库拉比图尔

  • Lorem ipsum dolor sit amet,tempor nec eget felis。阿利奎姆·埃拉特·帕特。库拉比图尔

  • Lorem ipsum dolor sit amet,是一位杰出的献身者。佩伦特·埃尼姆和奥古斯·马蒂斯是临时的猫咪。阿利奎姆·埃拉特·帕特。库拉比图尔

  • Lorem ipsum dolor sit amet,是一位杰出的献身者。佩伦特·埃尼姆和奥古斯·马蒂斯·泰尔纳比托


只需在下面添加css即可解决您的问题

.container{
    display: flex;
    flex-wrap: wrap;
  }
你可以在这里看到结果。

很抱歉,我不懂你的英语:你说的“每次元素中的文本都有其他高度”是什么意思,以及“最高的缩略图”是什么意思?也许这很有用,知道为什么你希望所有具有相同高度的框尝试不同的方法(css纯)@GeorgeKatsanos有时p标记中的文本可以有10个字符,有时300个字符=>p中的文本将在一行中,或者也可以在5行中。“最高缩略图”是指具有最高高度的缩略图(因为p中有可变文本)@FabrizioCalderan,因为我试图获取。(这个例子对我不起作用)@user984621也许你正在尝试在完整图像加载之前获取列的高度。你能提供一个你所做的演示吗?但问题是,这个示例在Chrome中不起作用-这里是通过第一个框设置行的高度(在FF中它起作用。)嗨,Fabrizio,你能再给我发一次Chrome的补丁吗?如果能在这个答案中看到代码就好了,而不必遵循链接应为
var=0。否则,这将成为
窗口
对象上的全局属性:-(这是非响应性的,这违背了使用Twitter引导的
缩略图
的主要目的,因为如果图像(以及其他可能的元素)碰巧有不同的高度,同样的问题也会发生。包括我自己在内,这是一个挫折点,但这不是一个灵活的解决方案。这工作非常完美,直接插入我的引导设置,其中有未知数量的可变高度指标。感谢!+1提到等待所有图像loadedIt不起作用。你知道吗让所有人都使用相同的内容
/*in css*/
  .thumbnail img{
   height:100px;
                } 
  <img="imglinkwhateveryouwant" style="height:100px;">
.container{
    display: flex;
    flex-wrap: wrap;
  }