icon picker
Модуль 2

FAQ
Search
Таблиці
Таблиці дозволяють відобразити складні зв'язки, розміщуючи в клітинках будь-який контент. Їх потрібно використовувати тільки для розмітки табличних даних: розклад транспорту, календар, результати матчів, фінансові операції, меню в ресторані, прайс-лист тощо. Тобто інформацію, яку логічно представити в табличній формі, наприклад, використовуючи Google Sheets. Корисно Елементи таблиці семантично описують табличні дані, та їх використання для інших цілей - це порушення семантики. Будемо набирати розмітку ось такого розкладу потягів. Таблиця - це набір рядків з клітинками. Познайомимося з базовими тегами. <table> - визначає всю таблицю, контейнер для контенту. <tr> - рядок таблиці (table row). Не може бути порожнім, повинен містити хоча б одну клітинку. <td> - клітинка таблиці (table data). Можна використовувати тільки всередині рядка. У кожному рядку таблиці повинна бути однакова кількість клітинок. Розмітимо розклад потягів таблицею з трьома рядками. <table> <tr> <td>433</td> <td>Київ - Ковель</td> <td>5 годин</td> </tr> <tr> <td>701</td> <td>Харків - Дніпро</td> <td>7 годин</td> </tr> <tr> <td>258</td> <td>Львів - Одеса</td> <td>4 години</td> </tr> </table> Корисно За замовчуванням у таблиці немає спеціального оформлення, наприклад, такої темної рамки як на зображенні. Для цього використовується CSS, як і для будь-якого іншого оформлення контенту. Клітинки-заголовки​ Для того щоб створити рядок з заголовками стовпчиків, використовуємо стандартний тег <tr> для рядка, а клітинки розмічаємо спеціальним тегом <th> (table header) - семантичним тегом клітинки-заголовка. За замовчуванням текст всередині <th> виділяється жирним і центрується. <table> <tr> <th>Номер</th> <th>Маршрут</th> <th>Час у дорозі</th> </tr> <tr> <td>433</td> <td>Київ - Ковель</td> <td>5 годин</td> </tr> <tr> <td>701</td> <td>Харків - Дніпро</td> <td>7 годин</td> </tr> <tr> <td>258</td> <td>Львів - Одеса</td> <td>4 годин</td> </tr> </table> Секції таблиці​ Для підвищення семантики розмітки таблиці існує кілька структурних тегів. <thead> - шапка, обгортає групу рядків таблиці в області заголовка. <tbody> - тіло, обгортає основну групу рядків таблиці. <tfoot> - підвал, означає групу рядків таблиці в області нижнього колонтитула. У розкладі потягів можна виділити шапку з одного рядка з назвами колонок і тіло. <table> <thead> <tr> <th>Номер</th> <th>Маршрут</th> <th>Час у дорозі</th> </tr> </thead> <tbody> <tr> <td>433</td> <td>Київ - Ковель</td> <td>5 годин</td> </tr> <tr> <td>701</td> <td>Харків - Дніпро</td> <td>7 годин</td> </tr> <tr> <td>258</td> <td>Львів - Одеса</td> <td>4 годин</td> </tr> </tbody> </table> Заголовок таблиці​ Якщо у таблиці є заголовок, звичайно можна розмітити його, використовуючи теги заголовків. <h1>Розклад потягів</h1> <table> <!-- Розмітка таблиці --> </table> Але семантичніше буде використовувати спеціальний табличний тег <caption>, який повинен розташовуватися всередині таблиці, найпершим елементом. <table> <caption> Розклад потягів </caption> <!-- Інша частина розмітки таблиці --> </table> Ось живий приклад результату. На вкладці CSS можна подивитися стилі, де до кожного з CSS-правил є коментар з поясненням. https://codepen.io/goit-academy/embed/dyXboZv?height=265&theme-id=default&default-tab=result Групування клітинок​ Деякі таблиці зроблені таким чином, що потрібно об'єднати декілька клітинок за горизонталлю або вертикаллю. Напишемо розмітку такої таблиці, додавши додаткові клітинки, враховуючи, що «Хмарний сервіс» займе дві клітинки за вертикаллю, а «Використання» - три за горизонталлю. <table> <thead> <tr> <th>Хмарний сервіс</th> <th>Використання</th> <th></th> <th></th> </tr> <tr> <th></th> <th>Користувачі</th> <th>Відвідування</th> <th>Об`єм</th> </tr> </thead> <tbody> <tr> <td>Google</td> <td>12000</td> <td>307000</td> <td>1000 Tb</td> </tr> <tr> <td>Amazon</td> <td>9000</td> <td>200500</td> <td>800 Tb</td> </tr> </tbody> </table> Зверніть увагу на порожні теги <th>, в кожному рядку повинна бути однакова кількість клітинок, тому «зайві» поки що залишаємо порожніми. В результаті отримаємо наступну таблицю. https://codepen.io/goit-academy/embed/rNLBVKV?height=265&theme-id=default&default-tab=result Правило рівності кількості клітинок в рядках і стовпчиках не можна скасувати, але можна оминути. Для того щоб розширити клітинку за горизонталлю, використовується атрибут colspan, за вертикаллю - rowspan. Потрібно визначити групу клітинок для злиття і потім крайній верхній і лівій клітинці групи задати атрибут colspan з кількістю клітинок, які потрібно об'єднати праворуч та/або rowspan - знизу. Після цього обов'язково потрібно видалити вже непотрібні клітинки праворуч та/або знизу. У нашому завданні клітинка «Хмарний сервіс» повинна займати 2 клітинки за вертикаллю, тому додаємо їй rowspan="2" і видаляємо порожній <th> рядком нижче. Аналогічно з клітинкою «Використання», встановлюємо colspan="3" і видаляємо дві сусідні клітинки праворуч в цьому рядку. <table> <thead> <tr> <th rowspan="2">Хмарний сервіс</th> <th colspan="3">Використання</th> </tr> <tr> <th>Користувачі</th> <th>Відвідування</th> <th>Об`єм</th> </tr> </thead> <!-- Розмітка tbody --> </table> Цікаво Правило рівності кількості клітинок буде візуально порушено, але браузер враховує клітинки в об'єднаних групах, тому все правильно. https://codepen.io/goit-academy/embed/pobzJxM?height=265&theme-id=default&default-tab=result
Розмітка тексту
Тег <dl>​ Тег <dl> (description list) - це контейнер для списку пар термінів та їх описів, тобто словник. Для розмітки термінів існує тег <dt>, а для описів - <dd>. Використовується для розмітки списку визначень, наприклад для створення глосарію, телефонного довідника тощо. https://codepen.io/goit-academy/embed/mdEbJNK?height=265&theme-id=default&default-tab=html,result Тег <span>​ Універсальний контейнер для дрібного текстового контенту, наприклад окремих слів, частин слів або цілих фраз всередині текстового масиву. Аналогічно тегу <div>, не має жодного семантичного значення і використовується для додаткової стилізації. <p> Тег <span class="accent">span</span> - це універсальний контейнер для дрібного текстового контенту. </p> Цікаво Спану с атрибутом class="accent" за допомогою CSS можна буде додати стилі, наприклад інший колір тексту, його розмір тощо. Тег <pre>​ За замовчуванням браузер ігнорує перенесення рядків і більше одного пробілу підряд. Цей тег дозволяє додати переформатований текст з примусовими перенесеннями рядків. Наприклад, розмітка тексту пісні або вірша. https://codepen.io/goit-academy/embed/vYKBNLr?height=265&theme-id=default&default-tab=html,result Теги <sup> і <sub>​ Призначені для відображення символів у верхньому (<sup>, скорочено від superscript) і нижньому (<sub>, скорочено від subscript) індексі. Наприклад, для розмітки нескладних математичних або хімічних формул. https://codepen.io/goit-academy/embed/WNxeQxe?height=265&theme-id=default&default-tab=html,result Тег <time>​ Дату і час можна написати просто текстом, але краще використовувати спеціальний тег <time>. Дата для людини - це текст всередині тегу, а для машини - значення атрибута datetime у форматі ISO 8601. <p>Останні новини на <time datetime="2019-12-14">14 грудня 2019 року</time>.</p> <p> Засідання відбулося об <time datetime="2018-07-14T11:30">11:30 ранку</time>. </p> Браузер відобразить тільки текст всередині тегу. Людина побачить зрозумілий текст, а асистивна технологія прочитає атрибут datetime і отримає точне значення у потрібному форматі. Тег <address>​ Призначений для зберігання контактної інформації про автора статті, блоку інформації або веб-сторінки загалом. Контактна інформація може бути в будь-який відповідній формі, наприклад, фізична адреса, адреса електронної пошти, посилання на сайт, номер телефону, тег соцмережі. <address> м. Київ, <br /> Бульвар Лесі Українки, б. 26, <br /> 4й поверх офіс 427 </address> <address> <a href="mailto:mango@mail.pig">mango@mail.pig</a> <a href="tel:+1112223344">(111) 222-33-44</a> </address> Зверніть увагу на тег <br>, він використовується для розмітки масиву тексту з примусовими перенесеннями рядків для візуального форматування. Наприклад, розмітка одного рядка адреси на декілька рядків. Увага Тег <br/> (скорочено від line break) не використовується для того, щоб примусово додати розриви рядка між тегами або розбити масив тексту на абзаци. Теги <strong> і <b>​ Використовуються для виділення важливого слова або цілої фрази всередині тексту. Візуально обидва теги роблять текст жирним, і на перший погляд різниці між ними немає, але це не так. Тег <strong> семантично підкреслює текст як важливий і вказує, що це важливе слово або фраза. Наприклад, виділити попередження або будь-яку частину тексту, на яку користувач повинен насамперед звернути увагу. <p> <strong>Увага!</strong> Завершується термін підписки. <strong>Обліковий запис буде призупинений.</strong> Будь-ласка, продовжіть підписку або зв'яжіться зі службою підтримки. </p> Тег <b> (скорочено від bold) робить текст тільки візуально жирним, привертаючи увагу, але не надаючи особливої важливості. Цікаво Для асистивних технологій, наприклад скрінрідера, текст обгорнутий в <strong> має особливу важливість і буде додатково виділений інтонацією. Теги <em> і <i>​ Використовуються для акцентування уваги на частини тексту. Візуально обидва теги роблять текст курсивним, і на перший погляд різниці між ними немає, але це не так. Тег <em> (скорочено від emphasis) семантично виділяє текст, на який зроблений особливий акцент, що змінює зміст фрази. Наприклад, можна виділити сарказм. <p>Я <em>в повному захваті</em>, коли затримують зарплату!</p> Тег <i> (скорочено від italic) робить текст тільки візуально курсивним, привертаючи увагу, але не надаючи особливої важливості. Наприклад, виділити терміни в реченні. Цікаво Для асистивних технологій, наприклад скрінрідера, текст обгорнутий в <em> має особливий акцент і буде додатково виділений інтонацією.
Символьні підстановки
Не всі символи можна набрати на клавіатурі. Наприклад, символ зареєстрованого торгового знака & reg;, торгової марки & trade;, авторського права & copy;. для введення подібних знаків використовують символьні підстановки. Цікаво У стандарті кодування Unicode зберігаються знаки майже всіх мов світу, а також спеціальні та службові символи. Символьні підстановки - це посилання-мнемоніки, на підставі яких браузер знає, який Unicode-символ потрібно відобразити. Символьні підстановки - це спеціальні рядки, що перетворюються браузерами в символи. Підстановку можна здійснити декількома способами. &мнемокод; - вставлення символу за його «мнемокодом», тобто іменем &#КОД10; - вставлення символу за його десятковим кодом &#xКОД16; - вставлення символу за його шістнадцятковим кодом Наприклад, символ авторського права © можна додати наступним чином. <p>Всі права захищені &copy; Lex, 2020</p> <p>Всі права захищені &#169; Lex, 2020</p> <p>Всі права захищені &#xa9; Lex, 2020</p> Символьні підстановки застосовуються не тільки для вставлення символів, яких немає на клавіатурі, але так само для символів, що мають спеціальне призначення в HTML. Наприклад, якщо потрібно вивести на сторінку текст, що містить теги як текст. <p>Для напівжирного тексту, виділіть його тегами <strong> і </strong>.</p> Символи < і > - це частина синтаксису HTML, відкривають і закривають теги. Тому безпосереднє вставлення їх у код сторінки призведе до інтерпретації <strong> і </strong> як тегів. У такому разі, замість символів < і >, необхідно використовувати символьні підстановки &lt; і &gt;. <p> Для напівжирного тексту, виділіть його тегами &lt;strong&gt; і &lt;/strong&gt;. </p> Є офіційна сторінка W3C і сервіс від Toptal, де можна знайти мнемоніку для будь-якого символу. Цікаво Спецсимволи, що не мають мнемоніки, можуть зовсім не відображатися або ж відображатися некоректно в певних браузерах. У такому разі, їх замінюють на іконки (зображення).
Відео та аудіо
До HTML5 розмітка відео і аудіо була складним завданням. В сучасному стандарті додали нові теги для розмітки медіаконтенту з підтримкою різних форматів, вбудованими елементами управління тощо. Відео​ Для розмітки відеоконтенту використовується парний тег <video>. <video src="http://techslides.com/demos/sample-videos/small.webm" poster="https://images.pexels.com/photos/595804/pexels-photo-595804.jpeg?w=640" width="640" controls autoplay loop preload="auto" ></video> Розберемо атрибути. src - вказує адресу відеофайлу poster - адреса зображення, яке використовується як постер, якщо відео завантажене або ще не відтворюється width і height - задають висоту і ширину як у зображення controls - атрибут-прапорець, якщо присутній, додаються елементи управління відео autoplay - атрибут-прапорець, якщо присутній, відтворення відео починається як тільки воно доступне loop - атрибут-прапорець, якщо присутній, відео буде повторюватися в циклі Атрибут preload вказує режим попереднього завантаження відео. Його значення впливає на те, яка інформація буде завантажена. Значення за замовчуванням залежить від браузера, в якому була відкрита веб-сторінка. none - не завантажувати відео заздалегідь metadata - завантажити службову інформацію (тривалість тощо) auto - заздалегідь завантажувати всі відео Формати відео​ Завантажувати лише один формат відеофайлу недостатньо, деякі браузери можуть його не підтримувати, і користувач не зможе подивитися відео. Існує декілька популярних відеоформатів, які необхідно надати браузеру на вибір: webm, mp4 і ogg. Для цього прибираємо атрибут src у тегу <video> і додаємо новий тег <source> для кожного формату. В атрибуті src вказуємо адресу відеофайлу, а в атрибуті type - формат відео. Браузер вибере зі списку перший, який він підтримує і завантажить його, проігнорувавши інші. <video poster="https://images.pexels.com/photos/595804/pexels-photo-595804.jpeg?w=640" width="640" controls > <source src="http://techslides.com/demos/sample-videos/small.webm" type="video/webm" /> <source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4" /> <source src="http://techslides.com/demos/sample-videos/small.ogg" type="video/ogg" /> </video> Цікаво Конвертація відео і аудіо в необхідні формати - це завдання автора контенту, контент-менеджера або, у крайньому разі - розробника. Аудіо​ Для розмітки аудіоконтенту використовується парний тег <audio>. Його використання дуже схоже на <video>, але можна задати менше атрибутів. <audio src="song.mp3" controls autoplay loop preload="auto"></audio> Розберемо атрибути. src - вказує адресу аудіофайлу controls - атрибут-прапорець, якщо присутній, додаються елементи управління аудіо autoplay - атрибут-прапорець, якщо присутній, відтворення аудіо починається як тільки воно доступне loop - атрибут-прапорець, якщо присутній, аудіо буде повторюватися в циклі Атрибут preload вказує режим попереднього завантаження аудіофайлу. Його значення впливає на те, яка інформація буде завантажена. Значення за замовчуванням залежить від браузера, в якому була відкрита веб-сторінка. none - не завантажувати аудіо заздалегідь metadata - завантажити службову інформацію (тривалість тощо) auto - заздалегідь завантажувати увесь аудіофайл Формати аудіо​ Аудіо має кращу ситуацію з підтримкою форматів в браузері. Всі сучасні браузери гарантовано підтримують один з двох форматів: mp3 або ogg. Подібно до відео, видаляємо атрибут src і використовуємо тег <source> з атрибутами src і type. <audio controls> <source src="song.mp3" type="audio/mpeg" /> <source src="song.ogg" type="audio/ogg" /> </audio> Підтримка старих браузерів​ Якщо браузер дуже старий і не підтримує HTML5 медіаконтент, потрібно сказати про це користувачеві. Для цього, всередині тегів <video> або <audio>, після всіх тегів <source> додамо рядок тексту, який браузер відобразить, якщо не підтримує медіаконтент. <video poster="https://images.pexels.com/photos/595804/pexels-photo-595804.jpeg?w=640" width="640" controls > <source src="http://techslides.com/demos/sample-videos/small.webm" type="video/webm" /> <source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4" /> <source src="http://techslides.com/demos/sample-videos/small.ogg" type="video/ogg" /> Your browser does not support the <code>video</code> element. </video> <audio controls> <source src="song.mp3" type="audio/mpeg" /> <source src="song.ogg" type="audio/ogg" /> Your browser does not support the <code>audio</code> element. </audio>
Term
Таблиці
Description
дозволяють відобразити складні зв'язки, розміщуючи в клітинках будь-який контент. Їх потрібно використовувати тільки для розмітки табличних даних: розклад транспорту, календар, результати матчів, фінансові операції, меню в ресторані, прайс-лист тощо. Тобто інформацію, яку логічно представити в табличній формі, наприклад, використовуючи Google Sheets.
info

