← На головну

Лабораторна робота №2

Тема: КАСКАДНІ ТАБЛИЦІ СТИЛІВ. СЕЛЕКТОРИ. ІДЕНТИФІКАТОРИ. СТИЛЬОВЕ ОФОРМЛЕННЯ ТЕКСТОВИХ ЕЛЕМЕНТІВ

Тема, мета, місце розташування

Тема

КАСКАДНІ ТАБЛИЦІ СТИЛІВ. СЕЛЕКТОРИ. ІДЕНТИФІКАТОРИ. СТИЛЬОВЕ ОФОРМЛЕННЯ ТЕКСТОВИХ ЕЛЕМЕНТІВ В HTML-ДОКУМЕНТАХ.

Мета

Придбати практичні навички роботи з селекторами, ідентифікаторами, списками, різноманітними властивостями кольору і фону, зовнішніми та внутрішніми відступами, плаваючими елементами, оформленням текстових елементів.

Селектори тегу

Застосування селекторів тегу у проекті BookShelf

HTML-код з проекту BookShelf:

<body> <h1>BookShelf</h1> <table> <thead> <tr> <th>ID</th> <th>Назва книги</th> </tr> </thead> </table> <button>Додати книгу</button> <ul><li>Статистика</li></ul> </body>

CSS-код (стилізація тегів з style.css):

/* Селектор тегу body */ body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; background-color: #f9f9f9; padding: 20px; } /* Селектор тегу button */ button { padding: 12px 24px; background: #4a6491; color: white; border: none; border-radius: 5px; cursor: pointer; font-size: 1rem; transition: background 0.3s; } /* Селектор тегу textarea */ textarea { resize: vertical; min-height: 100px; }

Селектори класів

Застосування селекторів класів у проекті BookShelf

HTML-код з класами:

<li class="nav-item"> <button data-page="library">Моя бібліотека</button> </li> <section class="page-section active"> <h2 class="section-title">Моя бібліотека</h2> <div class="form-group"> <label for="book-title">Назва книги:</label> <input type="text" id="book-title" required> </div> <div class="form-actions"> <button type="submit">Зберегти книгу</button> </div> </section>

CSS-код (стилізація класів з style.css):

