Некоторые атрибуты тега OBJECT. Встроенные функции перетаскивания в HTML5 Как сделать сложный объект html

В демонстрации показан мост между двухмерной графикой в HTML5 и по-настоящему трехмерной (с помощью WebGL). Цель статьи показать, как нарисовать трехмерные объекты с помощью polygonal mesh. Polygonal mesh представляет собой набор вершин, ребер и граней, которые определяет форму многогранных объектов в 3D компьютерной графики и твердотельного моделирования.

Простые трехмерные объекты

Фасад состоит из треугольников, четырехугольников или других простых многоугольников. Чтобы продемонстрировать это, мы подготовили простые трехмерные объекты — куб и многогранные сферы (с переменным числом граней).

Нарисовать трехмерные объекты Шаг 1. HTML

Как обычно (для всех canvas на основе демо) у нас есть очень простая разметка HTML (с одним объектом внутри, canvas):

Каркас 3D объектов в HTML5 Используйте кнопки Вверх / Вниз, чтобы управлять прозрачностью объекта

Извлечение инициализации объекта, смотрите:

//var obj = new cube(); //var obj = new sphere(6); var obj = new sphere(16);

Это означает, что если нам нужно вывести куб — вы должны раскомментировать первую строку, если вы хотите отобразить сферу с 6 граней — нужно выбрать второй вариант.

Шаг 2. JS

Есть три файла JavaScript (main.js, meshes.js и transform.js), мы публикуем два из них, третий (transform.js) содержит только функций вычислений, связанных с вращением, масштабированием и объектов проекта. Итак, давайте рассмотрим код первого JavaScript:

js/meshes.js // Получить случайный цвет function getRandomColor() { var letters = "0123456789ABCDEF".split(""); var color = "#"; for (var i = 0; i < 6; i++) { color += letters; } return color; } // Подготовка объекта function prepareObject(o) { o.colors = new Array(); // Составим норм o.normals = new Array(); for (var i = 0; i < o.faces.length; i++) { o.normals[i] = ; o.colors[i] = getRandomColor(); } // Составим центр: рассчитать максимальные позиции o.center = ; for (var i = 0; i < o.points.length; i++) { o.center += o.points[i]; o.center += o.points[i]; o.center += o.points[i]; } // Составим расстояния o.distances = new Array(); for (var i = 1; i < o.points.length; i++) { o.distances[i] = 0; } // Вычисляем среднее положение центра o.points_number = o.points.length; o.center = o.center / (o.points_number - 1); o.center = o.center / (o.points_number - 1); o.center = o.center / (o.points_number - 1); o.faces_number = o.faces.length; o.axis_x = ; o.axis_y = ; o.axis_z = ; } // Объект куб function cube() { // Подготовим точки и граней куба this.points=[ , , , , , , , , , , ]; this.faces=[ , , , , , , , , , , , , , , , , ]; prepareObject(this); } // Объект сфера function sphere(n) { var delta_angle = 2 * Math.PI / n; // Составим вершины (точек) сферы var vertices = ; for (var j = 0; j < n / 2 - 1; j++) { for (var i = 0; i < n; i++) { vertices = ; vertices = 100 * Math.sin((j + 1) * delta_angle) * Math.cos(i * delta_angle); vertices = 100 * Math.cos((j + 1) * delta_angle); vertices = 100 * Math.sin((j + 1) * delta_angle) * Math.sin(i * delta_angle); } } vertices[(n / 2 - 1) * n] = ; vertices[(n / 2 - 1) * n + 1] = ; vertices[(n / 2 - 1) * n] = 0; vertices[(n / 2 - 1) * n] = 100; vertices[(n / 2 - 1) * n] = 0; vertices[(n / 2 - 1) * n + 1] = 0; vertices[(n / 2 - 1) * n + 1] = -100; vertices[(n / 2 - 1) * n + 1] = 0; this.points = vertices; // Составим первый слой var faces = ; for (var j = 0; j < n / 2 - 2; j++) { for (var i = 0; i < n - 1; i++) { faces = ; faces = ; faces = j * n + i; faces = j * n + i + 1; faces = (j + 1) * n + i + 1; faces = j * n + i; faces = (j + 1) * n + i + 1; faces = (j + 1) * n + i; } faces = ; faces = ; faces = (j + 1) * n - 1; faces = (j + 1) * n; faces = j * n; faces = (j + 1) * n - 1; faces = j * n + n; faces = (j + 2) * n - 1; } for (var i = 0; i < n - 1; i++) { faces = ; faces = ; faces = (n / 2 - 1) * n; faces = i; faces = i + 1; faces = (n / 2 - 1) * n + 1; faces = (n / 2 - 2) * n + i + 1; faces = (n / 2 - 2) * n + i; } faces = ; faces = ; faces = (n / 2 - 1) * n; faces = n - 1; faces = 0; faces = (n / 2 - 1) * n + 1; faces = (n / 2 - 2) * n; faces = (n / 2 - 2) * n + n - 1; this.faces=faces; prepareObject(this); }

В самом начале, мы должны подготовить все точки и фасад наших объектов. Есть 2-ве функции: куб (который генерирует начальные массивы для простого объекта куба) и сферы (для генерации сферы). Гораздо сложнее вычислить все точки и фасады для многогранной сферы. Как только мы получим все эти точки и поверхности, мы должны вычислить другие параметры (например, расстояние, абсолютный центр и три оси).

// Внутренние переменные var canvas, ctx; var vAlpha = 0.5; var vShiftX = vShiftY = 0; var distance = -700; var vMouseSens = 0.05; var iHalfX, iHalfY; // Инициализация function sceneInit() { // Подготовка холста и контекст объектов canvas = document.getElementById("scene"); ctx = canvas.getContext("2d"); iHalfX = canvas.width / 2; iHalfY = canvas.height / 2; // Начальный масштаб и перевод scaleObj(, obj); translateObj([-obj.center, -obj.center, -obj.center],obj); translateObj(, obj); // Подключить обработчику событий document.onkeydown = handleKeydown; canvas.onmousemove = handleMousemove; // Основной цикл setInterval(drawScene, 25); } // Обработчик событий OnKeyDown function handleKeydown(e) { kCode = ((e.which) || (e.keyCode)); switch (kCode) { case 38: vAlpha = (vAlpha = 0.2) ? (vAlpha - 0.1) : vAlpha; break; // Down key } } // Обработчик события OnMouseMove function handleMousemove(e) { var x = e.pageX - canvas.offsetLeft; var y = e.pageY - canvas.offsetTop; if ((x > 0) && (x < canvas.width) && (y > 0) && (y < canvas.height)) { vShiftY = vMouseSens * (x - iHalfX) / iHalfX; vShiftX = vMouseSens * (y - iHalfY) / iHalfY; } } // Рисуем основную функцию function drawScene() { // Очистить холст ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); // Установить цвет заливки, цвет обводки, толщину линии и глобальной альфа- ctx.strokeStyle = "rgb(0,0,0)"; ctx.lineWidth = 0.5; ctx.globalAlpha= vAlpha; // Вертикальный и горизонтальный поворот var vP1x = getRotationPar(, , vShiftX); var vP2x = getRotationPar(, , vShiftX); var vP1y = getRotationPar(, , vShiftY); var vP2y = getRotationPar(, , vShiftY); rotateObj(vP1x, vP2x, obj); rotateObj(vP1y, vP2y, obj); // Пересчитываем расстояния for (var i = 0; i < obj.points_number; i++) { obj.distances[i] = Math.pow(obj.points[i],2) + Math.pow(obj.points[i],2) + Math.pow(obj.points[i], 2); } // Подготовить массив с фасадом треугольников (с расчетом максимальное расстояние для каждой грани) var iCnt = 0; var aFaceTriangles = new Array(); for (var i = 0; i < obj.faces_number; i++) { var max = obj.distances]; for (var f = 1; f < obj.faces[i].length; f++) { if (obj.distances[f]] > max) max = obj.distances[f]]; } aFaceTriangles = {faceVertex:obj.faces[i], faceColor:obj.colors[i], distance:max}; } aFaceTriangles.sort(sortByDistance); // Подготовка массива с прогнозируемым пунктов var aPrjPoints = new Array(); for (var i = 0; i < obj.points.length; i++) { aPrjPoints[i] = project(distance, obj.points[i], iHalfX, iHalfY); } // Нарисовать объект (поверхность) for (var i = 0; i < iCnt; i++) { ctx.fillStyle = aFaceTriangles[i].faceColor; // Начало пути ctx.beginPath(); // Фасад индекс вершины var iFaceVertex = aFaceTriangles[i].faceVertex; // Переместить в исходное положение ctx.moveTo(aPrjPoints, aPrjPoints); // И нарисовать три линии (построить треугольник) for (var z = 1; z < aFaceTriangles[i].faceVertex.length; z++) { ctx.lineTo(aPrjPoints], aPrjPoints]); } // Закрыть путь, и заполнить треугольник ctx.closePath(); ctx.stroke(); ctx.fill(); } } // Функция сортировки function sortByDistance(x, y) { return (y.distance - x.distance); } // Инициализация if (window.attachEvent) { window.attachEvent("onload", sceneInit); } else { if (window.onload) { var curronload = window.onload; var newonload = function() { curronload(); sceneInit(); }; window.onload = newonload; } else { window.onload = sceneInit; } }

