- •Оглавление
- •Введение Информация о курсе
- •Тенденции веба
- •Переход в веб
- •Введение в html Что такое html?
- •Элементы
- •Атрибуты
- •Базовая структура документа
- •Стандарт xhtml 1.0 Strict
- •Введение в css
- •Правила, свойства, значения
- •Простые селекторы
- •Универсальный селектор
- •Селектор по типу элемента
- •Селектор по id
- •Селектор по class
- •Подключение таблицы стилей к веб-документу
- •Элемент style
- •Атрибут style
- •Работа с цветом
- •Свойство color
- •Миф о «безопасных» цветах
- •Свойство background
- •Background-color — цвет фона
- •Background-image — фоновое изображение
- •Background-repeat — режим повторения изображения
- •Background-attachment — режим прокрутки (прикрепления) изображения
- •Background-position — положение изображения
- •Свойства border-top, border-right, border-bottom, border-left
- •Свойства border-width, border-color, border-style — параметры рамки
- •Собирательное свойство border — рамка
- •Элементы html Области элементов
- •Некоторые текстовые элементы
- •Заголовки
- •Элемент p — абзац
- •Элемент address — адресные данные
- •Атрибут title
- •Оформление гиперссылок
- •Псевдоклассы гиперссылок
- •Элементы dt и dd — главная и подчиненная части списка определений
- •Оформление списков
- •Элемент img — изображение
- •Атрибут src — адрес изображения
- •Атрибут alt — альтернативное описание
- •Атрибут style — оформление изображения
- •Атрибуты colspan и rowspan — объединение ячеек
- •Семантическая верстка и микроформаты
- •Оформление страниц при помощи css Оформление текста
- •Свойство font-family — гарнитура шрифта
- •Семейства шрифтов
- •Свойство font-size — кегль шрифта
- •Свойство font-style — управление наклоном
- •Свойство font-weight — насыщенность шрифта
- •Свойство font — управление шрифтом
- •Свойство text-transform — преобразование регистра
- •Свойство line-height — высота строки
- •Свойство vertical-align — вертикальное выравнивание
- •Вертикальное выравнивание для строчных элементов
- •Вертикальное выравнивание для ячеек таблиц
- •Область элемента
- •Свойство text-indent — управление абзацным отступом
- •Свойство padding — внутренний отступ
- •Свойство margin – внешний отступ
- •Верстка Что такое верстка?
- •С кем взаимодействует верстальщик?
- •Как создается веб-страница?
- •Процесс верстки
- •Пример верстки
- •Глава 6. Введение в JavaScript
- •Что такое JavaScript?
- •Типы данных
- •Переменные
- •Операторы
- •Инструкции
- •Конструкторы
- •Прототипы
- •Возможности расширения
- •Экземпляры и классы
- •Общие методы класса Object
- •Интеграция html и JavaScript
- •Элемент script
- •Интеграция в данные
- •Глава 7. Клиентский JavaScript Формы в html
- •Элемент form — собственно форма
- •Обработчики событий
- •Обработчики событий как атрибуты
- •Обработка событий без внедрения кода через атрибуты
- •Таймеры
- •Объект Location
- •Объект History
- •Объект Window
Возможности расширения
При необходимости можно расширять функциональность стандартных классов или конкретных объектов. К любому стандартному классу можно добавить свой метод, при помощи подобного кода:
String.prototype.extension = function() {return “Hello!”;}
Такая возможность полезна для расширения функциональности иерархии классов в старых браузерах. Просто проверяем, есть ли нужная нам функциональность и добавляем ее при необходимости.
Экземпляры и классы
Бывает необходимость создать методы, доступные для использования без создания экземпляров классов. Для программировавших в C++ достаточно сказать, что это аналог static-методов. Для примера рассмотрим следующий код:
function Rectangle(w, h)
{
this.width = w;
this.height = h;
}
Rectangle.prototype.area = function() { return this.width * this.height; }
Rectangle.max = function(a, b)
{
if (a.area() > b.area()) return a;
else return b;
}
var r1 = new Rectangle(1, 2);
var a = r1.area();
var r2 = new Rectangle(3, 4);
var bigger = Rectangle.max(r1, r2);
Обратите внимание на то, что метод max вызывается через обращение к классу, а не к объекту. Это позволяет обойтись без создания экземпляра класса.
Общие методы класса Object
Есть три полезных метода класса Object, которые бывает нужно перекрывать, чтобы внести особую функциональность для объектов отдельного класса.
-
Метод toString() служит для создания строкового представления объекта. Он автоматически вызывается каждый раз, когда объект необходимо преобразовать в строку. Естественно, он должен возвращать строку.
-
Метод valueOf() вызывается при попытке преобразования объекта к какому-либо элементарному типу данных.
-
Метод compareTo() служит для задания особого процесса сравнения двух объектов. В качестве аргумента он получает объект, с которым необходимо произвести сравнение. Метод должен возвращать числовое значение (обычно одно из традиционного набора: 0, 1, -1), по которому определяется отношение.
Интеграция html и JavaScript
Существует два метода интеграции: интеграция в веб-документ при помощи элемента script и интеграция в данные.
Элемент script
JavaScript-код в самом простом случае можно записывать в качестве содержимого элемента script:
<script><![CDATA[
alert(‘Hello!’);
]]></script>
Данный вариант удобен для встраивания небольшого кода, уникального для веб-документа. Скобки <![CDATA[…]]> рекомендуются для интеграции с XHTML-документами, для защиты от ошибок обработки XML-разметки.
Однако чаще всего скрипты хранятся в отдельных файла и подключаются к веб-документу при помощи того же элемента script:
<script src=“file.js”></script>
Обратите внимание, закрывающий тэг элемента script указывается даже при отсутствии кода в содержании элемента. При подключении внешнего файла любой код в содержании элемента игнорируется.
Обычно почти весь JavaScript-код подключают и записывают в служенной части веб-документа — элементе head. Объявления, сделанные в одном участке документа, доступны во всех последующих.
Интеграция в данные
Для интеграции в данные существует две возможности: обработчики событий и URI-адрес. Для описания обработчика события достаточно записать код в качестве значения соответствующего атрибута. Например, следующий код выводит сообщение при нажатии на кнопку:
<input type=”submit” onclick=”alert(‘Hello!’);” />
В URI-адресе JavaScript-код записывается после признака протокола “javascript:”:
<a href=”javascript: alert(‘hello!’);”>click</a>
На данном методе поострено большинство атак XSS, при которых происходит внедрение кода, например, в адреса гиперссылок или CSS, и последующая передача данных на сторонний сервер.