Twitter Bootstrap 和移动导航栏

Posted

技术标签:

【中文标题】Twitter Bootstrap 和移动导航栏【英文标题】:Twitter Bootstrap and mobile navbar 【发布时间】:2012-05-03 11:46:25 【问题描述】:

我正在尝试在 Wordpress 上为我的博客制作响应式布局,但我无法解决移动设备上导航栏的问题。

<header class="span8" id="top-header">
<nav class="navbar navbar-fixed-top">
    <div class="navbar-inner">
        <div class="container-fluid">
            <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </a>
            <?php 
            wp_nav_menu(array(
                'menu' => 'Top menu',
                'menu_class' => 'nav'
            ));
            ?>
            <ul class="nav">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Categories <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                    <?php 
                    $args = array(
                        'exclude'   =>'1',
                        'orderby'   =>'name',
                        'order'     => 'ASC'
                    );
                    foreach(get_categories($args) as $category): ?>
                        <li><a href="<?php echo get_category_link($category->term_id); ?>" title="Category: <?php echo $category->name; ?>"><?php echo $category->name; ?></a></li>
                    <?php endforeach; ?>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</nav>
<a href="<?php bloginfo('url'); ?>" title="<?php bloginfo('title'); ?> - Back to the homepage">
    <hgroup class="row-fluid">
        <?php if(is_single()):?>
            <h2 class="like-h1">My blog</h2>
        <?php else: ?>
            <h1>My blog</h1>
        <?php endif; ?>
        <h2>Bla bla bla</h2>
    </hgroup>
</a>
</header>

在移动设备上,下拉菜单与 Twitter Bootstrap 的示例不同,但它显示了导航栏中的每个链接。它不切换。你可以在这里看到它:my blog example

【问题讨论】:

【参考方案1】:

您需要将菜单包装在 &lt;div class="nav-collapse"&gt;..&lt;/div&gt; div 中,以便在屏幕调整大小/移动视图时折叠菜单。试试这个:

HTML

<header class="span8" id="top-header">
<nav class="navbar navbar-fixed-top">
    <div class="navbar-inner">
        <div class="container-fluid">
            <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </a>
            <div class="nav-collapse">
                <?php 
                wp_nav_menu(array(
                    'menu' => 'Top menu',
                    'menu_class' => 'nav'
                ));
                ?>
                <ul class="nav">
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Categories <b class="caret"></b></a>
                        <ul class="dropdown-menu">
                        <?php 
                        $args = array(
                            'exclude'   =>'1',
                            'orderby'   =>'name',
                            'order'     => 'ASC'
                        );
                        foreach(get_categories($args) as $category): ?>
                            <li><a href="<?php echo get_category_link($category->term_id); ?>" title="Category: <?php echo $category->name; ?>"><?php echo $category->name; ?></a></li>
                        <?php endforeach; ?>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</nav>
<a href="<?php bloginfo('url'); ?>" title="<?php bloginfo('title'); ?> - Back to the homepage">
    <hgroup class="row-fluid">
        <?php if(is_single()):?>
            <h2 class="like-h1">My blog</h2>
        <?php else: ?>
            <h1>My blog</h1>
        <?php endif; ?>
        <h2>Bla bla bla</h2>
    </hgroup>
</a>
</header>

另外,我建议您将您的固定导航从您的页面header 中分离出来,并将其隔离在body 标签之后,这样当您调整屏幕大小时,围绕您的header 的媒体查询或样式将不会影响顶部导航栏,不应固定在移动视图上。

【讨论】:

太棒了!这就是我的问题的答案。谢谢!

以上是关于Twitter Bootstrap 和移动导航栏的主要内容,如果未能解决你的问题,请参考以下文章

Twitter Bootstrap:导航栏未在方向更改时调整大小(仅适用于 Android 的股票浏览器)

关闭 Twitter Bootstrap 导航栏转换动画

Twitter Bootstrap 中的导航栏颜色

导航栏顶部的 Twitter-Bootstrap-2 徽标图像

Twitter Bootstrap - Internet Explorer 中的导航栏问题

在 Twitter Bootstrap 3 中为大屏幕居中固定顶部导航栏