Blazor 布局中的顶部菜单

Top menu in Blazor layout

我正在尝试向 Blazor 模板添加一个普通的顶部菜单,它看起来不错,但下拉列表不显示列表。注意:我不想删除侧边栏。一个例子:

我创建了一个简单的项目,然后将CSS添加到MainLAyout.razor.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;
}

结果: