【问题标题】:Fixed Bootstrap navbar to top of dynamic width DIV - not full width of page将 Bootstrap 导航栏固定到动态宽度 DIV 的顶部 - 不是页面的全宽
【发布时间】:2013-09-18 09:40:48
【问题描述】:

我的问题

我正在使用 Bootstrap 3.0 并且需要使用固定导航栏,它将停留在左侧 DIV 的顶部,并且不会一直延伸到窗口宽度的 100%(就像我通常看到的 Bootstrap 的示例做)。我在下面有一些非常简单的代码,使用 ASP.NET MVC 4 来解释 RenderSection 区域。

我附上了一张图片,展示了我正在尝试做的事情。目前,导航栏仅扩展了左侧容器的 75% 左右,而不是像我想要的那样扩展了左侧容器的 100%。

就像我上面说的,我想要修复导航栏,这样当你滚动它时,它会停留在左侧 DIV 中的一个位置。

任何提示/提示将不胜感激!谢谢!

我也看到了这个问题 (Navbar fixed to top but not full-width),但我不想在媒体查询中动态维护这个具有固定像素宽度的导航栏。我希望它填写包含它的整个左侧 DIV。

(http://i.imgur.com/YLzmkHp.jpg)

我的代码

<div class="container">
    <div class="row">
        <!--LEFT SIDE-->
        <div class="col-md-9">
            <div data-spy="affix" data-offset-top="0">
            <nav class="navbar navbar-default" role="navigation">
                <div class="collapse navbar-collapse navbar-ex1-collapse">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="#">Link</a></li>
                        <li><a href="#">Link</a></li>
                        <li class="dropdown">
                            <a data-toggle="dropdown" class="dropdown-toggle" href="#">Dropdown <b class="caret"></b></a>
                            <ul role="menu" class="dropdown-menu">
                                <li><a href="#">Action</a></li>
                                <li><a href="#">Another action</a></li>
                                <li><a href="#">Something else here</a></li>
                                <li><a href="#">Separated link</a></li>
                                <li><a href="#">One more separated link</a></li>
                            </ul>
                        </li>
                    </ul>
                    <form role="search" class="navbar-form navbar-left">
                        <div class="form-group">
                            <input type="text" placeholder="Search" class="form-control">
                        </div>
                        <button class="btn btn-default" type="submit">Submit</button>
                    </form>
                </div>
            </nav>    
            </div> <!--end data-spy=affix-->

            <!--the LeftSide below just contains basic placeholder text in a <p> tag-->
            @RenderSection("LeftSide", true)

        </div>
        <!--RIGHT SIDE-->
        <div class="col-md-3">

            <!--the RightSide below just contains basic placeholder text in a <p> tag-->
            @RenderSection("RightSide", true)

        </div>
    </div>
</div>

部分解决(更新)

我能够通过使用这个 jQuery 解决我上面列出的主要问题

 $(window).resize(function () {
     var w = $("#leftSide").width();
     $("#navWrapper").css("width", w);
 });

但这在 iFrame 中起作用。

如果有人对解决此问题以在 iFrame 中使用有任何见解,我们将不胜感激。

【问题讨论】:

  • 很明显你在这个问题上付出了很多努力。 jsfiddle.net 显示您的相关代码和问题也将非常有帮助。
  • .navbar {width:100%;} 没有为您解决问题?这应该将其宽度扩展到其父级的宽度。
  • @ChrisHardie 不幸的是它没有。我仔细检查了所有 DIV,以确保当我将 100% 放在 .navbar div 上时,没有任何“像素”宽度会弄乱它。我还尝试在该元素上执行 width: inherit 以希望继承列的宽度(或任何拉伸我想要的宽度的父 DIV)但没有运气。
  • @Itay 我会试着整理一个小提琴...... iFrame 问题可能有点奇怪,所以我不知道它是否会正确呈现问题。但我会努力的!

标签: css twitter-bootstrap navigation css-position fixed


【解决方案1】:

您是否尝试过将导航栏和主要内容区域放在一栏中,然后将右侧边栏单独放在一栏中?然后添加一些 CSS 来纠正导航栏位置并调整响应能力。

链接:http://www.bootply.com/ZJCGxiUD6g

【讨论】:

  • 是的...请参阅上面的示例,您将看到与此处显示的完全相同的代码。这个问题也是从 2013 年 9 月开始的,我不再有这个问题,因为我不再从事这个项目了。不过谢谢!
  • 我不知道你为什么对我的回答投了反对票。你甚至检查过我提供的链接吗?您是否在该项目上工作与我的解决方案确实有效并且不需要您使用的 jQuery 的事实无关,正如您在提供的链接中看到的那样。另请记住,这些答案不仅适合您。本网站的目的是提供此类信息,以便遇到像您这样的问题的任何其他人都能够以最适合他们的方式解决问题。
  • 您提供的示例不起作用。我在col-sm-7 中插入了几段文本,然后滚动,这使得两列都滚动并且标题(导航栏)没有粘住。 bootply.com/oYbTks5TSC
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多