我正在设计这个论坛布局,我想出了一个很好的设计来绘制论坛表格,但是,我不确定这是否可以在 HTML/CSS 中轻松完成。
在我继续绘制整个布局之前,我需要知道这是否可以实现以及如何实现,否则,我将不得不放弃这种效果并重新考虑......
例如,我目前的设计是这样的:
此示例中的行具有相同的高度,但这只是一个示例。真正的表格实际上会有不同的行高,代码需要考虑到这一点......
如何才能做到这一点?
我正在设计这个论坛布局,我想出了一个很好的设计来绘制论坛表格,但是,我不确定这是否可以在 HTML/CSS 中轻松完成。
在我继续绘制整个布局之前,我需要知道这是否可以实现以及如何实现,否则,我将不得不放弃这种效果并重新考虑......
例如,我目前的设计是这样的:
此示例中的行具有相同的高度,但这只是一个示例。真正的表格实际上会有不同的行高,代码需要考虑到这一点......
如何才能做到这一点?
CSS 可以非常轻松地完成类似的操作,前提是您不必随着表格大小的增加而垂直缩放渐变。下面是一个您可以使用的示例,它可以为您提供上面描述的效果。
更新:不知何故,我没有看到斜面(我想我不得不责怪它在晚上太晚了,而且我的视力太模糊了)。我必须放大才能真正看到它们,但我已经更新了我的解决方案以适应它们。您需要添加一个额外的“div”标签才能使此解决方案正常工作,但这是可能的,尽管我认为它在您的图像显示的范围内工作得不太好。不过,它会工作得相当不错。下面我包含一些 jQuery 脚本,它将消除对额外<div />
标签的需要。
对于标记,你会使用这样的东西:
<table cellspacing="0">
<tr><td class="side"><div class="bevel">lorem</div></td><td class="side"><div class="bevel">ipsum</div></td><td class="main"><div class="bevel">dolor sit amet, consectetur</div></td></tr>
<tr><td class="side"><div class="bevel">lorem</div></td><td class="side"><div class="bevel">ipsum</div></td><td class="main"><div class="bevel">dolor sit amet, consectetur</div></td></tr>
<tr><td class="side"><div class="bevel">lorem</div></td><td class="side"><div class="bevel">ipsum</div></td><td class="main"><div class="bevel">dolor sit amet, consectetur</div></td></tr>
</table>
在你的样式表中,你会使用这样的东西:
td {
border: 1px solid #777;
}
.bevel {
background: url('img.png') top left repeat-x;
margin: -1px;
border-top: 1px solid #fbfbfb;
border-left: 1px solid #fbfbfb;
border-right: 1px solid #bfbfbf;
border-bottom: 1px solid #e8e8e8;
}
.side {
width: 30px;
}
.main {
width: 170px;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
对于图像,使其宽 1 像素。它会重复自己以适应单元格的宽度。如果你想让渐变垂直拉伸,那你就不走运了。CSS 不能缩放图像,只能重复它们。为了制作垂直缩放的背景图像,您需要使用噩梦般的标记或某种 JavaScript 才能使其工作。
为了摆脱<div />
标签汤,您可以使用 jQuery 插入标签,这样您就不会弄乱您的源代码。您需要做的就是outerBevel
向标签添加一个 ' ' 类<td />
,然后调用这个 jQuery 脚本(如果您使用的是 jQuery。我确信其他 JavaScript API 可以做类似的事情):
$('.outerBevel').wrapInner('<div class="bevel"></div>');
对于布局,标准 HTMLtable
标记可以完成所有这些工作,并且也适合使用它。
要获得所需的边框效果,请在此处查看不同的 CSS 边框选项:http: //www.w3schools.com/css/css_reference.asp#border
你可能想要做这样的事情:
table#mytable td {
border-style: inset;
border-width: 3px; /* or whatever width you want */
}