在Blazor中是否有一种方法可以隐藏一个div?

3

我正在使用Blazor,我想在点击导航栏切换图标时隐藏侧边栏。列表项会折叠,但问题是div仍然存在。

    <div class="page">
    <div class="sidebar">
        <div class="nav-top-row pl-4 navbar navbar-dark">
            <button class="navbar-toggler" @onclick="CheckCollapse">
                <span class="navbar-toggler-icon"></span>
            </button>
            <a class="navbar-brand" href="">NavBar</a>
        </div>

        <div class="@NavMenuCssClass">
            <ul class="nav flex-column">
                <li class="nav-item px-0">
                    <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
                        <span class="oi oi-home" aria-hidden="true"></span> Home
                    </NavLink>
                </li>
                <li class="nav-item px-0">
                    <NavLink class="nav-link" href="counter">
                        <span class="oi oi-plus" aria-hidden="true"></span> Counter
                    </NavLink>
                </li>
                <li class="nav-item px-0">
                    <NavLink class="nav-link" href="fetchdata">
                        <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
                    </NavLink>
                </li>
            </ul>
        </div>
    </div>

    <div class="main">
        <div class="top-row px-4">
            <a href="https://learn.microsoft.com/aspnet/" target="_blank">About</a>
        </div>

        <div class="content px-4">
            @Body
        </div>
    </div>
</div>

@code {
    private bool collapseNavMenu = false;

    public string NavMenuCssClass => collapseNavMenu ? "collapse" : null;

    private void CheckCollapse()
    {
        collapseNavMenu = !collapseNavMenu;
    }
}

你是否真的定义了一个名为collapse的CSS类? - Kirk Woll
CSS仍然有很多用途,但选择性地显示组件或元素正是Blazor的核心所在。除非你需要预加载幻灯片中的大量图片并将它们全部保存在内存中,否则我不会使用CSS来实现这一点。 - Bennyboy1973
1个回答

5

比你想象的更容易。

@if(!collapseNavMenu)
{
    <div class="sidebar">
      ... as before
    </div>
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接