gpt4 book ai didi

html - 将 css 网格布局中的表行独立于其他行

转载 作者:行者123 更新时间:2023-11-28 00:35:42 25 4
gpt4 key购买 nike

我必须仅使用 CSS 重新排列这样的表格。

<head>
<style>
table, th, td {border: 1px solid black; border-collapse: collapse; }
th, td {padding: 5px;}
th {text-align: left;}
</style>
</head>
<body>

<table>
<tr>
<th>H1</th>
<th>H2</th>
<th>H3</th>
<th>H4</th>
<th>H5</th>
<th>H6</th>
<th>H7</th>
<th>H8</th>
<th>H9</th>
<th>H10</th>
</tr>
<tr>
<td class="col-A1">A1</td>
<td class="col-A2">A2</td>
<td class="col-A3">A3</td>
<td class="col-A4">A4</td>
<td class="col-A5">A5</td>
<td class="col-A6">A6</td>
<td class="col-A7">A7</td>
<td class="col-A8">A8</td>
<td class="col-A9">A9</td>
<td class="col-A10">A10</td>
</tr>
<tr>
<td class="col-B1">B1</td>
<td class="col-B2">B2</td>
<td class="col-B3">B3</td>
<td class="col-B4">B4</td>
<td class="col-B5">B5</td>
<td class="col-B6">B6</td>
<td class="col-B7">B7</td>
<td class="col-B8">B8</td>
<td class="col-B9">B9</td>
<td class="col-B10">B10</td>
</tr>
</table>
</body>

如何获得这样的布局?我最初的想法是使用 CSS flexbox,但我不知道如何将行重新排列到这种布局中,尤其是 A2 到 A7 部分,其中有两列。

因此,正如对原始帖子的评论所建议的那样,我会选择 CSS 网格布局。

Table final layout

最佳答案

这对于表格是不可能的,即使您重新排列行也是如此,因为col-A9col-A10 各占2.5 列。使用 flexbox 时,您会发现跨行有困难(例如 col-A2),只有嵌套更多容器才能解决。

但是对于 css 网格,这实际上很容易 - 您可以在此处使用 20 列布局。查看带有内联解释的演示:

.wrapper {
display: grid; /* establish a grid container */
grid-template-columns: repeat(20, 1fr); /* 20 columns */
grid-auto-rows: 50px; /* row height for illustration */
}

.wrapper div {
border: 1px solid;
grid-column: span 2; /* span two columns */
/* flexbox to center content*/
display: flex;
justify-content: center;
align-items: center;
}

.wrapper .a {
grid-column: span 10; /* span ten columns */
}

.wrapper .a1 {
grid-column: span 20; /* span all 20 columns */
}

.wrapper .a2 {
grid-row: span 5; /* span five rows */
}

.wrapper .a9,.wrapper .a10{
grid-column: span 5; /* span five columns */
}
<div class="wrapper">
<div class="h">H1</div>
<div class="h">H2</div>
<div class="h">H3</div>
<div class="h">H4</div>
<div class="h">H5</div>
<div class="h">H6</div>
<div class="h">H7</div>
<div class="h">H8</div>
<div class="h">H9</div>
<div class="h">H10</div>

<div class="a a1">A1</div>
<div class="a a2">A2</div>
<div class="a a3">A3</div>
<div class="a a4">A4</div>
<div class="a a5">A5</div>
<div class="a a6">A6</div>
<div class="a a7">A7</div>
<div class="a a8">A8</div>
<div class="a a9">A9</div>
<div class="a a10">A10</div>

<div class="b">B1</div>
<div class="b">B2</div>
<div class="b">B3</div>
<div class="b">B4</div>
<div class="b">B5</div>
<div class="b">B6</div>
<div class="b">B7</div>
<div class="b">B8</div>
<div class="b">B9</div>
<div class="b">B10</div>

</div>

关于html - 将 css 网格布局中的表行独立于其他行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56387122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com