如何在使用显示 table-row 时使用边框和填充
How to use a border and a padding while using display table-row
我正在尝试通过 display:table
css 属性创建一个 table。
table 需要在底部有一个边框,每行内有一个填充,例如:
.row{
display: table-row;
border-bottom: 1px solid #e5e5e5;
padding: 20px 0;
}
我读过我可以通过使用这个
获得边框
.table {
border-collapse: collapse;
}
.row {
border-bottom: solid #000 3px
}
我也知道我可以通过使用
获得填充
.table {
display:table;
border-collapse:separate;
border-spacing:5px;
}
.row {
display:table-row;
}
我现在处于无法同时使用两者的困境中。
边框仅在我使用 border-collapse: collapse;
时有效,而填充仅在我使用 border-collapse:separate;
时有效
是否有任何解决方案或变通方法可以同时获得填充和边框?
编辑
这是一个示例(边框不起作用):
.table {
display:table;
border-collapse:seperate;
border-spacing:15px;
}
.row {
display:table-row;
border-bottom:3px solid #000;
}
.cell{
display:table-cell;
background-color: #eee;
padding:20px;
}
<div class="table">
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content<br> in another row
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
</div>
Here's also a jsfiddle in which you can try to change the border-collapse
attribute
编辑 2
这是我要实现的目标的图片:
编辑
像这样?
.table {
display:table;
border-collapse:separate;
border-spacing:5px;
}
.row {
display:table-row;
}
.cell{
display:table-cell;
border: 1px solid blue;
background-color: #eee;
padding:20px;
}
<div class="table">
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content<br> in another row
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
</div>
无法直接找到您正在寻找的答案。但是如果你想用一些黑客或其他方式来管理它,这里是解决方案。
我只是做了一个演示,你可以根据你的要求定制。
.table {
display: table;
border-collapse: separate;
border-spacing: 15px;
}
.row {
display: table-row;
}
.cell {
display: table-cell;
background-color: #eee;
padding: 20px;
position: relative;
}
.cell:after {
content: '';
display: block;
position: absolute;
left: 0;
top: 100%;
width: 100%;
height: 3px;
margin-top: 6px;
background: #000;
}
.cell:before {
content: '';
display: block;
position: absolute;
left: 100%;
top: 100%;
width: 15px;
height: 3px;
margin-top: 6px;
background: #000;
}
/* Delete below code if you want border below last row as well*/
.row:last-child .cell:before,
.row:last-child .cell:after {
content: none;
}
<div class="table">
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content<br> in another row
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
</div>
我正在尝试通过 display:table
css 属性创建一个 table。
table 需要在底部有一个边框,每行内有一个填充,例如:
.row{
display: table-row;
border-bottom: 1px solid #e5e5e5;
padding: 20px 0;
}
我读过我可以通过使用这个
获得边框.table {
border-collapse: collapse;
}
.row {
border-bottom: solid #000 3px
}
我也知道我可以通过使用
获得填充.table {
display:table;
border-collapse:separate;
border-spacing:5px;
}
.row {
display:table-row;
}
我现在处于无法同时使用两者的困境中。
边框仅在我使用 border-collapse: collapse;
时有效,而填充仅在我使用 border-collapse:separate;
是否有任何解决方案或变通方法可以同时获得填充和边框?
编辑 这是一个示例(边框不起作用):
.table {
display:table;
border-collapse:seperate;
border-spacing:15px;
}
.row {
display:table-row;
border-bottom:3px solid #000;
}
.cell{
display:table-cell;
background-color: #eee;
padding:20px;
}
<div class="table">
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content<br> in another row
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
</div>
Here's also a jsfiddle in which you can try to change the border-collapse
attribute
编辑 2
这是我要实现的目标的图片:
编辑
像这样?
.table {
display:table;
border-collapse:separate;
border-spacing:5px;
}
.row {
display:table-row;
}
.cell{
display:table-cell;
border: 1px solid blue;
background-color: #eee;
padding:20px;
}
<div class="table">
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content<br> in another row
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
</div>
无法直接找到您正在寻找的答案。但是如果你想用一些黑客或其他方式来管理它,这里是解决方案。 我只是做了一个演示,你可以根据你的要求定制。
.table {
display: table;
border-collapse: separate;
border-spacing: 15px;
}
.row {
display: table-row;
}
.cell {
display: table-cell;
background-color: #eee;
padding: 20px;
position: relative;
}
.cell:after {
content: '';
display: block;
position: absolute;
left: 0;
top: 100%;
width: 100%;
height: 3px;
margin-top: 6px;
background: #000;
}
.cell:before {
content: '';
display: block;
position: absolute;
left: 100%;
top: 100%;
width: 15px;
height: 3px;
margin-top: 6px;
background: #000;
}
/* Delete below code if you want border below last row as well*/
.row:last-child .cell:before,
.row:last-child .cell:after {
content: none;
}
<div class="table">
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content<br> in another row
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
<div class="row">
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
<div class="cell">
some content
</div>
</div>
</div>