asp.net-core - Blazor 布局中的顶部菜单

标签 asp.net-core blazor blazor-client-side blazor-webassembly

我正在尝试向 Blazor 模板添加一个普通的顶部菜单,它看起来不错,但下拉列表没有显示列表。注意:我不想删除侧边栏。一个例子:
我创建了一个简单的项目,然后在 MainLAyout.razor.css 中添加了一些 CSS,在底部,最后,我在 MainLayout.razor 中添加了 html。

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #333;
}
li { float: left; }
    li a, .dropbtn {
        display: inline-block;
        color: white;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
    }
        li a:hover, .dropdown:hover .dropbtn {
            background-color: red;
        }
    li.dropdown {
        display: inline-block;
    }
.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}
    .dropdown-content a {
        color: black;
        padding: 12px 16px;
        text-decoration: none;
        display: block;
        text-align: left;
    }
        .dropdown-content a:hover {
            background-color: #f1f1f1;
        }
.dropdown:hover .dropdown-content { display: block; }
成分
@inherits LayoutComponentBase

<div class="page">
    <div class="sidebar">
        <NavMenu />
    </div>
    <div class="main">
        <!-- test items... -->
        <ul>
            <li><a href="#home">Home</a></li>
            <li><a href="#news">News</a></li>
            <li class="dropdown">
                <a href="javascript:void(0)" class="dropbtn">Dropdown</a>
                <div class="dropdown-content">
                    <a href="#">Link 1</a>
                    <a href="#">Link 2</a>
                    <a href="#">Link 3</a>
                </div>
            </li>
        </ul>
        <div class="content px-4">
            @Body
        </div>
    </div>
</div>
enter image description here

最佳答案

您需要更改 position: absolute;position: fixed; :

.dropdown-content {
    display: none;
    position: fixed; /* change here...*/
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}
结果:
enter image description here

关于asp.net-core - Blazor 布局中的顶部菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65671612/

相关文章:

c# - 在 ASP.NET Blazor 中获取和发布

Blazor JsInterop : Div not available when JS invoked

c# - 在客户端 Blazor 应用程序的页面中使用 [Authorize] 属性时出现授权问题

websocket - Blazor 服务器 : How to reliably handle the delay of user actions?

c# - ASP.NET Core 5 JWT 身份验证失败,响应代码为 401

asp.net-core - 带有继承的 ASPNET Core 3.0 模型验证错误

c# - 在下拉菜单中添加 Img?

azure - 如何在运行时在 Blazor WebAssembly 客户端应用程序中使用 Azure 应用程序设置作为 appsettings.json 配置?

c# - react +ASP.NET.Core : No 'Access-Control-Allow-Origin' header is present on the requested resource

azure - 错误 System.BadImageFormatException 服务结构