首先我承认,我知道CSS,但不是那个主人。
我必须在表格中显示4张图片(td)。图像放置需要如下
A B
C D
其中A
,B
,C
& D
是4张图片,它们之间没有间距。 TD
的宽度为40像素,每幅图像的宽度为20像素。
我在Stackoverflow上找到了其他问题,并使用table's
border-spacing,border-collapse属性来删除空格。但现在问题是我的图像是
A
B
C
D //without spacing with display:block in `td img`
或
A B
//With space, with display:inline-block on `td img`
C D
工作演示在Fiddle
上给出代码(HTML)
<table>
<tbody>
<tr>
<td valign="top" width="40px">
<img width="20px" src="https://m.ak.fbcdn.net/profile.ak/hprofile-ak-ash4/187580_670310756_917182522_q.jpg" title="a">
<img width="20px" src="https://m.ak.fbcdn.net/profile.ak/hprofile-ak-ash4/187580_670310756_917182522_q.jpg" title="b">
<img width="20px" src="https://m.ak.fbcdn.net/profile.ak/hprofile-ak-ash4/187580_670310756_917182522_q.jpg" title="c">
<img width="20px" src="https://m.ak.fbcdn.net/profile.ak/hprofile-ak-ash4/187580_670310756_917182522_q.jpg" title="d">
</td>
</tr>
</tbody>
</table>
代码(CSS)
table {
display: table;
border-collapse: separate;
border-spacing: 2px;
border-color: gray;
}
tbody {
display: table-row-group;
vertical-align: middle;
border-color: inherit;
}
tr {
display: table-row;
vertical-align: inherit;
border-color: inherit;
}
td {
display: inline-table;
border-spacing: 0px;
border-collapse: collapse;
}
td img {
display: block;
}
我应该更改哪些CSS属性以使Fiddle符合预期。
答案 0 :(得分:3)
答案 1 :(得分:2)
您可以浮动它们,也可以使用内嵌块显示垂直对齐
td img {
float:left;
}
td img {
display: inline-block;
vertical-align:top;
}
答案 2 :(得分:1)
用于 td 中的font-size:0;
和 img 标记中的删除 display:block;
就像这样
td {
display: inline-table;
border-spacing: 0px;
font-size:0; //add this line
border-collapse: collapse;
}td img {
display:block; // remove this line
}
的 Upated Demo 强> 的
答案 3 :(得分:1)
看看这里: JSFiddle
我使用了float:left
clear:left
:nth-child()
和display:table-cell
如果您可以为此修改HTML,则可以向td
元素添加类属性,如下所示:<td class="image-grid">
然后更新CSS以专门为其选择:
td.image-grid img {
float:left;
display: block;
}
td.image-grid img:nth-child(3){
clear:left;
}
答案 4 :(得分:0)
答案 5 :(得分:0)
你可以使用浮动。但请不要给所有的td。而不是你可以给出特定的班级名称。
.testclass td img {
float:left;
}
它仅适用于testclass td。它不会影响其他表td值。