Как только страница загружена, мы делаем основную инициализацию (функция sceneInit). Мы создаем canvas и контекст объектов, значит мы выполняем начальный масштаб и переводим наши объекты, которые создали в самом начале (куб или шар). Затем мы придаем обработчикам событий OnKeyDown и OnMouseMove и установим таймер, чтобы сделать нашу основную сцену (функция DrawScene). Не забывайте, что мы можем изменить globalAlpha параметры с нажатием клавиш Вверх/Вниз.

Тег

Тег применяется для вставки в HTML-страницу объектов. Эти объекты используются браузером для обработки различных файлов: изображения, аудио или видеофайлы, флеш-анимация, и т.д. Некоторые типы файлов (допустим, GIF-изображения) браузеры понимают изначально и могут отобразить используя внутренние ресурсы. Но, тем не менее, благодаря тегу можно выбрать каким образом эти файлы будут обрабатываться: самим браузером (если он их понимает) или подключаемой к нему программой, которая будет запущена.

Подключаемыми программами могут быть различные плагины, надстройки и так далее, которые используются в зависимости от типа обрабатываемых данных. В этой роли могут выступать аудио, видео, флеш-плееры, компоненты ActiveX, апплеты и другие программы. Если браузер не может найти нужный плагин-расширение на компьютере пользователя, то загружает его по адресу указанному в теге .

Также, при помощи данного элемента можно внедрять в страницы другие HTML-документы, наподобие тега . Но, в отличие от фреймов, встроенные таким образом документы нельзя заменить другими в процессе работы.

Элементы можно неоднократно вкладывать друг в друга, размещая в них альтернативную информацию, на случай, если объект родительского контейнера браузер не сможет отобразить. Также, внутри них активно используются теги , передающие дополнительные данные.

Кроме этого, тег может не поддерживаться некоторыми браузерами вообще или в отдельных случаях (Помните об этом!), поэтому для подстраховки в него часто вкладывают тег , с подобным содержимым, который размещают перед закрывающим тегом.

При обработке браузеры действуют следующим образом. Сначала они пытаются отобразить объект, используя только информацию открывающего тега и вложенных тегов , если они есть. Затем, если ничего не получилось, они переходят к остальным вложенным тегам и пытаются отобразить их, например, это может быть альтернативный текст или еще один тег , с которым они действуют по такому же принципу и т.д.

Атрибуты

Личные атрибуты:

  • align - Задает положение объекта по отношению к окружающему контексту.
  • archive - Задает список из разделенных запятыми путей к архивам с дополнительными данными, для их «предзагрузки».
  • border - Устанавливает размер рамки вокруг объекта.
  • classid - Указывает класс объекта, используя адрес его местонахождения.
  • codebase - Применяется для установки базового адреса, по которому будут определяться относительные адреса, указанные в classid, data, archive .
  • codetype - Задает тип данных, которые использует объект, определённый атрибутом classid .
  • data - Указывает адрес документа с данными, которые объект будет обрабатывать.
  • declare - Производит только объявление объекта и запись в память его значений, без загрузки файлов данных.
  • height - Переопределяет высоту объекта.
  • hspace - Задает боковые поля от окружающего контекста.
  • standby - Показывает сообщение, пока объект загружается.
  • type - Указывает тип данных, хранящихся по адресу указанному в data .
  • vspace - Поля сверху и снизу от окружающего контекста.
  • width - Переопределяет ширину объекта.
  • accesskey - устанавливает клавишу быстрого доступа для фокусировки на HTML-элементе.
  • class - задает имя класса или классов тега, используемых в CSS (Каскадные таблицы стилей).
  • dir - указывает направление текста внутри элемента.
  • - задает имя идентификатора HTML-тега, который может использоваться в качестве «якоря» или в таблицах стилей.
  • lang - указывает язык, на котором написан текст внутри HTML-элемента.
  • style - необходим для применения встроенных стилей CSS к тегу.
  • tabindex - устанавливает порядок табуляции между элементами (клавиша Tab).
  • title - выводит всплывающую подсказку при наведении курсора мыши на HTML-элемент.
