【发布时间】:2012-12-12 15:04:23
【问题描述】:
我正在处理一个新的 HTML 页面,我想使用无表格布局。请记住,以下内容只是页面的一部分,但我认为它清楚地描绘了我正在尝试做的事情。
下面的 HTML 旨在呈现六个带有文本的单元格。我希望单元格的大小适当,以包含里面的文本。
我遇到的问题是边框绘制不正确。在 IE 和 Firefox 中,我发现两个问题:
1) 其中一个边框绘制在表格之外。
2) 第一行单元格之间的边框绘制不完整。
<!DOCTYPE html>
<html>
<head>
<style>
html
{
}
.reviewRow
{
clear:both;
}
.reviewBlock
{
float:left;
border-top: 1px solid #444;
border-left: 1px solid #444;
}
.rightBorder
{
border-right: 1px solid #444;
}
.bottomBorder
{
border-bottom: 1px solid #444;
}
</style>
</head>
<body>
<div class='reviewRow'>
<div style="width:200px;" class='reviewBlock'>
THIS TEXT IS MUCH LONGER THAN THE TEXT IN THE OTHER CELLS
</div>
<div style="width: 225px" class='reviewBlock'>
ABC
</div>
<div style="width: 100px" class="reviewBlock rightBorder">
December 25, 2012
</div>
</div>
<div class='reviewRow bottomBorder'>
<div style="width:300px;" class='reviewBlock'>
Hello, World!
</div>
<div style="width: 125px" class='reviewBlock'>
123
</div>
<div style="width: 100px" class="reviewBlock rightBorder">
May 1, 2013
</div>
</div>
<div style='clear:both;'></div>
</body>
</html>
【问题讨论】:
-
为什么不使用表格?表格绝对适合数据表格......它们是为您的目的而制作的
-
这里不使用它们的一个特别原因是我不希望数据显示在每行具有相同数量(和布局)单元格的网格中。我想我可以为每一行使用不同的表格,但我给人的印象是 CSS 是首选解决方案。我可能是错的。这就是我在这里问的原因:-)
-
对于还不能即时可视化 HTML/CSS 代码的新手来说,这就是它的外观:jsfiddle.net/BK5Yq/1
:P -
@Andy 嵌套表格很难设置样式。例如,如何使用 CSS 选择器选择外部表格的单元格(同时不选择内部单元格)?
-
@Andy 不,它没有。浏览器会插入一个 TBODY 元素,因此选择器必须是
#table > tbody > tr > td。