У меня есть 20 таких строк в стандартной html-таблице (table>tbody>tr>td) без заголовка. текущая ситуация
<table>
<tbody>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
<tr>
<td>6</td>
</tr>
<tr>
<td>7</td>
</tr>
<tr>
<td>8</td>
</tr>
<tr>
<td>9</td>
</tr>
<tr>
<td>10</td>
</tr>
<tr>
<td>11</td>
</tr>
<tr>
<td>12</td>
</tr>
<tr>
<td>13</td>
</tr>
<tr>
<td>14</td>
</tr>
<tr>
<td>15</td>
</tr>
<tr>
<td>16</td>
</tr>
<tr>
<td>17</td>
</tr>
<tr>
<td>18</td>
</tr>
<tr>
<td>19</td>
</tr>
<tr>
<td>20</td>
</tr>
</tbody>
</table>
Я хотел бы отобразить это так: желаемый результат
Когда я использую flexbox, он сортирует 1,2, следующую строку 3,4 и т. д.
Я нашел множество результатов о том, как делать другие вещи, но не это. Я помню, что это можно было сделать без JavaScript и без изменения HTML - и это была чистая CSS-фишка длиной в пару строк, но я больше не могу найти этот документ. Также искал в stackoverflow, но нигде не нашел. Если кто-нибудь может направить меня в правильное русло - спасибо!
🤔 А знаете ли вы, что...
С помощью HTML можно встраивать виджеты социальных сетей и плагины для обмена контентом.
Хитрость заключается в том, чтобы убедиться, что width
равен 50%
и вам нужно тяготеть влево, например
tr {
float: left;
width: 50%;
}
tr {
float: left;
width: 50%;
}
<table>
<tbody>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
<tr>
<td>6</td>
</tr>
<tr>
<td>7</td>
</tr>
<tr>
<td>8</td>
</tr>
<tr>
<td>9</td>
</tr>
<tr>
<td>10</td>
</tr>
<tr>
<td>11</td>
</tr>
<tr>
<td>12</td>
</tr>
<tr>
<td>13</td>
</tr>
<tr>
<td>14</td>
</tr>
<tr>
<td>15</td>
</tr>
<tr>
<td>16</td>
</tr>
<tr>
<td>17</td>
</tr>
<tr>
<td>18</td>
</tr>
<tr>
<td>19</td>
</tr>
<tr>
<td>20</td>
</tr>
</tbody>
</table>
Вот что-то близкое к этому, используя столбцы CSS и параметры display
, отличные от исходных (табличных):
table {
display: block;
}
tbody {
display: block;
width: 120px;
column-count: 2;
column-gap: 0;
}
tr {
display: block;
width: 60px;
text-align: center;
border: 1px solid #ccc;
}
td {
display: inline;
}
<table>
<tbody>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
<tr>
<td>6</td>
</tr>
<tr>
<td>7</td>
</tr>
<tr>
<td>8</td>
</tr>
<tr>
<td>9</td>
</tr>
<tr>
<td>10</td>
</tr>
<tr>
<td>11</td>
</tr>
<tr>
<td>12</td>
</tr>
<tr>
<td>13</td>
</tr>
<tr>
<td>14</td>
</tr>
<tr>
<td>15</td>
</tr>
<tr>
<td>16</td>
</tr>
<tr>
<td>17</td>
</tr>
<tr>
<td>18</td>
</tr>
<tr>
<td>19</td>
</tr>
<tr>
<td>20</td>
</tr>
</tbody>
</table>
CSS-сетка также может выполнить эту работу
table,
tbody {
display: grid;
grid-auto-flow: dense;
justify-content: start;
}
table tr {
grid-column: 1;
}
table tr:nth-child(n + 11) {
grid-column: 2;
}
/* styling */
tr {
display: grid;
place-content: center;
padding: 2px 5px;
background: #f2f2f2;
border:1px solid;
}
<table>
<tbody>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
<tr>
<td>6</td>
</tr>
<tr>
<td>7</td>
</tr>
<tr>
<td>8</td>
</tr>
<tr>
<td>9</td>
</tr>
<tr>
<td>10</td>
</tr>
<tr>
<td>11</td>
</tr>
<tr>
<td>12</td>
</tr>
<tr>
<td>13</td>
</tr>
<tr>
<td>14</td>
</tr>
<tr>
<td>15</td>
</tr>
<tr>
<td>16</td>
</tr>
<tr>
<td>17</td>
</tr>
<tr>
<td>18</td>
</tr>
<tr>
<td>19</td>
</tr>
<tr>
<td>20</td>
</tr>
</tbody>
</table>