/* Селектор класу .nav-item */ .nav-item button, .nav-link { background: rgba(255, 255, 255, 0.1); border: 2px solid rgba(255, 255, 255, 0.3); color: white; padding: 12px 24px; border-radius: 5px; cursor: pointer; font-size: 1rem; transition: all 0.3s ease; text-decoration: none; display: inline-block; } /* Селектор класу .page-section */ .page-section { display: none; padding: 30px; } .page-section.active { display: block; } /* Селектор класу .section-title */ .section-title { color: #2c3e50; margin-bottom: 25px; padding-bottom: 10px; border-bottom: 2px solid #4a6491; } /* Селектор класу .form-group */ .form-group { margin-bottom: 20px; } /* Селектор класу .form-actions */ .form-actions { display: flex; gap: 15px; margin-top: 25px; }

Селектори ідентифікаторів

Застосування селекторів ідентифікаторів у проекті BookShelf

HTML-код з ідентифікаторами:

<div id="app"> <header id="header"> <h1 id="app-title">BookShelf</h1> <nav id="main-nav"> <ul id="nav-list"></ul> </nav> </header> <table id="books-table"> <thead id="table-header"></thead> <tbody id="books-table-body"></tbody> </table> <ol id="stats-list"></ol> <ul id="results-list"></ul> <footer id="app-footer"> <div id="footer-content"> <div id="footer-links"></div> </div> </footer> </div>

CSS-код (стилізація ідентифікаторів з style.css):

/* Селектор ідентифікатора #app */ #app { max-width: 1200px; margin: 0 auto; background: white; border-radius: 10px; box-shadow: 0 3px 10px rgba(0,0,0,0.08); overflow: hidden; } /* Селектор ідентифікатора #header */ #header { background: linear-gradient(135deg, #2c3e50 0%, #4a6491 100%); color: white; padding: 20px 30px; } /* Селектор ідентифікатора #app-title */ #app-title { font-size: 2.5rem; margin-bottom: 15px; text-align: center; } /* Селектор ідентифікатора #nav-list */ #nav-list { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; padding: 0; } /* Селектор ідентифікатора #books-table */ #books-table { width: 100%; border-collapse: collapse; background: white; } /* Селектор ідентифікатора #app-footer */ #app-footer { text-align: center; padding: 25px 30px; background: #f8f9fa; border-top: 2px solid #eee; color: #666; }

Інші селектори

Застосування різних типів селекторів

1. Універсальний селектор (*)

* { margin: 0; padding: 0; box-sizing: border-box; }

Застосовується до всіх елементів на сторінці.

3. Дочірній селектор (>)

/* Дочірній селектор через клас (приклад) */ .form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #333; } .form-group input, .form-group select, .form-group textarea { width: 100%; max-width: 400px; padding: 12px; border: 1px solid #ddd; border-radius: 5px; font-size: 1rem; transition: border 0.3s; }

Застосовується до прямих дочірніх елементів.

4. Псевдокласи

/* Псевдоклас :hover */ .nav-item button:hover, .nav-link:hover { background: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.5); transform: translateY(-2px); } button:hover { background: #2c3e50; } /* Псевдоклас :focus */ .form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: none; border-color: #4a6491; box-shadow: 0 0 0 2px rgba(74, 100, 145, 0.2); } /* Псевдоклас для таблиці */ #books-table tbody tr:hover { background-color: #f5f9ff; } /* Псевдоклас для посилань */ #footer-links a:hover { color: #2c3e50; text-decoration: underline; }

Застосовуються для стилізації станів елементів.

5. Групування селекторів (,)

.nav-item button, .nav-link { /* спільні стилі для кнопок і посилань */ } #stats-list li, #results-list li { background: #f8f9fa; padding: 15px; margin-bottom: 10px; border-left: 4px solid #4a6491; border-radius: 0 5px 5px 0; }

Застосовує стилі до кількох елементів одночасно.

CSS: Шрифти, текст, таблиці, фон, контур, списки

Стильове оформлення текстових елементів у BookShelf

1. Шрифти та текст (з style.css):

/* Шрифти */ body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; } #app-title { font-size: 2.5rem; text-align: center; } .form-group label { font-weight: 600; } /* Колір тексту */ #header { color: white; } body { color: #333; } .section-title { color: #2c3e50; } #app-footer { color: #666; }

2. Контури (border) з style.css:

/* Контури для кнопок */ .nav-item button, .nav-link { border: 2px solid rgba(255, 255, 255, 0.3); border-radius: 5px; } /* Контури для полів вводу */ .form-group input, .form-group select, .form-group textarea { border: 1px solid #ddd; border-radius: 5px; } /* Контур заголовка */ .section-title { border-bottom: 2px solid #4a6491; } /* Контур футера */ #app-footer { border-top: 2px solid #eee; } /* Контур для списків */ #stats-list li, #results-list li { border-left: 4px solid #4a6491; }

3. Фон (background) з style.css:

/* Суцільний колір фону */ body { background-color: #f9f9f9; } #app { background: white; } /* Градієнтний фон */ #header { background: linear-gradient(135deg, #2c3e50 0%, #4a6491 100%); } /* Напівпрозорий фон */ .nav-item button, .nav-link { background: rgba(255, 255, 255, 0.1); } /* Фон для таблиці */ #books-table th { background-color: #4a6491; } /* Фон для списків */ #stats-list li, #results-list li { background: #f8f9fa; } /* Фон футера */ #app-footer { background: #f8f9fa; }

4. CSS для таблиць з style.css:

/* Контейнер таблиці */ #library-table-container { overflow-x: auto; margin: 25px 0; } /* Основні стилі таблиці */ #books-table { width: 100%; border-collapse: collapse; background: white; } /* Заголовки таблиці */ #books-table th { background-color: #4a6491; color: white; padding: 15px; text-align: left; } /* Клітинки таблиці */ #books-table td { padding: 12px 15px; border-bottom: 1px solid #eee; } /* Ефект при наведенні */ #books-table tbody tr:hover { background-color: #f5f9ff; }

5. CSS для списків з style.css:

/* Навігаційний список */ #nav-list { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 15px; padding: 0; } /* Список статистики */ #stats-list, #results-list { list-style: none; padding: 0; } /* Елементи списків */ #stats-list li, #results-list li { background: #f8f9fa; padding: 15px; margin-bottom: 10px; border-left: 4px solid #4a6491; border-radius: 0 5px 5px 0; }

6. Відступи (padding та margin) з style.css:

/* Внутрішні відступи (padding) */ body { padding: 20px; } #header { padding: 20px 30px; } .page-section { padding: 30px; } #app-footer { padding: 25px 30px; } /* Зовнішні відступи (margin) */ #app { margin: 0 auto; } #app-title { margin-bottom: 15px; } .section-title { margin-bottom: 25px; padding-bottom: 10px; } .form-group { margin-bottom: 20px; } .form-group label { margin-bottom: 8px; } .form-actions { margin-top: 25px; } #library-table-container { margin: 25px 0; } #stats-list li, #results-list li { margin-bottom: 10px; } #footer-links { margin-top: 15px; }

Макет в Figma звітного HTML-документа

Проектування інтерфейсу у Figma

Фото Figma

Результати лабораторних робіт №1 та №2

Об'єднання результатів обох лабораторних робіт

Досягнення лабораторної роботи №1:

  • Створено веб-застосунок BookShelf для керування персональною бібліотекою
  • Розроблено HTML-структуру з таблицями, формами, списками
  • Налаштовано Git репозиторій та GitHub Pages
  • Створено звітний HTML-документ

Досягнення лабораторної роботи №2:

  • Застосовано CSS для стилізації веб-застосунку BookShelf
  • Використано різні типи селекторів: тегів, класів, ідентифікаторів
  • Реалізовано адаптивний дизайн з медіа-запитами
  • Додано інтерактивність через CSS переходи та анімації
  • Створено Figma макет для звітного документу
Фото головної сторінки сайту Фото головної сторінки сайту

Репозиторії та живі сторінки

Висновки до лабораторної роботи №2

Висновки

Під час виконання лабораторної роботи №2 було успішно освоєно роботу з каскадними таблицями стилів (CSS) та різними типами селекторів. Основним практичним результатом стало створення повноцінного стилізованого веб-застосунку BookShelf для керування персональною бібліотекою.

Ключові навички, отримані в ході роботи:

  1. Робота з селекторами CSS: Навчилась застосовувати різні типи селекторів - тегів, класів, ідентифікаторів, а також комбіновані селектори, селектори атрибутів та універсальний селектор.
  2. Стилізація текстових елементів: Опанувала техніки оформлення тексту: роботу з шрифтами, кольорами, відступами, контурами та фоном.
  3. Адаптивний веб-дизайн: Реалізувала адаптивну верстку за допомогою медіа-запитів, що дозволяє коректне відображення на різних пристроях.
  4. Сучасні CSS-технології: Застосувала Flexbox для створення гнучких макетів, CSS переходи для анімацій, градієнти для фонів.
  5. Інструменти розробника: Навчилась використовувати Figma для проектування інтерфейсів та GitHub для контролю версій та хостингу.

Загальний висновок: Виконання лабораторної роботи №2 дозволило перейти від створення базової HTML-структури до повноцінного стилізованого веб-застосунку з професійним дизайном. Отримані знання про CSS селектори, каскадування та спадкування стилів складають фундамент для подальшого вивчення веб-розробки та створення складних інтерфейсів.

Результатом роботи є не лише функціональний веб-застосунок BookShelf, а й структурований звітний документ, що демонструє всі етапи розробки та отримані навички.