Корисно

Елементи таблиці семантично описують табличні дані, та їх використання для інших цілей - це порушення семантики.
Будемо набирати розмітку ось такого розкладу потягів.
Таблиця розкладу потягів
Таблиця - це набір рядків з клітинками. Познайомимося з базовими тегами.
<table> - визначає всю таблицю, контейнер для контенту.
<tr> - рядок таблиці (table row). Не може бути порожнім, повинен містити хоча б одну клітинку.
<td> - клітинка таблиці (table data). Можна використовувати тільки всередині рядка. У кожному рядку таблиці повинна бути однакова кількість клітинок.
Розмітимо розклад потягів таблицею з трьома рядками.
<table>
<tr>
<td>433</td>
<td>Київ - Ковель</td>
<td>5 годин</td>
</tr>
<tr>
<td>701</td>
<td>Харків - Дніпро</td>
<td>7 годин</td>
</tr>
<tr>
<td>258</td>
<td>Львів - Одеса</td>
<td>4 години</td>
</tr>
</table>

info

Корисно

За замовчуванням у таблиці немає спеціального оформлення, наприклад, такої темної рамки як на зображенні. Для цього використовується CSS, як і для будь-якого іншого оформлення контенту.

Клітинки-заголовки

Для того щоб створити рядок з заголовками стовпчиків, використовуємо стандартний тег <tr> для рядка, а клітинки розмічаємо спеціальним тегом <th> (table header) - семантичним тегом клітинки-заголовка. За замовчуванням текст всередині <th> виділяється жирним і центрується.
<table>

