html - <body> 在我将样式添加到 Bootstrap nav { position :fixed } 时下降

标签 html css asp.net-mvc

我正在使用 Bootstrap Scrollspy。我在页面左侧添加了一个 Bootstrap 导航(class = "nav nav-pills nav-stackedon")并且在右侧。第一个问题是当我向下滚动时导航变得不可见,所以我给它添加了样式:

.my-navbar {
position:fixed;
}

然后导航栏一切正常(它固定在顶部),但问题是主体现在位于导航栏下方而不是右侧。为什么会这样,如何纠正?

我的观点在这里:

@model Questionnaire.Domain.Models.StudentVM
@using System.Linq
@using System.Collections.Generic
@{
    ViewBag.Title = "Student";
}

@{
    List<String> subjectNames = new List<String>();
    for (int i = 0; i < Model.Subjects.Count; i++)
    {
        subjectNames.Add(Model.Subjects[i].Name);
    }
}
<body data-spy="scroll" data-target=".my-navbar">
    <div class="row panel">
        <div class="my-navbar col-xs-2">
            <ul class="nav nav-pills nav-stacked">
                <li role="presentation"><a href="#opsta">Opšta pitanja</a></li>
                @for (int i = 1; i < subjectNames.Count; i++)
                {
                    <li role="presentation"><a href="#" onclick="onClickHandle(@subjectNames[i])">@subjectNames[i]</a></li>
                }
            </ul>
        </div>
        <div class="col-xs-8">
            @using (Html.BeginForm())
            {
                <span id="opsta"></span>
                for (int i = 0; i < Model.Subjects.Count; i++)
                {
                    <div class="well well-outside">
                        @Html.HiddenFor(m => m.Subjects[i].ID)
                        <h3>@Html.DisplayFor(m => m.Subjects[i].Name)</h3>
                        @for (int j = 0; j < Model.Subjects[i].Questions.Count; j++)
                        {
                            <div class="well well-inside">
                                @Html.HiddenFor(m => m.Subjects[i].Questions[j].ID)
                                <h3>@Html.DisplayFor(m => m.Subjects[i].Questions[j].Text)</h3>
                                @foreach (var answer in Model.Subjects[i].Questions[j].PossibleAnswers)
                                {
                                    <div>
                                        @Html.RadioButtonFor(m => m.Subjects[i].Questions[j].SelectedAnswer, answer.ID, new { id = answer.ID })
                                        <label for="@answer.ID">@answer.Text</label>
                                    </div>
                                }
                                @Html.ValidationMessageFor(m => m.Subjects[i].Questions[j].SelectedAnswer)
                            </div>
                        }
                    </div>
                }
                <input type="submit" class="btn btn-success" value="Confirm" />
            }
        </div>
    </div>
</body>

最佳答案

设置position:fixed 将导航栏从页面的常规流程中移除,因此页面就像什么都没有一样。您可以设置页面其余部分的样式,使其看起来就好像它在那里一样(边距、填充、其他),或者在其位置放置一个尺寸相似但没有内容的空容器。

关于html - <body> 在我将样式添加到 Bootstrap nav { position :fixed } 时下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28120425/

相关文章:

jquery - 相对于固定 HTML 正文高度的响应式 div 高度

javascript - 在下拉菜单顶部显示所选子页面的标题(wordpress)

css - 流体布局中的固定边距

asp.net - 无法检索元数据

html - 如何设置位置绝对高度为 100% 和垂直中间的 div?

javascript - 如何使用 Javascript 监控网页的变化?

html - CSS - 定位难题

javascript - 无法更改文本框颜色?

asp.net-mvc - 如何根据 Asp.Net MVC 中的 View 设置 <body> 类?

jquery - 使用 Jquery 提交时,返回 False 对我来说永远不起作用?我究竟做错了什么?