【问题标题】:Floating in row <figure> & <figcaption>在 <figure> 和 <figcaption> 行中浮动
【发布时间】:2015-06-16 09:08:33
【问题描述】:

我想在应该响应的行中添加图像列表(使用figurefigcaption)。

figcaption 应与figure 相同。

was trying this,但只有当所有figcaption 具有相同的高度时才有效;如果不是,结果是一团糟(更改浏览器宽度以查看问题):

figure { display: table; float: left; } 
figcaption { display: table-caption; caption-side: bottom ; }

also did this 在 Firefox 上运行良好,但 Chrome 看不到样式 width: 100% 的 figcaption。

figure {
 display: inline-block;
 vertical-align: top;
}
img, figcaption {
 vertical-align: bottom;
}
figcaption {
 width: 100%;
 display: table-caption;
 background: #f55544;
}

请帮忙 - 我必须完成这个,但我没有更多的想法来解决这个问题。

【问题讨论】:

  • 预期的行为是什么?添加图片或图片链接以向人们展示。你是什​​么意思“我正在尝试这个,但它只在 figcaptions 具有相同的高度时才有效”?它似乎与该解决方案配合得很好。
  • 嗨,我添加了图片链接。很抱歉这种方法,但我无法添加额外的链接或图片,因为我没有足够的声誉
  • 你会使用 JavaScript 吗?还是您正在寻找纯 CSS 的解决方案?
  • 我当然更喜欢 CSS 但总的来说我可以使用 JS

标签: html css css-float figure floating


【解决方案1】:

此解决方案使用 JavaScript,可能还有另一种仅使用 CSS 和 flex 显示的解决方案,但我现在不知道。它将包括找到最高的数字,然后将这个高度设置为像这样的其余数字。

应该是这样的:

var fc = document.querySelectorAll("figcaption");
var mh = 0;

// get the maximum height
for (var x = 0; x < fc.length; x++) {
    if (fc[x].offsetHeight > mh) { mh = fc[x].offsetHeight; }
}

// set all the figcaptions with the same maximum height
for (var x = 0; x < fc.length; x++) {
    fc[x].style.height = mh + "px";
}
figure { display: table; float: left; } 
figcaption { display: table-caption; caption-side: bottom ; }
<figure>
    <img src="http://imgsv.imaging.nikon.com/lineup/dslr/d800/img/sample01/img_01.png" >
    <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
    </figcaption>
</figure>
<figure>
    <img src="http://imgsv.imaging.nikon.com/lineup/dslr/d800/img/sample01/img_01.png" >
    <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmo ullamco laboris nisi ut aliquip ex
    </figcaption>
</figure>
    <figure>
    <img src="http://imgsv.imaging.nikon.com/lineup/dslr/d800/img/sample01/img_01.png" >
    <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquafgfdg. Ut enim ad minimrfgdfg gf fdg f g fd gfd g  veniam, quifdgfds nostrud fdgfdgexercitation ullamco laboris nisi ut aliquip ex
    </figcaption>
</figure><figure>
    <img src="http://imgsv.imaging.nikon.com/lineup/dslr/d800/img/sample01/img_01.png" >
    <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
    </figcaption>
</figure>
<figure>
    <img src="http://imgsv.imaging.nikon.com/lineup/dslr/d800/img/sample01/img_01.png" >
    <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmofgdgdfgdfgfdgd tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
    </figcaption>
</figure>
    <figure>
    <img src="http://imgsv.imaging.nikon.com/lineup/dslr/d800/img/sample01/img_01.png" >
    <figcaption>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquafgfdg. Ut enim ad minimrfgdfg gf fdg f g fd gfd g  veniam, quifdgfds nostrud fdgfdgexercitation ullamco laboris nisi ut aliquip ex
    </figcaption>
</figure>

你也可以在这个 JSFiddle 上看到它:http://jsfiddle.net/tm4tjp4c/8/

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2013-07-15
  • 2017-12-15
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多