<html>
<style type="text/css">
.table { display: table;}
.tablerow { display: table-row; border:1px solid black;}
.tablecell { display: table-cell; }
</style>
<div class="table">
<div class="tablerow">
<div class="tablecell">Hello</div>
<div class="tablecell">world</div>
</div>
<div class="tablerow">
<div class="tablecell">foo</div>
<div class="tablecell">bar</div>
</div>
</div>
</html>
根据我的理解,应该在我通过tablerow类指定的每一行上绘制黑色边框。但边框不会出现。
我想改变一行的高度。如果我用'px'指定它 - 它可以工作。但是,如果我给它一个% - 不会工作。我试过以下
.tablerow {
display: table-row;
border:1px solid black;
position: relative; //not affecting anything and the border disappears!!
//position: absolute; // if this is set,the rows overlaps and the border works
height: 40%; // works only if specified in px and not in %
}
某些地方出了问题,但我无法理解在哪里。请帮忙!
答案 0 :(得分:140)
您需要将border-collapse: collapse;
添加到.table
课程,才能使其正常工作:
<html>
<style type="text/css">
.table { display: table; border-collapse: collapse;}
.tablerow { display: table-row; border: 1px solid #000;}
.tablecell { display: table-cell; }
</style>
<div class="table">
<div class="tablerow">
<div class="tablecell">Hello</div>
<div class="tablecell">world</div>
</div>
<div class="tablerow">
<div class="tablecell">foo</div>
<div class="tablecell">bar</div>
</div>
</div>
</html>
答案 1 :(得分:2)
您需要将border
添加到tablecell
类。
另外,为了使它看起来不错,您需要将border-collapse:collapse;
添加到表类中。
示例:http://jsfiddle.net/jasongennaro/4bvc2/
修改强>
根据评论
我正在为div应用边框,它应该显示正确吗?
是的,但是一旦您将其设置为显示为table
,它将如何作为table
,那么您将需要遵循css规则来显示表格。
如果您只需要在行上设置border
,请使用border-top
和border-bottom
,然后为最左侧和最右侧的单元格设置特定的类。
答案 2 :(得分:2)
表行不能具有border属性。通过为所有单元格提供顶部和底部边框,并为最左侧和最右侧单元格分别添加左侧和右侧边框,可以获得每行的边框。
编辑:我忘记了border-collapse:collapse
。那也行。