内联块在图片库中不起作用

Inline-block isn't working in image gallery

我正在使用的网站中有一个图片库。 我需要在每个图像容器上使用 inline-block 而不是浮动,以便稍后可以将整个画廊居中(我发现经过这么多次尝试我永远无法将浮动图像居中) 如果有人在我的代码中发现缺陷,我将感激不尽。 (郑重声明,我在图片库上方的顶部导航中使用了浮动。请告诉我它是否对图片库有任何影响!)

This is html code for image gallery.

   <section>
        <article class="img1">
            <a href=""><img src="img/img1.png"></a>
            <dl>
                <a href="#"><dt>Image Title</dt></a>
                <dd>Image Description</dd>
            </dl>
        </article>
        <article class="img2">
            <a href=""><img src="img/img2.png"></a>
            <dl>
                <a href="#"><dt>Image Title</dt></a>
                <dd>Image Description</dd>
            </dl>
        </article>
        <article class="img3">
            <a href=""><img src="img/img3.png"></a>
            <dl>
                <a href="#"><dt>Image Title</dt></a>
                <dd>Image Description</dd>
            </dl>
        </article>

This is css code for image gallery.

section{
    margin-top: 80px; /* the gap between top navigation above */
}

article .img1, .img2, .img3 {
    display:inline-block;
    width: 100%;
    height: auto;
    margin-left: 2%;
    padding: 0;
}

article img{
    width: 250px;
    height: 250px;
    margin: 0;
    padding: 0;
}

article dl{
    display: block;
    width: 250px;
    margin-top: 10px;
    text-align: left;
}

article dt{
    font-size: 0.9em;
    font-weight: 400; 
}

article dd{
    margin-left: 0;
    font-size: 0.9em;
    font-weight: 300; 
}

问题是您在 <article> 元素上设置了 width of 100%,因此虽然它们设置为 display: inline-block,但它们每个都需要向上 100% 行。为避免这种情况,您需要给它们一个较小的 percentage-based 宽度,最好是 width: calc((100% / 3) - (2% * 3))。这将它们设置为占用尽可能多的宽度,同时考虑到元素的数量以及每个元素的 margin-left

另请注意,您的 <img> 标签已 hard-coded 固定 width。因为您现在正在调整包含的 <article> 标签以相对于容器,所以这些图像应该被赋予 100%width

这可以在下面看到:

section {
  margin-top: 80px;
  /* the gap between top navigation above */
}

.img1,
.img2,
.img3 {
  display: inline-block;
  width: calc((100% / 3) - (2% * 3));
  height: auto;
  margin-left: 2%;
  padding: 0;
}

article img {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

article dl {
  display: block;
  width: 250px;
  margin-top: 10px;
  text-align: left;
}

article dt {
  font-size: 0.9em;
  font-weight: 400;
}

article dd {
  margin-left: 0;
  font-size: 0.9em;
  font-weight: 300;
}
<section>
  <article class="img1">
    <a href=""><img src="http://placehold.it/100"></a>
    <dl>
      <a href="#"><dt>Image Title</dt></a>
      <dd>Image Description</dd>
    </dl>
  </article>
  <article class="img2">
    <a href=""><img src="http://placehold.it/100"></a>
    <dl>
      <a href="#"><dt>Image Title</dt></a>
      <dd>Image Description</dd>
    </dl>
  </article>
  <article class="img3">
    <a href=""><img src="http://placehold.it/100"></a>
    <dl>
      <a href="#"><dt>Image Title</dt></a>
      <dd>Image Description</dd>
    </dl>
  </article>