В настоящее время я пытаюсь создать веб-приложение MudBlazor. Поскольку я новичок в MudBlazor, я пытаюсь понять, как работают интервалы и макет страницы.
Итак, я взял очень простой макет из MudBlazor Wireframes с выдвижным ящиком слева и верхней панелью приложений.
Итак, мой MainLayout.razor выглядит так:
<MudLayout>
<MudAppBar Elevation = "1">
<MudIconButton Icon = "@Icons.Material.Filled.Menu" Color = "Color.Inherit" Edge = "Edge.Start" OnClick = "@((e) => DrawerToggle())" />
<MudSpacer />
<MudIconButton Icon = "@Icons.Material.Filled.MoreVert" Color = "Color.Inherit" Edge = "Edge.End" />
</MudAppBar>
<MudDrawer @bind-Open = "_drawerOpen" Elevation = "2">
<MudDrawerHeader>
<MudText Typo = "Typo.h5" Class = "mt-1">@Configuration["ApplicationSettings:AppName"]</MudText>
</MudDrawerHeader>
<NavMenu/>
</MudDrawer>
<MudMainContent>
@Body
</MudMainContent>
</MudLayout>
И мой макет страницы:
<MudGrid Justify = "Justify.Center">
<MudItem xs = "2" Style = "background-color: aqua; height: 90vh;"></MudItem>
<MudItem xs = "8" Style = "background-color: red; height: 90vh;"></MudItem>
<MudItem xs = "2" Style = "background-color: aqua; height: 90vh;"></MudItem>
<MudItem xs = "12" Style = "background-color: yellow; height: 10vh;"></MudItem>
</MudGrid>
Итак, вот что отображается:
Теперь есть две основные проблемы, которые меня беспокоят.
height: auto или что-то в этом роде. Я думал, что 90vh означает 90% высоты родительского контейнера, но, видимо, здесь что-то пошло не так.MudGrid, на которую я даже не могу повлиять, и 12 обозначает take whole available spaceЯ полагаю, что vh означает область просмотра, поэтому 90vh будет занимать 90% области просмотра.
vh означает высоту области просмотра, да... но, как вы видите, область просмотра - это не просто цветная область






Вам необходимо учитывать пространство, которое использует AppBar.
<MudGrid Justify = "Justify.Center">
<MudItem xs = "2" Style = "background-color: aqua; height: calc(90vh - var(--mud-appbar-height));"></MudItem>
<MudItem xs = "8" Style = "background-color: red; height: calc(90vh - var(--mud-appbar-height));"></MudItem>
<MudItem xs = "2" Style = "background-color: aqua; height: calc(90vh - var(--mud-appbar-height));"></MudItem>
<MudItem xs = "12" Style = "background-color: yellow; height: 10vh;"></MudItem>
</MudGrid>
Полный пример здесь
Спасибо, это работает для меня. Но почему высота панели приложения находится в пределах высоты области просмотра? Рабочее пространство — это пространство внизу!
Хорошо, я мог бы, по крайней мере, найти решение проблемы № 2:
MudGridпо умолчанию имеет интервал 3, поэтому установка<MudGrid Spacing = "0">решает проблему горизонтального перекрытия.