Тип тега

Назначение: объекты .

Модель тега: inline (встроенный, уровня строки). Также его можно размещать в заголовке страницы, внутри . Но только в том случае, если не будет иметь визуально отображаемого содержимого.

Может содержать: block-теги, inline-теги, теги , обычный текст и спецсимволы HTML (мнемоники).

Открывающий тег: необходим. Закрывающий тег: необходим.

Синтаксис содержимое

Пример HTML: применение тега OBJECT

seodon.ru - Применение тега OBJECT Извините, но файл не может быть отображен.

В данном примере теги , подключающие аудио, вложены друг в друга, так как одни браузеры понимают первый вариант, а другие - второй. Для пущей кроссбраузерности можно было добавить еще и , но тогда пример был бы невалидным.

Поддержка версиями HTML
Версия: HTML 4.01 HTML 5 XHTML 1.0 XHTML 1.1
Поддержка: Да Да Да Да
Поддержка браузерами
Браузер: Internet Explorer Google Chrome Mozilla Firefox Opera
Версия: 6.0 и выше 2.0 и выше 2.0 и выше 9.2 и выше 3.1 и выше
Поддержка: Да Да Да Да Да

Семантические элементы HTML5 доступно описывают свой смысл или назначение как для браузеров, так и для веб-разработчиков.
До появления стандарта HTML5 вся разметка страниц осуществлялась преимущественно с помощью элементов , которым присваивали классы class или идентификаторы id для наглядности разметки (например, ). С их помощью в HTML-документе размещали верхние и нижние колонтитулы, боковые панели, навигацию и многое другое.

Стандарт HTML5 предоставил новые элементы для структурирования, группировки контента и разметки текстового содержимого. Новые семантические элементы позволили улучшить структуру веб-страницы, добавив смысловое значение заключенному в них содержимому (было , стало ). Для отображения внешнего вида элементов не задано никаких правил, поэтому элементы можно стилизовать по своему усмотрению. Для всех элементов доступны .

Согласно спецификации HTML5 каждый элемент принадлежит к определенной (ноль или более) категории. Каждая из них группирует элементы со схожими характеристиками. Выделяют следующие общие категории:

  • Мета содержимое
  • Потоковое содержимое
  • Секционное содержимое
  • Заголовочное содержимое
  • Текстовое содержимое
  • Встроенное содержимое
  • Интерактивное содержимое
Описание HTML5-элементов 1. Элемент

Категории контента: потоковое содержимое.
Группирует вводные и навигационные элементы, не является обязательным. Может содержать заголовки, оборачивать содержание раздела страницы, форму поиска или логотип. В HTML-документе может содержаться одновременно несколько элементов и они могут располагаться в любой части страницы.

Site description

Элемент нельзя помещать внутрь элементов , или другого элемента .

2. Элемент

