【问题标题】:Inline-block isn't working in image gallery内联块在图片库中不起作用
【发布时间】:2018-03-14 17:29:27
【问题描述】:

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

这是图片库的html代码。

   <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>

这是图片库的css代码。

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; 
}

【问题讨论】:

  • 还有一个问题 ;-) 我想将图片库居中,所以我将 'text-align:center' 添加到 'section'。它工作正常,但我想要的是使整个画廊居中并左对齐其中的每个图像。我该怎么做?

标签: css image gallery sections


【解决方案1】:

问题是您在&lt;article&gt; 元素上设置了100% 中的width,因此虽然它们设置为display: inline-block,但它们各自占据了行的100%。为避免这种情况,您需要为它们提供更小的基于百分比的宽度,最好使用width: calc((100% / 3) - (2% * 3))。这使它们占据尽可能多的宽度,同时考虑元素的数量以及每个元素的 margin-left

另请注意,您的&lt;img&gt; 标签有一个硬编码的固定width。因为您现在正在调整包含 &lt;article&gt; 的标签以相对于容器,所以这些图像应该被赋予 width100%

这可以在下面看到:

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>

【讨论】:

  • 天哪....非常感谢!!!它完美地工作!再次感谢您的详细解释!
猜你喜欢
  • 1970-01-01
  • 2011-08-15
  • 2014-10-17
  • 1970-01-01
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多