Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Top menu in Blazor layout

I am trying to add a normal top menu to the Blazor template, it looks fine, but the dropdown is not display the list. Note: I don't want to remove the sidebar. An example:

I create a simple project, then add som CSS to MainLAyout.razor.css, in bottom, finally, I add the html in MainLayout.razor.

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; }

Component

@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

like image 429
Alexandra Danith Ansley Avatar asked Nov 20 '25 23:11

Alexandra Danith Ansley


1 Answers

You need change position: absolute; to 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;
}

Result:

enter image description here

like image 189
Rena Avatar answered Nov 22 '25 22:11

Rena



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!