我只是想实现左列有两个合并行而右边一个没有的效果。我怎样才能实现这种布局?
html表格看起来像 -
<table border="1" >
<tr>
<td rowspan="2">Div 1</td>
<td> Div 2 </td>
</tr>
<tr>
<td>Div3</td>
</tr>
</table>
编辑:我想用Div来实现这一点。我将把User控件放在每个div元素中。重要的是Div3从div2开始但不低于Div1。
[抱歉,这是第一篇文章所以无法添加图片]
感谢。
答案 0 :(得分:8)
CSS
body {
margin: 0;
padding: 50px;
background-color: #FFFFFF;
color: #000000;
font-family: Arial, Helvetica, sans-serif;
}
.tablewrapper {
position: relative;
}
.table {
display: table;
}
.row {
display: table-row;
}
.cell {
display: table-cell;
border: 1px solid red;
padding: 1em;
}
.cell.empty
{
border: none;
width: 100px;
}
.cell.rowspanned {
position: absolute;
top: 0;
bottom: 0;
width: 100px;
}
<div class="tablewrapper">
<div class="table">
<div class="row">
<div class="cell">
Top left
</div>
<div class="rowspanned cell">
Center
</div>
<div class="cell">
Top right
</div>
</div>
<div class="row">
<div class="cell">
Bottom left
</div>
<div class="empty cell"></div>
<div class="cell">
Bottom right
</div>
</div>
</div>
</div>
演示:http://www.sitepoint.com/rowspans-colspans-in-css-tables/
答案 1 :(得分:0)
网格布局于2017年完全出于此目的而引入,并且可能更加复杂。
根据您的情况,您可以使用inline-grid
+ grid-template-areas
:
#page {
display: inline-grid;
grid-template-areas: "aside main"
"aside foot";
}
#page > aside {
grid-area: aside;
background: lightgreen;
}
#page > main {
grid-area: main;
background: lightpink;
}
#page > footer {
grid-area: foot;
background: lightblue;
}
<section id="page">
<aside>aside 1</aside>
<main>main 2</main>
<footer>footer 3</footer>
</section>