MudBlazor — верстка страницы

В настоящее время я пытаюсь создать веб-приложение 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>

Итак, вот что отображается:

Теперь есть две основные проблемы, которые меня беспокоят.

  1. Как вы можете видеть, существует вертикальная полоса прокрутки, потому что желтая область вытекает... Я бы хотел, чтобы желтая область имела фиксированную высоту, а синяя/голубая и красная области занимали оставшееся вертикальное пространство. Что-то вроде height: auto или что-то в этом роде. Я думал, что 90vh означает 90% высоты родительского контейнера, но, видимо, здесь что-то пошло не так.
  2. Существует также горизонтальная полоса прокрутки, которую я не могу объяснить, поскольку я просто работаю с MudGrid, на которую я даже не могу повлиять, и 12 обозначает take whole available space

Хорошо, я мог бы, по крайней мере, найти решение проблемы № 2: MudGrid по умолчанию имеет интервал 3, поэтому установка <MudGrid Spacing = "0"> решает проблему горизонтального перекрытия.

CrazyEight 04.06.2024 10:37

Я полагаю, что vh означает область просмотра, поэтому 90vh будет занимать 90% области просмотра.

Josh 04.06.2024 10:45

vh означает высоту области просмотра, да... но, как вы видите, область просмотра - это не просто цветная область

CrazyEight 04.06.2024 10:59
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
3
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам необходимо учитывать пространство, которое использует 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>

Полный пример здесь

Спасибо, это работает для меня. Но почему высота панели приложения находится в пределах высоты области просмотра? Рабочее пространство — это пространство внизу!

CrazyEight 04.06.2024 13:33

Другие вопросы по теме