<tr>

<th>Номер</th>

<th>Маршрут</th>

<th>Час у дорозі</th>

</tr>

<tr>
<td>433</td>
<td>Київ - Ковель</td>
<td>5 годин</td>
</tr>
<tr>
<td>701</td>
<td>Харків - Дніпро</td>
<td>7 годин</td>
</tr>
<tr>
<td>258</td>
<td>Львів - Одеса</td>
<td>4 годин</td>
</tr>
</table>

Секції таблиці

Для підвищення семантики розмітки таблиці існує кілька структурних тегів.
<thead> - шапка, обгортає групу рядків таблиці в області заголовка.
<tbody> - тіло, обгортає основну групу рядків таблиці.
<tfoot> - підвал, означає групу рядків таблиці в області нижнього колонтитула.
У розкладі потягів можна виділити шапку з одного рядка з назвами колонок і тіло.
<table>

<thead>

<tr>
<th>Номер</th>
<th>Маршрут</th>
<th>Час у дорозі</th>
</tr>

</thead>


<tbody>

<tr>
<td>433</td>
<td>Київ - Ковель</td>
<td>5 годин</td>
</tr>
<tr>
<td>701</td>
<td>Харків - Дніпро</td>
<td>7 годин</td>
</tr>
<tr>
<td>258</td>
<td>Львів - Одеса</td>
<td>4 годин</td>
</tr>

