我正在制作照片库,每行有四个元素。
我对图像之间的空间有余量。
.picDesc {
float: left;
margin:0 1% 1% 0; /* <--- this */
width: 24.2%;
text-align: center;
}
显然,我不需要右边最后一个div的保证金。
所以我使用nth-child删除第四个div的边距。
.picDesc:nth-child(4n+4){
margin:0 0% 1% 0;
}
并且有效!
但是当我点击一张专辑,例如#34; Altro&#34;,并显示这张专辑的图片时,你看到的边距是错误的。
我该如何解决这个问题?
感谢您的帮助!!
答案 0 :(得分:4)
这是因为这个元素:
<div class="albumDesc"><a href="archive.php">Albums</a><p></p></div>
<!-- (Temporarily remove it and see for yourself) -->
哪位nth-child()
承认。
将您的<div class="picDesc">
元素放在自己的容器中,然后缩小nth-child()
范围。
例如:
<强> HTML 强>
<div class="albumDesc"><a href="archive.php">Albums</a><p></p></div>
<div class="picDescCont">
<div class="picDesc">..</div>
<div class="picDesc">..</div>
....
</div>
<强> CSS 强>
.picDescCont .picDesc:nth-child(4n+4){
margin:0 0% 1% 0;
}
注意:.picDesc:nth-child(4n+4)
表示具有类.picDesc
的每个 n 元素,而不是具有类{的元素的每个 n 元素{1}}。
答案 1 :(得分:0)
这是因为 nth-of-type
如果是相同的类型。因此,班级albumDesc
是第一个div。
不幸的是nth-of-class
确实存在。
您可以将albumDesc
更改为标题标题,因此更具语义性,并且不需要对div进行分组。
<h1 class="albumDesc"><a href="archive.php">Albums</a></h1>