Статья Автор: Деникина Н.В., Деникин А.В.

Подключаем bootstrap

ASP.NET Web Forms · ОформлениеЗанятие 2.8
SilverTests.ru · УчебникПодключаем Bootstrap
Подключаем Bootstrap

Одна строка в <head> — и страница выглядит профессионально


0Проблема: наши страницы выглядят скучно

Вот конвертер температур, который мы сделали. Он работает, но выглядит как страница из 1999 года: стандартный шрифт, серый фон, кнопки по умолчанию. Хочется, чтобы было красиво, но писать CSS вручную — долго.

Bootstrap — это готовая библиотека CSS-стилей от команды Twitter. Ты просто добавляешь CSS-классы к HTML-элементам, и они мгновенно становятся красивыми. Никакого CSS-кода писать не нужно.

1Подключение: одна строка

Добавь эту строку в <head> любой своей .aspx-страницы:

<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">

Всё. Bootstrap подключён. Это называется CDN (Content Delivery Network) — файл стилей лежит на быстром сервере в интернете, браузер скачает его автоматически.

Плюс CDN: ничего не нужно скачивать и класть в проект. Минус: нужен интернет. Для учебных проектов — идеально.

2Как работает Bootstrap

Bootstrap не меняет твой C#-код. Он работает только с HTML — ты добавляешь CSS-классы через атрибут class, и элементы автоматически стилизуются.

Без Bootstrap
<input type="text">

Обычное серое поле, стиль зависит от браузера.

С Bootstrap
<input type="text"
class="form-control">

Аккуратное поле с закруглёнными углами и подсветкой при фокусе.

Единственное, что ты делаешь — дописываешь class="...". В ASP.NET серверных элементах используется атрибут CssClass:

<!-- обычный HTML -->
<input type="text" class="form-control">
 
<!-- ASP.NET серверный элемент -->
<asp:TextBox ID="txtName" runat="server"
CssClass="form-control" />
CssClass — это свойство серверных элементов ASP.NET, которое превращается в обычный HTML-атрибут class. Работает у TextBox, Button, Label, DropDownList, CheckBox — у всех.

3Шпаргалка: 10 классов, которых хватит

В Bootstrap сотни классов, но для наших страниц достаточно десяти:

Класс Что делает Куда добавлять
container Центрирует контент, добавляет отступы по бокам Оборачивающий <div>
form-control Красивое поле ввода TextBox, DropDownList
btn Базовый стиль кнопки Button
btn-primary Синяя кнопка (главное действие) + к btn
btn-success Зелёная кнопка + к btn
btn-danger Красная кнопка + к btn
mb-3 Отступ снизу (margin-bottom) Любой элемент
mt-3 Отступ сверху (margin-top) Любой элемент
alert alert-success Зелёная плашка для сообщений <div> или Label
alert alert-danger Красная плашка для ошибок <div> или Label

mb-3 расшифровывается как margin-bottom: 3. Число от 0 до 5 — чем больше, тем больше отступ. Есть аналоги: mt (top), ms (start/left), me (end/right), p (padding).


4До и после: конвертер температур
Было (без Bootstrap)
<body>
<form id="form1" runat="server">
<h2>Конвертер температур</h2>
<p>Значение:
<asp:TextBox ID="txtValue" runat="server" />
</p>
<asp:Button ID="btnConvert" runat="server"
Text="Перевести" OnClick="BtnConvert_Click" />
<p><asp:Label ID="lblResult" runat="server" /></p>
</form>
</body>
Стало (с Bootstrap)
1<head>
2 <title>Конвертер</title>
3 <!-- Подключаем Bootstrap -->
4 <link rel="stylesheet"
5 href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
6</head>
7<body>
8 <div class="container mt-5" style="max-width:500px">
9 <form id="form1" runat="server">
10
11 <h2 class="mb-4">Конвертер температур</h2>
12
13 <div class="mb-3">
14 <label class="form-label">Значение:</label>
15 <asp:TextBox ID="txtValue" runat="server"
16 CssClass="form-control" />
17 </div>
18
19 <div class="mb-3">
20 <asp:RadioButton ID="rbCF" runat="server"
21 Text="C → F" GroupName="dir"
22 CssClass="form-check-input" Checked="true" />
23 <asp:RadioButton ID="rbFC" runat="server"
24 Text="F → C" GroupName="dir"
25 CssClass="form-check-input" />
26 </div>
27
28 <asp:Button ID="btnConvert" runat="server"
29 Text="Перевести"
30 CssClass="btn btn-primary"
31 OnClick="BtnConvert_Click" />
32
33 <asp:Label ID="lblResult" runat="server"
34 CssClass="alert alert-success mt-3"
35 style="display:block" />
36
37 </form>
38 </div>
39</body>

стр 4–5 — подключение Bootstrap через CDN. Одна строка — больше ничего не нужно.

стр 8container mt-5 центрирует всё и добавляет отступ сверху. max-width:500px — чтобы форма не растянулась на весь экран.

стр 14form-label — аккуратная подпись над полем.

стр 16CssClass="form-control" — поле ввода становится красивым.

стр 30btn btn-primary — синяя кнопка. Два класса через пробел.

стр 34alert alert-success mt-3 — результат в зелёной плашке с отступом сверху.