</tbody>

</table>

Заголовок таблиці

Якщо у таблиці є заголовок, звичайно можна розмітити його, використовуючи теги заголовків.
<h1>Розклад потягів</h1>
<table>
<!-- Розмітка таблиці -->
</table>

Але семантичніше буде використовувати спеціальний табличний тег <caption>, який повинен розташовуватися всередині таблиці, найпершим елементом.
<table>

<caption>

Розклад потягів

</caption>

<!-- Інша частина розмітки таблиці -->
</table>

Ось живий приклад результату. На вкладці CSS можна подивитися стилі, де до кожного з CSS-правил є коментар з поясненням.

Групування клітинок

Деякі таблиці зроблені таким чином, що потрібно об'єднати декілька клітинок за горизонталлю або вертикаллю.
Таблиця хмарних сервісів
Напишемо розмітку такої таблиці, додавши додаткові клітинки, враховуючи, що «Хмарний сервіс» займе дві клітинки за вертикаллю, а «Використання» - три за горизонталлю.
<table>
<thead>
<tr>
<th>Хмарний сервіс</th>
<th>Використання</th>
<th></th>
<th></th>
</tr>
<tr>
<th></th>
<th>Користувачі</th>
<th>Відвідування</th>
<th>Об`єм</th>
</tr>
</thead>

<tbody>
<tr>
<td>Google</td>
<td>12000</td>
<td>307000</td>
<td>1000 Tb</td>
</tr>
<tr>
<td>Amazon</td>
<td>9000</td>
<td>200500</td>
<td>800 Tb</td>
</tr>
</tbody>
</table>

Зверніть увагу на порожні теги <th>, в кожному рядку повинна бути однакова кількість клітинок, тому «зайві» поки що залишаємо порожніми. В результаті отримаємо наступну таблицю.
Правило рівності кількості клітинок в рядках і стовпчиках не можна скасувати, але можна оминути. Для того щоб розширити клітинку за горизонталлю, використовується атрибут colspan, за вертикаллю - rowspan.
Потрібно визначити групу клітинок для злиття і потім крайній верхній і лівій клітинці групи задати атрибут colspan з кількістю клітинок, які потрібно об'єднати праворуч та/або rowspan - знизу. Після цього обов'язково потрібно видалити вже непотрібні клітинки праворуч та/або знизу.
У нашому завданні клітинка «Хмарний сервіс» повинна займати 2 клітинки за вертикаллю, тому додаємо їй rowspan="2" і видаляємо порожній <th> рядком нижче. Аналогічно з клітинкою «Використання», встановлюємо colspan="3" і видаляємо дві сусідні клітинки праворуч в цьому рядку.
<table>
<thead>
<tr>

<th rowspan="2">Хмарний сервіс</th>

<th colspan="3">Використання</th>

</tr>
<tr>
<th>Користувачі</th>
<th>Відвідування</th>
<th>Об`єм</th>
</tr>
</thead>

<!-- Розмітка tbody -->
</table>

info

Цікаво

Правило рівності кількості клітинок буде візуально порушено, але браузер враховує клітинки в об'єднаних групах, тому все правильно.

Tags
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.