Конспект лекцій з курсу Основи Web–дизайну Теми 5-8 Використання динамічного html, НУДПСУ
« НазадТема 5. ВИКОРИСТАННЯ ДИНАМІЧНОГО HTML5.1. Визначення динамічного HTMLДинамічний HTML (DHTML) це термін, який використовується для позначення HTML-сторінок з динамічно змінюваним змістом. Реалізація DHTML складається із трьох компонентів: безпосередньо HTML, каскадних таблиць стилів (CSS) та мови сценаріїв (JavaScript або VBScript). Вказані компоненти пов’язані між собою об’єктною моделлю документу (Document Object Model - DOM), що по суті є інтерфейсом прикладного програмування (API). Використання DOM додає простій HTML-сторінці нову якість - можливість динамічної зміни свого змісту без перезавантаження. Об’єктна модель документу робить всі елементи сторінки програмними об’єктами. За її допомогою можливо одержати доступ та керувати всім змістом сторінки. Кожен елемент HTML-сторінки доступний як індивідуальний об’єкт. Практично всі події, пов’язані з HTML-сторінкою (натиск на кнопці миші, натиск клавіші клавіатури, тощо) можуть бути перехоплені та оброблені процедурами сценарію. Відзначимо, що на сьогодні всі розповсюджені браузери підтримують CSS та JavaScript, про те різні браузери реалізують власну об’єктну модель документів. Таким чином, сторінки з використанням DHTML можуть по різному відображатись в різних браузерах, що є основним недоліком DHTML. 5.2. Визначення каскадних таблиць стилів.Каскадні таблиці стилів (CSS) - це технологія визначення та з’єднання стилів з HTML-сторінкою. Для керування форматом однієї HTML-сторінки можливо використати декілька таблиць стилів. При перегляді HTML-сторінки браузер по визначеним правилам будує пріоритетність, "каскад", використання цих таблиць. Стиль - це все те, що визначає зовнішній вигляд HTML-сторінки при її відображенні в вікні браузера. За допомогою стилів можливо змінювати більшість властивостей тегів HTML-сторінки. Наприклад для таблиці можна змінити шрифт, колір фону, стиль, товщину та колір меж, видимість рядків та комірок, тощо. Форматування тегу за допомогою стилів дещо нагадує зміну атрибутів тегу, але можливості стилів набагато ширші. Таблиця стилів - це шаблон, який керує форматуванням тегів HTML-сторінки. Концепція таблиці стилів для HTML-сторінки схоже на використання стилів в текстовому редакторові Microsoft Word. Змінити зовнішній вигляд документу Word можливо простою зміною з’єднаних з ним стилів. Таким же чином змінити зовнішній вигляд HTML-сторінки можливо за допомогою зміни з’єднаної з нею таблиці стилів. Наприклад, для відображення тексту всіх абзаців червоним кольором на чорному фоні необхідно в таблиці визначити правило, показане на рис. 5.1. Правило каскадних таблиць стилів складається із селектора та однієї або декількох декларацій. Кожна декларація складається із властивості та її величини, розділених знаком : та закінчується ;. В прикладі, показаному на рис. 5.1 селектором є тег P та визначено дві декларації, що записані в фігурних дужках. Перша декларація color:red; друга background-color: black;. Перша декларація задає колір шрифта (властивість color) як червоний (значення red). Друга декларація задає колір фону (властивість background-color:) як чорний (значення black). Запис декларація може бути реалізований тільки буквами англійського алфавіту та арабськими цифрами і не чуттєвий до регістру. З’єднати HTML-сторінку з таблицею стилів можливо за допомогою: 1. Зв’язування - дозволяє використовувати одну таблицю стилів для форматування декількох HTML-сторінок. При цьому таблиця стилів зберігається в окремому текстовому файлі з розширенням css. Зв’язування реалізується за допомогою тегу link, визначеному в розділі head. Наприклад, визначимо стиль, що задає чорний фон HTML-сторінки. HTML код на сторінці: <head><link rel="stylesheet" type="text/css" href="hi.css"> Правило стилю записане в файлі hi.css: body {background-color: black;} Особливістю запису правила стилю в файлі з розширенням css є те, що тег <style> не використовується. 2. Впровадження - дозволяє задати всі правила таблиці стилів безпосередньо в самій HTML-сторінці. Для цього також використовується тег link, визначений в розділі head: <head><style type="text/css"> hr { width: 120px; }</style> На цій HTML-сторінці всі лінії визначені за допомогою тегу hr будуть мати довжину 120 пунктів. 3. Впровадження в тег документу - дозволяє змінювати форматування конкретних елементів HTML-сторінки. Такий стиль інколи називають інлайновим. Наприклад: <td style="background-color: black; color: red;"> Текст, розміщений в цій комірці, відображається червоним кольором на чорному фоні. </td>. При впровадженні в тег документу запис стилю має деякі особливості: - Селектором є сам тег; - Використовується параметр style, що є в кожному тезі; - Визначення повинні бути в одинарних, або подвійних лапках.
5.3. Особливості запису каскадних таблиць стилівЯкщо для різних селекторів задані однакові декларації, то для зменшення розміру таблиці стилів використовується групування селекторів. Наприклад, якщо для нумерованого та маркірованого списків необхідно визначити розмір шрифта 24 пункта, то можливо це задати одним правилом: ol, ul {font-size: 24pt;} Селектори в цьому випадку розділяються комами. На HTML-сторінці можуть бути елементи, що вбудовані в інші елементи. Якщо для елементів батьків визначені правила стилів, то елементи нащадки можуть успадкувати деякі із цих правил. Наприклад, якщо для нумерованого списку визначено, що текст списку буде червоного кольору: <head><style type="text/css"> ol { color: Red;}</style></head> то текст абзацу, розміщеного в такому списку також буде червоного кольору: <body><ol><li><p>Текст абзацу червоного кольору</p></ol> В деяких випадках необхідно для формально однакових елементів (тегів) застосувати різні стилі. При цьому використовувати в якості селекторів теги, як це було в наведених вище прикладах, не доцільно. В цих випадках для визначення правил стилів, які можливо застосувати для одного, або для всіх елементів HTML-сторінки можливо застосувати класи. Ім’я класу використовується як селектор. Якщо стиль буде застосовуватися тільки для одного тегу, то синтаксис запису правила стилю такий - X.class. Де X - ім’я тегу, а class - ім’я класу. Наприклад, необхідно визначити два правила стилів для нумерованого списку. Правило a повинно визначити нумерований список з шрифтом розміром 12 пунктів, а правило b - з шрифтом розміром 16 пунктів: <head><style type="text/css"> ol.a {font-size: 12pt;} ol.b {font-size: 16pt;}</style> В тілі HTML-сторінки використання цих стилів відбувається так:: <ol class="a"><li> Текст списку відображається шрифтом розміром 12 пунктів </li></ol> <ol class="b"><li> Текст списку відображається шрифтом розміром 16 пунктів </li></ol> Якщо необхідно передбачити можливість застосування стилю для всіх тегів, то синтаксис запису правила стилю - .class. Наприклад, визначимо стиль, що задає червоний колір шрифту: <head><style type="text/css"> .fontcolor {color: red;}</style> Використання цього стилю в тілі HTML-сторінки відбувається таким чином: <ol class="fontcolor"><li>Текст нумерованого списку червоний</li></ol> <ul class="fontcolor"><li>Текст маркірованого списку червоний</li></ul> Ще одним цікавим випадком є застосування контекстних селекторів. Вони застосовуються при необхідності визначення стилів для тегів, що вкладені в інші теги. Контекстний селектор складається із декількох простих селекторів, розділених пробілами: a b c { визначення 1; визначення 2;...}. В якості простих селекторів використовуються імена тегів. Стиль з контекстним селектором застосовується для тегу c тільки в тому випадку, коли цей тег знаходиться між тегами a та b. Наприклад, необхідно щоб відображались червоним кольором тільки ті абзаци, які вкладені в нумеровані списки. В цьому випадку можливо використати стиль: ol P {color: Red;} Альтернативою селектору class є селектор id, який призначений для того, щоб призначити кожному правилу стилю оригінальне ім’я. В цьому випадку вказане для id правило стилю буде застосоване для кожного тегу з тим же id. Якщо стиль передбачено використовувати для всіх тегів, то синтаксис визначення правила стилю селектором id такий: <head><style type="text/css"> #ім’я_id {визначеня1;... } </style> Якщо необхідно передбачити застосування правила стилю тільки для конкретного тегу , то синтаксис запису наступний: <head><style type="text/css"> ім’я_тегу#ім’я_id {визначеня1;... } </style> Для використання такої таблиці стилів в тілі HTML-сторінки необхідно присвоїти атрибуту id, який є в кожному тегу, ім’я визначене в правилі стилів: <ім’я тегу id= ім’я_id> Наприклад, визначимо стиль для відображення будь-якого елементу з id="ar" шрифтом Arial та стиль для відображення абзаців з id="ver" шрифтом Verdana. <head><style type="text/css"> #ar { font-family: Arial; } p#ver { font-family: Verdana; } </style></head> Застосування цих стилів реалізується так: <h1 id="ar">Текст заголовку першого рівня відображається шрифтом Arial </h1> <p id="ver"> Текст абзацу відображається шрифтом Verdana </p> 5.4. Ієрархія стилівПри призначенні стилів HTML-сторінкам та тегам може так статись, що різні декларації призначають різні стильові рішення одним і тим самим тегам. В цьому випадку реалізованим буде те стильове рішення, яке стоїть вище в ієрархії стилів. Більш високим в цій ієрархії вважається те рішення, яке більш безпосередньо відноситься до тегу, якому призначається визначений стиль. Таким чином, ієрархія стилів виглядає наступним чином: інлайнові, впроваджені, зв’язані. 5.5. Властивості форматування елементівЯкщо зображення буде недоступним, то в якості фону рядка буде використано зелений колір. Властивості категорії блок визначають параметри блокових елементів. Найбільш цікавими серед них є властивості, що визначають ширину полів (margin), товщину (border-width), колір (border-color) та стиль (border-style) границь. Наприклад, визначення таблиці подвійними границями червоного кольору, товщиною 5 пунктів та полями в 50 пунктів можливо записати так: <table border="1" style="border-color: red; border-style: double; border-width: 5pt; margin: 50 pt;"> 5.6. Контрольні запитання
Тема 6. ОСНОВИ МОВИ ПРОГРАМУВАННЯ JAVASCRIPT6.1. Загальний огляд мови JavaScriptJavaScript - це мова програмування, що використовується в складі HTML-сторінок для збільшення їх функціональності та можливостей взаємодії з користувачем. JavaScript є однією із складових динамічного HTML. Ця мова програмування була створена фірмами Netscape та Sun Microsystems на базі мови програмування Sun's Java. На сьогодні є декілька версій JavaScript. Однією із найбільш поширених є версія JavaScript 1.3. За допомогою JavaScript на HTML-сторінці можливо зробити те, що не можливо зробити за допомогою стандартних тегів HTML. Код програми JavaScript, розміщується або в середині HTML-сторінки, або в текстовому файлі, що пов’язаний за допомогою спеціальних команд з HTML-сторінкою. Цей код, як правило розміщується в середині тегу HTML та завантажується в браузер разом з кодом HTML-сторінки. Програма JavaScript не може існувати самостійно, тобто без HTML-сторінки. Виконання програми JavaScript відбувається при перегляді HTML-сторінки в браузері, звісно тільки в тому випадку, коли браузер містить інтерпретатор JavaScript. Практично всі сучасні популярні браузери оснащені таким інтерпретатором. Відзначимо, що крім JavaScript на HTML-сторінках можливо використовувати інші мови програмування. Наприклад, VBScript, або JScript, яка є варіантом JavaScript від фірми Microsoft. Але виконання програм VBScript та JScript гарантовано коректне тільки при перегляді HTML-сторінки за допомогою браузеру Microsoft Internet Explorer. Тому в більшості випадків використання JavaScript доцільніше, хоча функціональність програм VBScript та JScript дещо краща. Досить часто програму JavaScript називають скриптом або сценарієм. Скрипти виконуються в результаті того, що відбулась деяка подія, пов’язана з HTML-сторінкою. В багатьох випадках виконання вказаних подій ініціюється діями користувача. Скрипт може бути пов’язаний з HTML-сторінкою двома способами: - За допомогою парного тегу SCRIPT; - Як оброблювач події, що стосується конкретного тегу HTML. Сценарій, вбудований в HTML-сторінку з використанням тегу SCRIPT має наступний формат: <SCRIPT>
// Код програми
</SCRIPT>
Все, що розміщується між тегами <SCRIPT> та </SCRIPT>, інтерпретується як код програми на мові JavaScript. Обсяг вказаного коду не обмежений. Інколи скрипти розміщують в середині HTML-коментарію. Це роблять для того, щоб код JavaScript не розглядався старими браузерами, які не мають інтерпретатора JavaScript. В цьому випадку сценарій має формат: <SCRIPT>
<!--
// Код програми
-->
</SCRIPT>
Тег SCRIPT має декілька необов’язкових параметрів. Найчастіше використовуються параметри language та src. Параметр language дозволяє визначити мову та версію мови сценарію. Параметр src дозволяє задати файл з кодом сценарію. Для пояснення використання параметрів тегу SCRIPT розглянемо задачу. Необхідно для HTML-сторінки hi.htm створити сценарій на мові JavaScript 1.3 для показу на екрані вікна повідомлення з текстом "Привіт!". Відзначимо, що для показу на екрані вікна повідомлення можливо використати функцію alert. Для ілюстрації використання обох параметрів language та src вирішення задачі реалізуємо двома варіантами. Варіант 1. Визначення сценарію безпосередньо на HTML-сторінці hi.htm <html><head> <title>Використання JavaScript</title> </head> <body> <script language="JavaScript1.3"> alert('hi'); </script> </body></html> Варіант 2. Визначення сценарію в файлі a.js, пов’язаному з HTML-сторінкою hi.htm за допомогою параметру src тегу SCRIPT. Код HTML-сторінкою hi.htm: <html><head> <title>Використання JavaScript</title> <script language="JavaScript1.3" src="a.js"> </script> </head><body> </body></html> Програмний код, записаний в файлі a.js: alert('hi'); Результат виконання обох варіантів вирішення задачі однаковий і показаний на рис. 6.1. Змінні та вирази JavaScript можливо використовувати в якості значень параметрів тегів HTML. В цьому випадку елементи JavaScript розміщуються між амперсандом (&) та крапкою з комою (;), але повинні бути обмежені фігурними дужками {} і використовуватись тільки в якості значень параметрів тегів. Наприклад, нехай визначена змінна с і їй присвоєно значення green. Наступний тег буде виводити текст зеленого кольору : <font color="&{c};"> текст зеленого кольору </font> Відзначимо, що мінімальним комплектом програмного забезпеченням для розробки та тестування програм JavaScript є текстовий редактор та браузер з підтримкою JavaScript.
6.2. Синтаксис. Визначення та ініціалізація зміннихСценарій JavaScript являє собою набір операторів, що послідовно інтерпретуються браузером. Оператори можливо розміщувати як в одному, так і в окремих рядках. Якщо оператори розміщені в одному рядку, то між ними необхідно поставити ;. В протилежному випадку ; не обов’язкова. Будь-який оператор можливо розмістити в декількох рядках без символу продовження. Будь-яка послідовність символів, розміщених в одному рядку, якій передує //, розглядається як коментар. Для визначення багаторядкових коментарів використовується конструкція: /* Багаторядковий коментар */ В мові JavaScript рядкові та приписні букви вважаються різними символами. JavaScript використовує змінні для зберігання даних визначеного типу. При цьому JavaScript є мовою з вільним використанням типів. Тобто не обов’язково задавати тип змінної, який залежить від типу даних, що в ній зберігаються. При зміні типу даних автоматично змінюється і тип змінної. JavaScript підтримує чотири простих типи даних. Ілюстрацією цього є табл. 6.1. Для присвоєння змінним значень основних типів використовуються – літерали. Таблиця 6.1 Типи даних JavaScript
Ім’я змінної повинно містити тільки букви латинського алфавіту, символ _, арабські цифри та починатись з букви, або символу підкреслення _. Довжина імені повинна бути менша від 255 символів. Заборонено використовувати імена, що збігаються з ключовими словами JavaScript. Приклади імен: _hello, go, go123. Визначити змінну можливо: - Оператором var, наприклад - var a; - При ініціалізації, за допомогою оператору присвоєння (=), наприклад b=126. Визначення та ініціалізацію змінних можливо реалізувати в будь-якому місці програми. 6.3. Вирази та операториВираз - це комбінація змінних, літералів та операторів, в результаті обчислення яких можливо отримати тільки одне значення, яке може бути числовим, рядковим або булевим. Для реалізації обчислень в JavaScript використовуються арифметичні, рядкові, логічні вирази та декілька типів операторів. Арифметичні вирази - обчислюють число, наприклад а=7+5; Рядкові вирази - обчислюють рядок символів, наприклад "Джон" або "234"; Логічні вирази - обчислюють true (істина) або false (хибна). Оператор присвоювання (=) - присвоює, значення лівому операнду, базуючись на значенні правого операнда. Наприклад для присвоєння змінній а значення числа 5 необхідно записати: а=5 До стандартних арифметичних операторів відносяться - оператори додавання (+), віднімання (-), множення (*), ділення (/), остача від ділення чисел (%), збільшення числової змінної на 1 (++), зменшення числової змінної на 1 (--). Відзначимо, що оператор додавання можна використовувати не тільки для чисел, але й для додавання (контрактації / конкатенації) текстових рядків. Для створення логічних виразів використовуються логічні оператори та оператори порівняння. До логічних операторів відносяться - логічне І (&&), логічне АБО (||), логічне НІ (!). Оператори порівняння не відрізняються від таких операторів в інших мовах програмування. До операторів порівняння відносяться (==, >, >, =<, <=,!=). 6.4. Оператори виборуОператори вибору відносяться до операторів управління призначенням яких є зміна напрямку виконання програми. Крім операторів вибору до операторів управління відносяться: оператори циклу та оператори маніпулювання з об’єктами. Оператори вибору призначені для виконання деяких блоків операторів в залежності від істинності деякого логічного виразу. До операторів вибору відносяться - оператор умови if...else та перемикач switch. Синтаксис оператора умови такий: if (умова) { група операторів 1 . . . . . . . . . } [else] { група операторів 2 . . . . . . . . . } Перша група операторів виконується при умові істинності виразу умова. Необов’язковий блок else визначає другу групу операторів, яка буде виконуватись в випадку хибності умови, заданої в блоці if. В середині групи операторів, що виконується можуть бути використані будь-які інші оператори, в тому числі і інші оператори умови. Це дозволяє створювати групу вкладених операторів умови if та реалізовувати складні алгоритми перевірки. Однак, якщо кількість вкладених операторів if більша ніж три, то програма стає складною для розуміння. В такому випадку доцільно використовувати оператор switch. В цьому операторі обчислюється деякий вираз та порівнюється з значенням, заданим в блоках case. Синтаксис оператора switch такий: switch (вираз) { case значення1: [оператори1] break; case значення2: [оператори2] break; ... default: [оператори] } Якщо значення виразу в блоці switch дорівнює значення1, то виконується група операторів оператори1, якщо дорівнює значення2, то виконується група операторів оператори2 і так далі. Якщо значення виразу не дорівнює ні одному із значень, що задані в блоках case, то обчислюється група операторів блоку default, якщо це блок заданий, інакше виконується вихід із оператору switch. Необов’язковий оператор break, який можливо задавати в кожному із блоків case, виконує безумовний вихід із оператору switch. Якщо він не заданий, то продовжується виконання операторів в наступних блоках case до першого оператору break або до кінця оператору switch. 6.5. Оператори циклуЦикл - це деяка група команд, що повторюється, доки вказана умова не буде виконана. JavaScript 1.3 підтримує дві форми циклу: for та while. Крім того, оператори break та continue, використовуються разом з циклами. Цикл for повторює групу команд, до тих пір, доки вказана умова хибна. Синтаксис оператору for такий: for ([initial-expression]; [condition]; [increment-expression])
{
statements
}
Виконання циклу for проходить в такій послідовності: 1. Вираз initial-expression служить для ініціалізації змінної лічильника. Цей вираз розраховується один раз на початку виконання циклу 2. Вираз condition розраховується на кожній ітерації циклу. Якщо значення виразу condition дорівнює true, виконується група операторів statements в тілі циклу. Якщо значення виразу condition дорівнює false, то цикл forзакінчується. Якщо вираз condition пропущено, то він вважається рівним true. В цьому випадку цикл продовжується до оператора break. 3. Вираз increment-expression використовується для зміни значення змінної лічильника. 4. Розраховується група операторів statements та реалізується перехід на наступну ітерацію циклу, тобто на крок 2. Приклад. Цикл для розрахунку суми цілих чисел від 1 до 100. s=0
for (i=1;i<101;i++) {
s=s+1;
}
З повагою ІЦ “KURSOVIKS”! |