C#-код не изменился ни на символ. Весь файл .aspx.cs остался таким же. Bootstrap влияет только на внешний вид, не на логику.

5Кнопки: цвета

У кнопок есть 6 основных цветов. Все они используют базовый класс btn + цвет:

Класс Цвет Когда использовать
btn btn-primary Синий Главное действие (Сохранить, Перевести)
btn btn-success Зелёный Подтверждение (Добавить, Готово)
btn btn-danger Красный Удаление, отмена
btn btn-warning Жёлтый Предупреждение
btn btn-secondary Серый Второстепенное действие (Отмена)
btn btn-outline-primary Прозрачный с синей рамкой Менее яркий вариант

Пример — страница со списком дел с двумя кнопками разных цветов:

<asp:Button ID="btnAdd" runat="server" Text="Добавить"
CssClass="btn btn-success" OnClick="BtnAdd_Click" />
 
<asp:Button ID="btnClear" runat="server" Text="Очистить"
CssClass="btn btn-outline-danger" OnClick="BtnClear_Click" />

6Сообщения: alert

Плашки для уведомлений — ошибки, успехи, предупреждения. Удобно для результата или сообщений валидации:

Класс Вид Когда
alert alert-success Зелёная плашка Успех: «Сохранено!»
alert alert-danger Красная плашка Ошибка: «Введи число!»
alert alert-warning Жёлтая плашка Предупреждение
alert alert-info Голубая плашка Подсказка

Класс можно менять из C# в зависимости от результата:

if (!ok)
{
lblResult.Text = "Введи число!";
lblResult.CssClass = "alert alert-danger mt-3";
}
else
{
lblResult.Text = value + " °C = " + result + " °F";
lblResult.CssClass = "alert alert-success mt-3";
}

CssClass можно не только задавать в разметке, но и менять из C#-кода — в зависимости от логики. Ошибка — красная, успех — зелёная.


7Таблицы: GridView + Bootstrap

GridView тоже поддерживает CssClass. Одна строка превращает таблицу из серой в красивую:

<asp:GridView ID="gvTasks" runat="server"
CssClass="table table-striped table-hover"
AutoGenerateColumns="false"
DataKeyNames="Id" >
Класс Что делает
table Базовый стиль таблицы (отступы, линии)
table-striped Чередование серых и белых строк
table-hover Подсветка строки при наведении мышки
table-bordered Рамки у всех ячеек
table-sm Компактная таблица (меньше отступы)

Классы комбинируются: "table table-striped table-hover table-sm" — компактная полосатая таблица с подсветкой.


8Паттерн страницы с Bootstrap

Вот шаблон, который можно использовать для любой новой страницы:

1<%@ Page Language="C#" CodeBehind="MyPage.aspx.cs"
2 Inherits="MyFirstSite.MyPage" %>
3
4<!DOCTYPE html>
5<html>
6<head>
7 <title>Название</title>
8 <link rel="stylesheet"
9 href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
10</head>
11<body>
12 <div class="container mt-4" style="max-width:600px">
13 <form id="form1" runat="server">
14
15 <h2 class="mb-4">Заголовок</h2>
16
17 <!-- поле ввода -->
18 <div class="mb-3">
19 <label class="form-label">Подпись:</label>
20 <asp:TextBox ID="txt1" runat="server"
21 CssClass="form-control" />
22 </div>
23
24 <!-- кнопка -->
25 <asp:Button ID="btn1" runat="server"
26 Text="Действие"
27 CssClass="btn btn-primary"
28 OnClick="Btn1_Click" />
29
30 <!-- результат -->
31 <asp:Label ID="lblResult" runat="server"
32 CssClass="alert alert-info mt-3"
33 style="display:block" />
34
35 </form>
36 </div>
37</body>
38</html>

стр 8–9 — CDN-подключение Bootstrap. Скопируй эти строки в любую новую страницу.

стр 12container + ограничение ширины. Без этого форма растянется на весь экран.

стр 18–22 — стандартная обёртка для поля: div.mb-3label.form-labelTextBox.form-control.


9Задание: прокачай свои страницы

Открой конвертер температур или генератор паролей из прошлых заданий и добавь Bootstrap. Чек-лист:

1. Добавить <link> в <head>

2. Обернуть содержимое в <div class="container">

3. Добавить CssClass="form-control" ко всем TextBox и DropDownList

4. Добавить CssClass="btn btn-primary" к кнопке

5. Добавить CssClass="alert alert-success mt-3" к Label с результатом

6. Обернуть каждое поле в <div class="mb-3">

Потрать 10 минут — и обе страницы будут выглядеть как настоящее веб-приложение. C#-код менять не нужно.


Итоги

Bootstrap подключается одной строкой в <head> через CDN. Стилизация — через CSS-классы в атрибуте CssClass у серверных элементов. Десяти классов хватает для большинства форм: container, form-control, form-label, btn btn-*, alert alert-*, mb-*, mt-*, table table-striped. C#-код не меняется — Bootstrap влияет только на внешний вид. CssClass можно менять из C# динамически — показывать зелёную или красную плашку в зависимости от результата.

На следующем занятии: подключаем базу данных — храним данные, которые не исчезают при перезагрузке.

© SilverTests.ru · ASP.NET Web Forms · Занятие 2.8 · Bootstrap
Печать