我有一个HTML表,其中使用* ngFor将数据导入其中。表中的某些行有12个数据,所以它有12列,但是有些行只有2个数据,所以只有2列。
我尝试使用空单元格:在CSS中显示,但是由于我要显示的多余单元格没有任何数据,因此它们不会显示。
我也尝试添加额外的空<td>
元素,但是因为我正在使用*ngFor
,所以它还将空单元格添加到每一行的末尾,因此它们仍然是不均匀的。 / p>
我已经做了一个基本的StackBlitz,以演示该问题。在该示例中,我希望所有单元格都具有灰色背景,即使它们没有数据也是如此。
最好的方法是什么?
答案 0 :(得分:1)
您可以使用colspan
和rowspan
用于列和行:
<table>
<tr>
<th colspan="2">65</th>
<th colspan="2">40</th>
<th colspan="2">20</th>
</tr>
<tr>
<th>Men</th>
<th>Women</th>
<th>Men</th>
<th>Women</th>
<th>Men</th>
<th>Women</th>
</tr>
</table>
此处有更多详细信息:https://html.com/tables/rowspan-colspan/
您还可以避免使用表格,并使用DIV和网格或Flexbox创建整个布局。
要了解有关CSS网格的更多信息:https://css-tricks.com/snippets/css/complete-guide-grid/
要了解有关CSS Flexbox的更多信息:https://css-tricks.com/snippets/css/a-guide-to-flexbox/
答案 1 :(得分:0)
我认为这可能是您想要做的
<table class="table table-bordered">
<tr>
<th colspan="2">65</th>
<th colspan="2">40</th>
<th colspan="2">20</th>
</tr>
<tr>
<th>Men</th>
<th>Women</th>
<th>Men</th>
<th>Women</th>
<th>Men</th>
<th>Women</th>
</tr>
<tr>
<th>Men 1</th>
<th> </th>
<th> </th>
<th>Women1</th>
<th> </th>
<th>Women2</th>
</tr>
</table>
答案 2 :(得分:0)
使用以下代码更改表格。这将完美地工作。
var autotila = document.getElementById("autolista")
var nappi = document.getElementById("nappi");
nappi.addEventListener("click", function() {
var auto = new XMLHttpRequest();
auto.open('GET', 'cars.json');
auto.onload = function() {
var ourData = JSON.parse(auto.responseText);
lisaahtml(ourData);
};
auto.send();
});
function lisaahtml(data) {
var htmlpatka = "";
for (i = 0; i < data.lenght; i++) {<<<----- data.length
htmlpatka += "<p>" + data[i].manufacturer + "," + data[i].model + "," + data[i].price + "," + data[i].wiki + "</p>";
}
autotila.insertAdjacentHTML('beforeend', htmlpatka)
}
使用此数组添加标题行
<table id="table">
<tr>
<td *ngFor = "let col of tableColumns">{{col}}</td>
</tr>
<tr *ngFor = "let data of array">
<td *ngFor = "let col of tableColumns; index as i">{{data.split(',')[i]}}</td>
</tr>
</table>