内联块在图片库中不起作用
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>
我正在使用的网站中有一个图片库。 我需要在每个图像容器上使用 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>