Разделить строки таблицы HTML без заголовков на 50 % влево и 50 % вправо

У меня есть 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 можно встраивать виджеты социальных сетей и плагины для обмена контентом.


3
63
3

Ответы:

Хитрость заключается в том, чтобы убедиться, что 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>