首页 > 解决方案 > 下拉菜单有问题。相同的代码PHP在两种情况下生成不同的CSS

问题描述

示例: https ://www.freuciv.com/test/

菜单栏上有一个明暗模式开关。当您将鼠标悬停在它上面时,会出现一个下拉菜单。这个按钮的 PHP 代码是:

<?php
$bimber_class = array(
    'g1-drop',
    'g1-drop-nojs',
    'g1-drop-before',
    'g1-drop-the-skin',
    'g1-drop-the-skin-' . bimber_get_theme_option( 'global', 'skin' ),
);
$bimber_class = array_merge(
    $bimber_class,
    explode( ' ', bimber_hb_get_element_class_from_settings( 'skin_dropdown', false ) )
);
$bimber_class = array_filter( $bimber_class );
?>
<div class="<?php echo implode( ' ', array_map( 'sanitize_html_class', $bimber_class ) ); ?> g1-dropable g1-column">
    <button class="g1-button-none g1-drop-toggle">
        <span class="g1-drop-toggle-icon"></span><span class="g1-drop-toggle-text"><?php esc_html_e( 'Switch skin', 'bimber' ); ?></span>
        <span class="g1-drop-toggle-arrow"></span>
    </button>
    <?php if ( bimber_get_theme_option( 'header_builder', 'element_content_skin_dropdown' ) ) : ?>
        <div class="g1-drop-content">
            <?php if ( 'dark' ===  bimber_get_theme_option( 'global', 'skin' ) ) : ?>
                <p class="g1-skinmode-desc"><?php esc_html_e( 'Switch to the light mode that\'s kinder on your eyes at day time.', 'bimber' ); ?></p>
                <p class="g1-skinmode-desc"><?php esc_html_e( 'Switch to the dark mode that\'s kinder on your eyes at night time.', 'bimber' ); ?></p>
            <?php else : ?>
                <p class="g1-skinmode-desc"><?php esc_html_e( 'Switch to the dark mode that\'s kinder on your eyes at night time.', 'bimber' ); ?></p>
                <p class="g1-skinmode-desc"><?php esc_html_e( 'Switch to the light mode that\'s kinder on your eyes at day time.', 'bimber' ); ?></p>
            <?php endif; ?>
        </div>
    <?php endif; ?>
</div>

<?php wp_enqueue_script( 'bimber-skin-mode' ); ?>

我复制了这段代码并将其放在页面中间。为什么下拉菜单只出现在顶部开关?我注意到第二种情况下的 div.g1-drop-content 具有完全不同的样式列表。这是什么原因?

标签: javascriptphphtmlcssbootstrap-4

解决方案


谢谢。解决了。wordpres.org 的一位同事提供了帮助。缺少“g1-dropable”类。


推荐阅读