Содержание
Bootstrap 5.2.2 содержит достаточно много различных компонентов, позволяющих разрабатывать по-настоящему красивые приложения. Часть компонентов Bootstrap можно использовать в Blazor сразу, после создания демонстрационного приложения, часть — только после подключения необходимых js-файлов, распространяемых bootstrap, но не входящих в состав демонстрационного приложения. В этой части мы рассмотрим только основные компоненты Bootstrap и их возможности.
Как узнать какая версия Bootstrap используется
В различных версиях Bootstrap могут наблюдаться некоторые различия связанные, в основном, с именованием классов одних и тех же компонентов или элементов. Поэтому, прежде, чем повторять какой-либо пример или руководствоваться инструкциями с других сайтов, следует убедиться, что ваша версия Bootstrap соответствует той, о которой идет речь в той или иной статье.
Чтобы узнать, какая версия Bootstrap у вас, достаточно открыть файл bootstrap.css или bootstrap.min.css и посмотреть на вторую строку комментария:
@charset "UTF-8";/*! * Bootstrap v5.1.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
Добавление Bootstrap в проект
Вы можете самостоятельно добавить Bootstrap в свой проект, например, если имеющаяся в вашем проекте версия вас чем-то не устраивает. Для этого необходимо
Скачать архив соответствующей версии bootstrap с официального сайта
В архиве содержатся все необходимые css- и js-файлы.
В проекте Blazor
- зайти в папку
wwwroot/css/bootstrapи добавить (или заменить) файлыbootstrap.min.cssиbootstrap.min.css.map - добавить в папку
wwwrootновую папкуjs/bootstrapи скопировать в нее файлыbootstrap.bundle.jsиbootstrap.bundle.js.map
В Visual Studio должна получиться следующая структура папок и файлов:
В Blazor Server все скрипты и css подключаются в файле _Layout.cshtml. Открываем этот файл и добавляем после строки <script src="_framework/blazor.server.js"></script> следующую строку:
<script src="/js/bootstrap/bootstrap.bundle.js"></script>
Теперь вы можете в полной мере использовать возможности bootstrap в своем приложении blazor, включая и те компоненты bootstrap, которые требуют специальных js-скриптов.
Уведомления (alerts)
Уведомления — это небольшие сообщения, которые могут показываться пользователю при совершении каких-либо действий. Пример уведомления, вы можете видеть в начале этой статьи. В bootstrap для создания уведомления используется класс alert:
<div class="alert alert-danger">Это уведомление</div>
Здесь alert — класс компонента, alert-danger — обязательный контекстный класс, позволяющий сделать заливку определенным цветом. В нашем случае, уведомление будет выглядеть следующим образом:
Всего в bootstrap предусмотрено восемь обязательных контекстных классов для уведомлений:
Значки (badge)
Значки позволяют, при необходимости, акцентировать внимание на каком-либо элементе интерфейса. Например, мы можем «повесить» значок на какой-либо текст или заголовок. В примере ниже показаны два значка, один из которых привязан к заголовку страницы, а второй — к обычному тексту:
<h1>Hello, world! <span class="badge bg-primary">Breaking news!</span> </h1> Welcome to your new app.<span class="badge bg-warning">значки масштабируются!</span>
В приложении это будет выглядеть следующим образом:
Даже по коду примера видно, что мы не применяли никаких дополнительных классов для масштабирования значка. Значки автоматически масштабируются, чтобы наиболее полно соответствовать элементу к которому они относятся. Как и для alert у badge можно указывать один из восьми цветов заливки, используя класс bg-*. Если необходимо изменить цвет текста (например, в желтом значке выше текст плохо читаемый), то можно добавить класс text-dark:
<span class="badge bg-warning text-dark">значки масштабируются!</span>
Кнопки (btn)
Bootstrap предоставляет нам широкие возможности по изменению визуального представления обычных кнопок <button>, используемых в формах и различных элементах интерфейса.
Цветные кнопки и кнопки-ссылки
<button type="button" class="btn btn-primary">Primary</button> <button type="button" class="btn btn-secondary">Secondary</button> <button type="button" class="btn btn-success">Success</button> <button type="button" class="btn btn-danger">Danger</button> <button type="button" class="btn btn-warning">Warning</button> <button type="button" class="btn btn-info">Info</button> <button type="button" class="btn btn-light">Light</button> <button type="button" class="btn btn-dark">Dark</button> <button type="button" class="btn btn-link">Link</button>
Контурные кнопки
Если нам необходимо, чтобы заливка кнопки осуществлялась в момент наведения на неё курсора мыши, то вместо контекстных классов btn-* необходимо использовать классы btn-outline-*
Для изменения цвета текста на чёрный также можно использовать text-dark
Размеры кнопок
Кнопки можно сделать большего или меньшего размера, чем стандартный. Для этого используются два дополнительных класса — btn-sm или btn-lg. Действие этих классов на размеры кнопок показаны ниже
<button type="button" class="btn btn-outline-primary btn-sm">Primary btn-sm</button> <button type="button" class="btn btn-outline-secondary btn">Secondary</button> <button type="button" class="btn btn-outline-success btn-lg">Success btn-lg</button>
Панель навигации — этот тот компонент, с которым мы сталкиваемся сразу же после запуска приложения Blazor. Рассмотрим этот компонент Bootstrap более детально. В Blazor Server этот компонент располагается внутри компонента Blazor NavMenu в файле NavMenu.razor:
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">BlazorBootstrap</a>
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</div>
Первый элемент div указывает, что перед нами панель навигации (класс navbar), цветовая схема — для тёмных цветов фона (navbar-dark). Класс top-row содержится в связанном css-файле NavMenu.razor.css:
.top-row {
height: 3.5rem;
background-color: rgba(0,0,0,0.4);
}
Для панели навигации делается внутренний отступ (класс ps-3). В данном случае, класс ps-3 означает следующее:
p— класс устанавливаетpaddings— (старт) отступ слева3— величина отступа, равная значению переменной SAAS$spacer(по умолчанию это значение равно1rem)
Более подробно про отступы и интервалы можно прочитать в документации Bootstrap.
Далее, во второй строке кода навигационной панели определяется контейнер:
<div class="container-fluid">
про контейнеры мы говорили здесь. В контейнере расположен специальный элемент — т.н. брэнд:
<a class="navbar-brand" href="">BlazorBootstrap</a>
В примере в качестве брэнда используется обычная ссылка, однако вы можете использовать и картинки и картинки со ссылками в качестве брэнда.
После брэнда расположена кнопка со специальными классами:
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
Класс navbar-toggler — означает, что кнопка будет использоваться для переключения содержимого. В нашем случае эта кнопка, при определенных размерах экрана, сворачивает или разворачивает меню с элементами «Counter», «FetchData» и т.д. Внутри тега button располагается элемент span, который определяет иконку на кнопке.
Далее, в компоненте NavMenu.razor расположена навигация:
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<nav class="flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> Home
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="oi oi-plus" aria-hidden="true"></span> Counter
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="fetchdata">
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
</NavLink>
</div>
</nav>
</div>
Первый элемент div определяет сворачиваемое содержимое (если посмотреть в C#-код компонента, то можно увидеть, что этому элементу присваивается класс collapse)
Второй элемент <nav class="flex-column"> говорит о том, что перед нами навигация и, при этом, элементы расположены в столбце (class="flex-column"). Внутри этого элемента расположены, собственно, сами элементы меню (элементы с классом nav-item). При этом, классы типа oi oi-plus у элементов span — это иконки из другого фреймворка — Open Iconic.
Выпадающие списки (dropdown)
Кнопки с выпадающими списками также довольно часто могут использоваться в приложениях. В Bootstrap имеется готовый компонент для таких кнопок:
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
Кнопка выпадающего списка
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
<li><a class="dropdown-item" href="#">Действие</a></li>
<li><a class="dropdown-item" href="#">Другое действие</a></li>
<li><a class="dropdown-item" href="#">Что-то еще здесь</a></li>
</ul>
</div>
Для того, чтобы создать такую кнопку мы должны внутри тега div с классом dropdown указать кнопку, которая будет отвечать за показ списка. Кнопка должна обязательно содержать контекстный класс dropdown-toggle (кнопка переключения списка) и атрибуты id и data-bs-toggle. Вместо кнопки может также выступать обычная ссылка с указанными классами.
Пагинация (pagination)
Пагинация позволяет сделать удобную навигацию по отдельным страницам одного набора данных, например при постраничном запросе.
<nav aria-label="Пример навигации по страницам">
<ul class="pagination">
<li class="page-item"><a class="page-link" href="#">Предыдущая</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">Следующая</a></li>
</ul>
</nav>
Итого
Компоненты Bootrstrap позволяют сделать ваше приложение более функциональным и красивым. В статье рассмотрены далеко не все имеющиеся компоненты и возможности фреймворка bootstrap в blazor — компонентов намного больше. Сейчас же нам главное понять, что, используя bootstrap мы можем комбинировать те или иные компоненты — включать в состав кнопок значки (badge), добавлять в панели навигации кнопки с выпадающими списками и т.д. В дальнейшем мы будем возвращаться к теме использования bootstrap в Blazor, но, уже, исходя из полученных знаний и с более практической целью — рассматривать конкретные вопросы и моменты использования того или иного компонента bootstrap в blazor.








