title: Split div into multiple columns without breaking child elements
body: <p>I want to use CSS Columns for a website sitemap. The issue I'm having is that the sections that are encapsulated in <code>div</code>s are being split across columns.</p>
  <p><a href="https://i.stack.imgur.com/3hhPq.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/3hhPq.png" alt="Image depicting issue" /></a></p>
  <p>What I actually want is shown below, where every child element is forced to be in a separate column. I could use CSS Grid for this but I need to support older IE version too that <a href="https://caniuse.com/#feat=css-grid" rel="nofollow noreferrer">don't have CSS Grid</a>.</p>
  <pre><code>    GENERAL    |    SUBJECTS    |       FOO      |       BAR      |
  - Log in       | - Log in       | - Log in       | - Log in       |
  - Register     | - Register     | - Register     | - Register     |
  - Contact      | - Contact      | - Contact      | - Contact      |
  - ...          | - ...          | - ...          | - ...          |
  </code></pre>
  <p>Each column above is contained within one parent <code>div</code> element (as shown below in the HTML code).</p>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>#sitemap {
      min-width: 100%;
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid;
      -webkit-columns: 5 175px;
      -moz-columns: 5 175px;
      columns: 5 175px;
  }
  
  #sitemap a[href] {
      text-decoration: none;
      align-content: baseline;
      border-bottom: 1px solid transparent;
      transition: border-bottom-color 250ms 0ms cubic-bezier(0.4, 0, 0.2, 1);
      display: inline-block;
  }
  
  #sitemap a[href]:hover {
      border-bottom-color: #000;
  }
  
  #sitemap a[href] * {
      line-height: 1.1rem;
      vertical-align: middle;
  }
  
  #sitemap ul {
      list-style: none;
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;div id="sitemap"&gt;
    &lt;div class="section"&gt;
      &lt;h6 class="mdc-typography--headline6"&gt;General&lt;/h6&gt;
      &lt;ul&gt;
        &lt;li&gt;
          &lt;a href="/login.php" class="mdc-typography--body1"&gt;
          Log in
          &lt;/a&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;a href="/getstarted.php" class="mdc-typography--body1"&gt;
          Register
          &lt;/a&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;a href="/getstarted.php" class="mdc-typography--body1"&gt; Contact
          &lt;/a&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;a href="/getstarted.php" class="mdc-typography--body1"&gt; Blog
          &lt;/a&gt;
        &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;
    &lt;div class="section"&gt;
      &lt;h6 class="mdc-typography--headline6"&gt;Subjects&lt;/h6&gt;
      &lt;ul&gt;
        &lt;li&gt;
          &lt;a href="/login.php" class="mdc-typography--body1"&gt;
          Log in
          &lt;/a&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;a href="/getstarted.php" class="mdc-typography--body1"&gt;
          Register
          &lt;/a&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;a href="/getstarted.php" class="mdc-typography--body1"&gt;
          Contact
          &lt;/a&gt;
        &lt;/li&gt;
        &lt;li&gt;
          &lt;a href="/getstarted.php" class="mdc-typography--body1"&gt;
          Blog
          &lt;/a&gt;
        &lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;
  &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>
  <p>Is the only option to use flexbox or grid layout? Is there any way I could use multi column layout to achieve this to keep backwards compatibility with older browsers?</p>