Категории контента:
Предназначен для создания блока навигации веб-страницы или всего веб-сайта, при этом не обязательно должен находиться внутри . На странице может быть несколько элементов . Не заменяет теги

    или , он просто их обрамляет. Не все группы ссылок на странице должны быть обёрнуты , этот элемент предназначен в первую очередь для разделов, которые состоят из главных навигационных блоков.

    В качестве элементов панели навигации можно использовать не только элементы списков:

    ...

    ...

    Также можно добавлять заголовки внутрь элемента:

    ...

    3. Элемент

    Категории контента: потоковое содержимое, секционное содержимое.
    Используется для группировки записей — публикаций, статей, записей блога, комментариев. Представляет собой независимый обособленный блок, предназначенный для многократного использования, как правило, начинается с заголовка. Может дублироваться на других страницах сайта и содержать внутри другие элементы , которые по содержанию имеют близкое отношение к содержанию внешней статьи. Если на странице присутствует только одна статья с заголовком и текстовым содержимым, она не нуждается в обёртке элементом . Элемент рекомендуется использовать только в том случае, если содержимое элемента будет явно указано в схеме документа.

    Spring Comes (and Goes) in Sussex County

    Yesterday I joined the Brooklyn Bird Club for our annual trip to Western New Jersey, specifically Hyper Humus, a relatively recently discovered hot spot.

    But does it count for your life list?

    Seems you can now go bird watching via the Internet. I haven"t been able to test it out yet (20 user limit apparently) but this is certainly cool. Personally, I can"t imagine it replacing actually being out in the field by any small amount.

    « Previous Entries

    4. Элемент

    Категории контента: потоковое содержимое, секционное содержимое.
    Элемент представляет собой универсальный раздел документа. Группирует тематическое содержимое и обычно содержит заголовок. Не является блоком-оберткой, для этих целей уместнее использовать элемент . В качестве содержимого может выступать оглавление, разделы научных публикаций, программа мероприятия. Домашняя страница сайта также может быть поделена на секции — блок вводной информации, новости и контакты. Элемент рекомендуется использовать только в том случае, если содержимое элемента будет явно указано в схеме документа.

    ... ... ...

    внутри

    Можно создавать родительские элементы с вложенными элементами , в которых есть один или несколько элементов . Не все страницы должны быть устроены именно так, но это допустимый способ вложения элементов. Например, основная область контента страницы содержит два блока со статьями разной тематики. Можно сделать на этом акцент, поместив каждую статью одной тематики внутрь элемента

    Заметки о природе ... ... Исторические заметки ... ...

    5. Элемент

    Категории контента: потоковое содержимое, секционное содержимое.
    Группирует содержимое, связанное с окружающим его контентом напрямую, но которое можно счесть отдельным (т.е., удаление этого блока не повлияет на понимание основного содержимого) . Чаще всего элемент позиционируется как боковая колонка (как в книгах) и включает в себя группу элементов: , цифровые данные, цитаты, рекламные блоки, архивные записи. Не подходит для блоков, просто позиционированных в стороне.

    ... ...

    .........

    6. Элемент

    Категории контента: потоковое содержимое.
    Представляет собой нижний колонтитул содержащей его секции или корневого элемента. Обычно содержит информацию об авторе статьи, данные о копирайте и т.д. Если используется как колонтитул всей страницы, содержимое дополняется сведениями об авторских правах, ссылками на условия использования, контактную информацию, ссылками на связанное содержимое и т.п.

    В одном веб-документе может быть несколько элементов . Как каждая страница, так и каждая статья может иметь свой элемент , более того, можно поместить в элемент , чтобы указать источник цитирования.

    ... @2014...

    7. Элемент

    Категории контента: потоковое содержимое.
    Используется для определения контактной информации автора/владельца документа или статьи. Для обозначения автора документа тег размещают внутри элемента , для отображения автора статьи — внутри тега . В браузере обычно отображается курсивом.

    8. Элемент

    Категории контента: потоковое содержимое.
    Элемент представляет основное содержимое документа (содержимое элемента ). Контент, находящийся внутри элемента, должен быть уникальным и не повторяться во всех документах сайта, таких как навигационные ссылки, информация о копирайте, логотипы, формы поиска (в случае, если форма поиска является основной функцией документа).

    Элемент не может быть потомком таких элементов как , , , или .

    Пудель

    О породе Разновидности Внешний вид Характер Copyright © 2016 Моя собака.ру

    9. Элемент

    Категории контента: потоковое содержимое, корневое секционное содержимое.
    Элемент представляет автономный контент (необязательно с заголовком), являющийся самостоятельным элементом основного потока. Элемент может быть перемещен из основного содержимого документа в боковую колонку или приложение, не затрагивая поток документа. С помощью элемента можно добавлять краткие характеристики к иллюстрациям, фотографиям, диаграммам, фрагментам кода и т.д..

    Осенний лес

    Элемент является блочным, по ширине занимает всю ширину блока-контейнера за минусом внешних отступов margin:

    10. Элемент

    Элемент — потомок элемента , не принадлежит ни к одной категории контента. Элемент является блочным, по ширине равен ширине элемента , высота по умолчанию равна 18px .

    11. Элемент

    Категории контента:
    Определяет время (24 часа) или дату по григорианскому календарю с возможным указанием времени и смещения часового пояса. Текст, заключенный в данный тег, не имеет стилевого оформления браузером. Для тега доступен атрибут datetime , в качестве содержимого которого указывается то, что будет видеть пользователь на экране своего компьютера:

    Чтобы дата могла считываться автоматически, она должна быть в формате YYYY-MM-DD . Время, которое также может указываться, задается в формате HH:MM с добавлением разделяющего префикса T (time):

    12. Элемент

    Категории контента: потоковое содержимое, текстовое содержимое.
    Текст, помещенный внутрь тега , выделяется по умолчанию желтым цветом (цвет фона и цвет шрифта в выделенном блоке можно изменить, задав определенные css-стили). С помощью данного тега можно отмечать важное содержимое, а также ключевые слова.

    13. Элемент

    Категории контента: потоковое содержимое, текстовое содержимое.
    Отделяет фрагмент текста, который должен быть изолирован от остального текста для двунаправленного форматирования текста. Используется для текстов, написанных одновременно на языках, читающихся слева направо и справа налево.

    14. Элемент

    Категории контента: потоковое содержимое, текстовое содержимое.
    Одиночный тег, показывает браузеру место, где можно добавить разрыв длинной строки в случае необходимости.

    15. Элементы для описания Восточно-Азиатских символов

    Категории контента: потоковое содержимое, текстовое содержимое.
    Элемент позволяет помечать один и более элементов категории текстовое содержимое с помощью ruby-аннотации. Ruby-аннотация используется в преимущественно в Восточно-Азиатской типографики как руководство по произношению или для включения других характеристик. Элемент может содержать:
    — один и более текстовых узлов или элементов ;
    — один и более элементов , , каждый из которых предшествует или следует непосредственно за элементом .

    Элементы , , и не относятся ни к одной категории контента.

    Элемент определяет вложенный в него текст как базовый компонент аннотации.
    Элемент выводит аннотацию к тексту сверху или снизу над ним.
    Элемент отмечает вложенный в него текст как дополнительную аннотацию.
    Элемент выводит альтернативный текст в случае если браузер не поддерживает элемент .

    Скажем еще несколько слов о регистрации компонентов ActiveX. Обычно Бэйсик самостоятельно регистрирует все ActiveX-компоненты в момент их создания. Регистрация заключается в присвоении ActiveX-компоненту специального уникального идентификатора CLSID и занесении в реестровую базу Windows Registry нескольких записей, характеризующих свойства компонента и его местонахождение. Мы уже немного говорили о регистрации программ в разделах, посвященных СОМ и DCOM. Что касается дистрибуции и распространении разработанных ActiveX-компонентов по локальной сети или Интернет, то это отдельная тема и о ней скажем ниже.

    Рис. 1.11. Использование готового элемента управления ActiveX в браузере

    Размещение управляющих элементов ActiveX на Web-страницах
    Управляющие элементы ActiveX подключаются к HTML-документам с помощью тега , который предложен в одном из рабочих стандартов консорциума W3. Назначение этого тега ( в Netscape Navigator) - интеграция в HTML чужеродных элементов. Вот полный синтаксис тега:

    Некоторые из перечисленных атрибутов аналогичны одноименным атрибутам известного тега , поэтому здесь мы их рассматривать не будем.

    Приведем описание атрибутов, специфических для тега :
    CIASSID=URL
    С помощью этого атрибута указывается идентификатор класса вызываемого управляющего элемента. Каждый OCX-модуль и, следовательно, каждый управляющий элемент ActiveX обязан иметь свой уникальный идентификатор класса. Он обычно обозначается сокращением CLSID и представляет собой довольно длинную цепочку шестнадцатеричных цифр - например, "017C99A0-8637-llCF-A3A9-00A0C9034 920".

    Но почему в синтаксисе этого атрибута стоит "URL"? Дело в том, что тег может использоваться для подключения не только управляющих элементов ActiveX, но и других программных объектов, в том числе и таких, которые распознаются не по "идентификаторам классов", а как-то иначе.
    Чтобы браузер имел дело только с одним синтаксисом, идентификатор CLSID задается по правилам URL: левая часть содержит слово "clsid", а правая - собственно идентификатор класса.
    Пример: CLASSID="clsid:017C99A0-8637-llCF-A3A9-00A0C9034 920"

    CODEBASE=URL
    В этом атрибуте указывается URL-адрес (на этот раз уже настоящий, с приставкой "http:" или "ftp:"). В этом атрибуте можно перечислить несколько URL-адресов - на тот случай, если один из серверов будет почему-либо недоступен.
    Этот же атрибут позволяет указывать для управляющих элементов ActiveX требуемый номер версии.
    Например, если написать CODEBASE="http://activex.microsoft.com/controls/iexplorer/iestock.ocx# Version=4,72,0,1171"
    то попытка получить данный модуль ActiveX из Интернета предпринимается не только в том случае, когда на компьютере пользователя его нет, но и тогда, когда управляющий элемент установлен, но имеет более старый номер версии, чем тот, что указан в атрибуте CODEBASE (В нашем примере требуется версия не старее 4.72.0.1171).

    СОDЕТУРЕ=МIМЕ-тип
    ТYРЕ=МIМЕ-тип
    Эти два необязательных атрибута позволяют указать типы (в терминах стандарта MIME) тех файлов, на которые ссылаются атрибуты CLASSID (атрибут CODETYPE) И DATA (атрибут TYPE). Для управляющих элементов ActiveX атрибут CODETYPE, если он присутствует, должен иметь значение "application/x-oleobject".

    DATA=URL
    С помощью этого атрибута указывается местонахождение файла данных, который может понадобиться для работы данному управляющему элементу. Для некоторых управляющих элементов ActiveX этот атрибут является обязательным. Кроме того, с помощью атрибута DATA можно включать прямо в HTML-файл в закодированном виде сам файл, содержащий управляющий элемент.

    DECLARE
    Обычно этот оператор пустой. Его можно использовать для объявления объекта, когда он не реализуется, а только является параметром другого объекта. При этом в память браузера записывается весь набор атрибутов объекта на тот случай, если их кто-то востребует.

    ID =идентификатор
    Нужен для организации взаимодействия с другими имеющими идентификатор объектами. Кроме того, может использоваться в схеме адресации URL (т. е. может стоять после символа "#" в URL-адресе).
    Можно создать сколько угодно тегов с одним и тем же значением CLASSID, но значения ID у них обязательно должны различаться.

    NAME =идентификатор
    Необязательный атрибут, который можно использовать при подготовке HTML-формы (для этого тег должен находиться внутри пары тегов ... ). Отправляемые данные будут содержать информацию, полученную браузером от объекта.

    SHAPES
    Этот пустой атрибут дает возможность в рамках окна занимаемого объектом на пространстве браузера выделять дополнительные подобласти и маркировать их как дополнительные URL-ссылки (своеобразные hotspots). Координаты этих регионов и URL-адреса ссылок для них указываются с помощью тегов со специальными дополнительными атрибутами, которые должны располагаться между И соответствующим ему .

    Элемент (от англ. object - объект) сообщает браузеру, как загружать и отображать объекты, которые исходно браузер не понимает. Как правило, такие объекты требуют подключения к браузеру специального модуля, который называется плагин, или запуска вспомогательной программы.

    Дополнительно внутрь контейнера можно поместить элемент , который передаёт дополнительные параметры для отображения объекта.

    Синтаксис

    Закрывающий тег

    Обязателен.

    АтрибутыПример

    OBJECT

    Спецификация

    Каждая спецификация проходит несколько стадий одобрения.

    • Recommendation (Рекомендация ) - спецификация одобрена W3C и рекомендована как стандарт.
    • Candidate Recommendation (Возможная рекомендация ) - группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
    • Proposed Recommendation (Предлагаемая рекомендация ) - на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
    • Working Draft (Рабочий проект ) - более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
    • Editor"s draft (Редакторский черновик ) - черновая версия стандарта после внесения правок редакторами проекта.
    • Draft (Черновик спецификации ) - первая черновая версия стандарта.

    Особняком стоит живой стандарт HTML (Living ) - он не придерживается традиционной нумерации версий, поскольку находится в постоянной разработке и обновляется регулярно.