如何使用CSS正确使用带边框的无表格布局?

问题描述 投票:0回答:4

我正在开发一个新的 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>
html css layout doctype
4个回答
4
投票

不要按照其他人所说的那样,不要使用表格进行布局,但是当涉及到表格数据时,如果您使用 div 来制作表格对我来说没有任何意义,只是不要使用表格设计布局,但您应该将其用于表格数据

如果你想用的话可以参考这个


1
投票

请注意,除非您明确指定,否则 html 元素的高度是根据其中的内容计算的。

您的第二个 div 仅占据了显示 ABC 所需的高度,因此边框仅显示了那么多。要解决此问题,您必须为每个 div 指定一定的高度,以便它们按照您想要的方式显示。

如果您想以表格方式显示数据,只需使用表格即可。他们只是为了这个目的。显然,您可以设计它们以使它们看起来更好。


1
投票

顺便说一句,要回答这个问题...您可以使用 display:table, table-cell 和 table-row(在 CSS3 中)

但我同意 Alien 先生的观点:只需使用表格来表示表格数据。


0
投票

如果您尝试对表格数据执行此操作,那么请务必使用表格,这就是它的用途。不这样做就像尝试使用 Photoshop 制作电子表格,而 Excel 是更好的工具。

您可以使用

colspan
属性更改单元格占用的列数。当然,默认情况下,一个单元格占用 1 列 (
colspan="1"
),但如果您需要它占用更多,只需更改数字即可。您可以使用
rowspan
对行执行相同的操作。

© www.soinside.com 2019 - 2024. All rights reserved.