wp_enqueue_media is not loading styles

There are some wp-admin styles you need to load.

Since I cannot find any way to let wp_enqueue_style() accept url parameters, so I load styles by wp_head hook function here.

add_action( 'wp_head', 'load_admin_media_styles', 10);
function load_admin_media_styles(){
    // list all style libs the post page of wp-admin loaded, but we may only need to load 2 of them
    $ary_libs = array(
        'common','forms',
        // 'dashicons', 'admin-bar','buttons','media-views',
        // 'admin-menu','dashboard','list-tables','edit','revisions','media','themes','about','nav-menu',
        // 's','wp-pointer','widgets','site-icon','l10n','wp-auth-check','wp-color-picker'
    );
    $admin_media_styles_url = add_query_arg(
        array(
            'c' => 0,
            'dir' => 'ltr',
            'load[]' => implode(',', $ary_libs),
            'ver' => 'you_wp_version'
        ),
        admin_url().'load-styles.php'
    );
    echo "<link rel="stylesheet" id='admin_styles_for_media-css' href="".$admin_media_styles_url."" type="text/css" media="all" />";
}

I tried in my localhost and it works, hope this helps you.