show WordPress categories with different Structure

Here’s a link to a gist of mine, you could simply replace the ul li with divs as you need.

Calling the function getCatTree will result in an output of all categories with the according sub children inside an ul/li construct. Now you just need to tailor your css/js to match the look and feel and the functionality you looking for.

Replace product_cat with the taxonomy you need

//GET CATEGORIES FOR NAVIGATION
add_action('tauchbar_get_cats', 'getCatTree', 15);
function getCatTree(){
  $taxonomy     = 'product_cat';
  $orderby      = 'name';  
  $show_count   = 0;      // 1 for yes, 0 for no
  $pad_counts   = 0;      // 1 for yes, 0 for no
  $hierarchical = 1;      // 1 for yes, 0 for no  
  $title="";  
  $empty        = 0;

  $args = array(
         'taxonomy'     => $taxonomy,
         'orderby'      => $orderby,
         'show_count'   => $show_count,
         'pad_counts'   => $pad_counts,
         'hierarchical' => $hierarchical,
         'title_li'     => $title,
         'hide_empty'   => $empty,
         'exclude' => array( 104 )
  );

  echo '<ul class="nav_categories">';
  $all_categories = get_categories( $args );
  foreach ($all_categories as $cat) {
    if($cat->category_parent == 0) {
        $category_id = $cat->term_id;       

        echo '<li data-catname="'.$cat->name.'" class="cat_button"><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>';

        $args2 = array(
                'taxonomy'     => $taxonomy,
                'child_of'     => 0,
                'parent'       => $category_id,
                'orderby'      => $orderby,
                'show_count'   => $show_count,
                'pad_counts'   => $pad_counts,
                'hierarchical' => $hierarchical,
                'title_li'     => $title,
                'hide_empty'   => $empty
        );

        $sub_cats = get_categories( $args2 );

        if($sub_cats) {
          echo '<ul class="sub_cat">';
            foreach($sub_cats as $sub_category) {

                echo '<a href="' . get_term_link($sub_category->slug, 'product_cat') .'">';
                /*$thumbnail_id = get_woocommerce_term_meta( $sub_category->term_id, 'thumbnail_id', true );
                $image = wp_get_attachment_url( $thumbnail_id );
                echo '';*/
                echo "<p>" . $sub_category->name . "</p></a>";
            }   
            echo '</ul></li>';
        } else {
          echo '</li>';
        }
    }       
  }
  echo '</ul>';
}

https://gist.github.com/funkysoul/c27bb013adb9cb847cfff4f5ee8c3847