页脚出现在 div 的顶部 | ASP.NET

Posted

技术标签:

【中文标题】页脚出现在 div 的顶部 | ASP.NET【英文标题】:Footer appears on top of div | ASP .NET 【发布时间】:2021-11-01 04:59:00 【问题描述】:

主页的页脚出现在页面顶部自动生成的菜单栏下方,并干扰了我主页中的 div。它不会发生在其他页面中,这提示我主页中有问题,但我看不到那是什么。此外,当我缩小内容时,内容似乎偏向右侧,我不知道为什么。

我为页脚提供了足够的底部边距,我可以看到弹性容器 div 并没有一直到达底部。

索引.cshtml

<head>
    <style>
        body 
            display: flex;
            flex-direction: column;
            align-items: center;
        

        #myMap 
            width: 30vw;
            height: 30vh;
        

        .flex-container 
            margin: auto;
            position: fixed;
            display: flex;
            padding-top: 10px;
            width: 80vw;
            margin-bottom: -115px;
            
        

        .flex-child 
            flex: 1;
            border: 2px solid yellow;
            width: 49%;
            max-width: 49%;
        

            .flex-child:first-child 
                margin-right: 20px;
                width: 49%;
                width: auto;
                height: auto;
                max-width: 49%;
            
    </style>

    <!--<script src="~/lib/jquery/dist/jquery.min.js"></script>-->
    <script type="text/javascript" src="https://www.bing.com/api/maps/mapcontrol?callback=LoadMap" async defer></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js" defer></script>

</head>

<div class="flex-container">

    <div class="flex-child left">
        <h2>Bing Maps integration in ASP.NET</h2>
        <h4>Select sector:</h4>

        <select id="mapMenu" multiple="multiple" style="width:300px">
            <option value="0">Building</option>
            <option value="1">Machine</option>
            <option value="2">Grid</option>
            <option value="3">IT</option>
            <option value="4">Power</option>
            <option value="5">Platform</option>
        </select>

        <div id="myMap"></div>
    </div>

    <div class="flex-child right">
        <div id="infoPane"></div>
    </div>

</div>

_Layout.cshtml:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - ®</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                @Html.ActionLink("My Tool", "Index", "Home", new  area = "" , new  @class = "navbar-brand" )
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li>@Html.ActionLink("Home", "Index", "Home")</li>
                    <li>@Html.ActionLink("About", "About", "Home")</li>
                    <li>@Html.ActionLink("Data Entry", "DataEntry", "Home")</li>
                    <li>@Html.ActionLink("View Entries", "ViewEntries", "Home")</li>
                    <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                </ul>
            </div>
        </div>
    </div>
    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer style="position:relative; height: 50px; width: 100%;">
            <p>&copy; @DateTime.Now.Year - Schneider Electric®</p>
        </footer>
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>

我添加了页脚样式标签,但它们没有帮助。有什么想法吗?

【问题讨论】:

您可以使用内置的代码编辑器重现您的问题吗?您提供了 1 个包含内联 css 的 html sn-p 和一个不包含任何样式的不相关的 html sn-p。您的问题不清楚,因为无法观察到问题。 这不是无关的。这是 .NET - Layout.cshtml 在网站的每个页面上呈现。那里的@RenderBody() 函数是指独立渲染每个页面的正文。页脚在布局中,因为它存在于每一页上。 :) 我也不确定是否可以将内置代码编辑器与 .NET 一起使用。 【参考方案1】:

显然,我的预感得到了证实,布局和索引的样式受到干扰。 我找到的解决方案是用 RenderSection("Footer", false) 的部分替换 Layout 中的页脚,然后通过执行以下操作分别在每个页面中生成该部分:

Index.cshtml 底部:

...
@section Footer

    <footer>...</footer>

更多信息和使用RenderSection()的示例: Here

【讨论】:

以上是关于页脚出现在 div 的顶部 | ASP.NET的主要内容,如果未能解决你的问题,请参考以下文章

粘性页脚浮动到一页顶部

如何在 bootstrap 4 卡的页脚顶部覆盖图标?

页脚在 div 上方折叠,在 body 元素中包含透明背景图像

当另一个 div 悬停时更改一个 div 的文本颜色

3 列布局,中间列有页眉和页脚

相对于同级 div 偏移的堆叠 div