« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга


ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
    Популярное
Глава 20. ПРЕДСТАВЛЕНИЕ. ВВЕДЕНИЕ.

Комплексные числа в .NET

Описание функций C (Си) / C++ - fwrite

Функция lstrlen

Функция GetViewportOrg

Описание функций C (Си) / C++ - clearerr

Что нового Firebird 2.0 с примерами на c# (ADO .Net)

Азбука хорошего разработчика. Книжки для чтения

Особенности хранения сессий PHP в memcached

Эластичные шаблоны




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 197
Пользователей: 1
  • admin

  • Статьи:: Интернет технологии :: Html :: Первый взгляд на HTML 5



    отправить ссылку другу версия для печати  Обсудить на форуме

    Первый взгляд на HTML 5

    Preamble

    В статье рассматриваются новые интересные возможности, которые предоставит пятая версия стандарта HTML. Приводится несколько примеров кода с применением новых тегов, а так же поясняются понятия HTML- и XML-сериализации с описанием преимуществ применения каждой из них.

    Вводная «лирическая» часть текста сокращена, т.к. она во многом пересекается с ранее опубликованным

    обзорным постом об ;HTML 5, в котором был приведен фрагмент интервью того же автора.

    Автор: Лахлан Хант, http://lachy.id.au
    Оригинал: http://www.alistapart.com/articles/previ…
    Перевод: Александр Мусаев, http://paradigm.ru

     

    Введение

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

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

     

    Структура

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

    На иллюстрации приведена типовая разметка страницы с двумя колонками, сделанная с помощью контейнеров div с атрибутами class и id. В ней содержится «шапка», горизонтальный блок навигационных элементов, блок для основного текста страницы, вспомогательная колонка справа от него и нижний колонтитул.

    Элементы div
    Контейнеры div заменяются в нашем примере новыми элементами: header, nav, section, article, aside, и footer. HTML-код при этом принимает следующий вид:

    <body>
      <header>...</header>
      <nav>...</nav>
      <article>
            <section>
                ...
            </section>
      </article>
      <aside>...</aside>
      <footer>...</footer>
    </body>


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

    В следующем примере совместно используются контейнеры section и h1:

    <h1>Level 1</h1>
    <section>
      <h1>Level 2</h1>
      <section>
        <h1>Level 3</h1>
      </section>
    </section>


    Обратите внимание, что для лучшей совместимости с существующими браузерами, помимо h1 так же возможно использование заголовков других уровней (h2-h6).

    Когда предназначения секций страницы может быть автоматически определено по специфичным именам тегов, появляется возможность организации более легкой и эффективной навигации по документу. Например, пользователи смогут одним кликом проматывать оглавление, быстро переходя к содержательной части большого документа, или переходить от одной статьи к следующей. Что самое интересное, при этом становится вовсе необязательным добавление в страницу вспомогательных навигационных ссылок. Код при этом становится менее «захламлен» второстепенными деталями, без которых можно обойтись.
    Элемент head интерпретируется как заголовок секции. Такие контейнеры при необходимости могут содержать не только, собственно, название, но и подзаголовок, историю изменений, ссылку на автора и любую другую информацию, которую логично отнести к заголовочной части.

    <header>
      <h1>A Preview of HTML 5</h1>
      <p class="byline">By Lachlan Hunt</p>
    </header>

    <header>
      <h1>Example Blog</h1>
      <h2>Insert tag line here.</h2>
    </header>


    Элемент footer представляет собой завершающий блок секции, к которой относится (аналог нижнего колонтитула для страницы «бумажного» документа). Такие блоки, как правило, содержат вспомогательную информацию о секции. Например, ссылки на связанные материалы, информацию о правах на копирование и т.д.

    <footer>© 2007 Example Inc.</footer>

    nav предназначен для навигационных ссылок, что полезно как для межстраничных переходов внутри сайта, так и для внутристраничной навигации (для организации оглавления).

    <nav>
      <ul>
        <li><a href="/">Home</a></li>

        <li><a href="/products">Products</a></li>
        <li><a href="/services">Services</a></li>
        <li><a href="/about">About</a></li>

      </ul>
    </nav>


    Контейнер aside используется для вспомогательных материалов, например, для определения дополнительных колонок с второстепенным текстом (сайдбаров).

    <aside>
      <h1>Archives</h1>

      <ul>
        <li><a href="/2007/09/">September 2007</a></li>
        <li><a href="/2007/08/">August 2007</a></li>
        <li><a href="/2007/07/">July 2007</a></li>
      </ul>
    </aside>


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

    <section>
    <h1>Chapter 1: The Period</h1>
    <p>It was the best of times, it was the worst of times,
      it was the age of wisdom, it was the age of foolishness,
      it was the epoch of belief, it was the epoch of incredulity,
      it was the season of Light, it was the season of Darkness,
      ...</p>
    </section>


    (в примере приведена выдержка из «Повести о двух городах» Чарльза Диккенса)

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

    <article id="comment-2">
      <header>
        <h4><a href="#comment-2" rel="bookmark">Comment #2</a>
          by <a href="<a href="http://example.com/&quot;&gt;Jack" title="http://example.com/&amp;quot;&amp;gt;Jack">http://example.com/">Jack</a> O'Niell</a></h4>
        <p><time datetime="2007-08-29T13:58Z">August 29th, 2007 at 13:58</time>
      </header>

      <p>That's another great article!</p>
    </article>


     

    Аудио- и видеоматериалы

    В последние годы аудиозаписи и видеоролики получили широкое распространение в интернете благодаря многочисленным сервисам, облегчающим их публикацию (YouTube, Google Video, MySpace, etc.). Из-за недостатка встроенных возможностей HTML, большинство сайтов, размещающих подобный контент, используют Flash, в качестве вспомогательного средства. Выбор этой технологии обычно обоснован тем, что Flash на данный момент имеет наиболее широкую поддержку среди браузеров, по-сравнению с альтернативными технологиями, с помощью которых можно было бы обеспечить воспроизведение мультимедиа-контента (QuickTime, Windows Media).

    Огромное количество мультимедиа-плееров, написанных на Flash, является подтверждением того, что разработчики чаще всего предпочитают самостоятельно формировать их интерфейс, не смотря на то, что в большинстве случаев пользователям предоставляется одна и та же функциональность (воспроизведение, пауза, перемотка и управление громкостью). Планируется, что в будущем эти функции будут поддерживаться самими браузерами, что обеспечит базовую возможность для встраивания аудио- и видеозаписей в веб-страницы, а так же возможность управлять этими элементами через DOM API.
    С помощью новых тегов video и audio это будет действительно просто. Большая часть функций их API будет совпадать, с одной лишь разницей в ориентации на воспроизведение визуального и невизуального материала.

    У Opera и WebKit уже есть релизы с частичной поддержкой тега video. Уже сейчас можно загрузить экспериментальную версию браузера Opera или последнюю еженочную сборку WebKit для демонстрации работы приведенных ниже примеров кода. Opera имеет поддержку Ogg Theora, а WebKit понимает все форматы, что и QuickTime, включая кодеки сторонних разработчиков.

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

    <video src="video.ogv" controls poster="poster.jpg"
      width="320" height="240">
      <a href="video.ogv">Download movie</a>
    </video>


    Необязательный атрибут poster может быть использован для определения статического изображения, отображаемого в контейнере video до того, как начнется воспроизведение записи. Существуют форматы видео, которые имеют аналогичную встроенную возможность (напрмиер, MPEG4), но использование описанного выше подхода позволяет добиться этой функциональности без привязки к конкретному кодеку.



    Точно таким же образом можно встраивать в документы аудиозаписи с помощью элемента audio. Большинство атрибутов у тегов audio и video совпадают, но у audio по понятным причинам отсутствуют width, height и poster.

    <audio src="music.oga" controls>
      <a href="music.oga">Download song</a>
    </audio>


    В стандарте HTML 5 предусмотрен элемент source для вставки ссылок на аудио- и видеофайлы в нескольких альтернативных форматах, из которых браузер сможет делать выбор наиболее предпочтительного варианта, на основе поддерживаемых им кодеков и указанных в коде типов формата контента. При использовании вложенных тегов source, атрибут src контейнеров audio и video должен быть опущен, в противном же случае, теги source будут проигнорированы.

    <video poster="poster.jpg">
      <source src="video.3gp" type="video/3gpp"
        media="handheld">
      <source src="video.ogv" type="video/ogg;
        codecs="theora, vorbis">
      <source src="video.mp4" type="video/mp4">
    </video>

    <audio>
      <source src="music.oga" type="audio/ogg">
      <source src="music.mp3" type="audio/mpeg">
    </audio>


    Для разработчиков, которые сами желают контролировать функционирование пользовательского интерфейса и обеспечивать лучшее его соответствие общему дизайну страниц, предоставлен специальный API, через который можно управлять процессом воспроизведения. В этом API определены методы play() и pause() (смысл которых понятен из названия), а так же свойство currentTime, которое в следующем примере используется для «перемотки» видеозаписи в начало.

    <video src="video.ogg" id="video"></video>

    <script>
      var video = document.getElementById("video");
    </script>

    <p>
      <button type="button" onclick="video.play();">Play</button>
      <button type="button" onclick="video.pause();">Pause</button>
      <button type="button" onclick="video.currentTime = 0;">
        << Rewind</button>
    </p>


    (похожий пример на opera.com)

    Существует множество других атрибутов и функций API, помимо перечисленных в данной статье. Их подробное описание можно найти в актуальной на данный момент рабочей версии спецификации.

     

    Представление документов

    В отличии от предыдущих версий HTML и XHTML, описанных в терминах их собственного синтаксиса, HTML 5 описывается согласно терминам Document Object Model (DOM). Для внутреннего представления документа браузером используется древовидная структура.

    Ниже приведен простейший пример структуры документа, состоящего из названия страницы, заголовка и одного абзаца текста:

    Такое дерево содержит в себе элемент title в контейнере head, а так же h1 и p в body.

    Основная причина (и преимущество) выбора DOM для определения стандарта HTML 5 состоит в том, что сам язык в таком случае может быть описан независимо от синтаксиса. Существуют два основных типа синтаксиса, согласно которым может быть представлен HTML документ: HTML-сериализация (так же известная как HTML 5) и XML-сериализация (или XHTML 5).
    HTML-сериализация основана на обычном для более ранних версий синтаксисе HTML (созданном на базе SGML). Ее определение ориентировано на лучшее соответствие тому, как в действительности браузеры обрабатываю HTML.

    <!DOCTYPE html>
    <html>
      <head>
        <title>An HTML Document</title>
      </head>

      <body>
        <h1>Example</h1>
        <p>This is an example HTML document.
      </body>
    </html>


    Как и в предыдущих версиях HTML, некоторые теги остаются опциональными, и их наличие автоматически подразумевается.

    XML-сериализация использует XML 1.0 и пространства имен, так же как и XHTML 1.0.

    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>An HTML Document</title>
      </head>

      <body>
        <h1>Example</h1>
        <p>This is an example HTML document.</p>
      </body>

    </html>


    В отличие от предыдущего примера, здесь присутствует атрибут xmlns, а так же закрывающий тег p (чье наличие в контексте XML обязательно). Для определения разницы между сериализациями, браузеры будут использовать значение MIME-типа. Любой документ, определенный как text/html, должен соответствовать требованиям HTML-сериализации. В случае же если MIME-тип имеет значение application/xhtml+xml, должны быть удовлетворены требования XML-сериализации.

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

    Преимущества использования HTML-сериализации:
     
    • Обратная совместимость.
    • Хорошо знакомый синтаксис по предыдущим версиям стандарта HTML.
    • «Мягкие» синтаксические правила, которые прощают мелкие ошибки. Благодаря этому, пользователи с меньшей вероятностью смогут увидеть сообщение от браузера о невозможности отображения документа (даже если ошибки в нем действительно присутствуют).
    • Удобный, лаконичный синтаксис, в котором можно опускать некоторые теги и значения ряда атрибутов.

    Примечание переводчика: многие из перечисленных преимуществ так же являются и недостатками. В частности, снижение жесткости синтаксических правил автоматически провоцирует порождение небрежного, «грязного» кода.

    Преимущества применения XHTML-сериализации:
     
    • Жесткие синтаксические правила XML заставляют писать более качественную разметку, что часто облегчает дальнейшую работу с контентом.
    • Интеграция с другими основанными на XML стандартами (например, SVG и MathML).
    • Совместимость со стандартными средствами обработки XML (часто применяется при обработке и публикации материалов).


     

    Содействие развитию стандарта

    Не смотря на то, что работа над HTML 5 идет семимильными шагами, до ее завершения остается еще немалое количество времени (по сегодняшним оценкам потребуется еще 10-15 лет). В течении этого времени, отзывы со стороны веб-дизайнеров, разработчиков CMS и браузеров, а так же иных специалистов, остаются крайне актуальными для успешного развития проекта. Инициатива всех желающих внести свой вклад в развитие HTML 5 не только приветствуется, но и активно поощряется.

    Вспомогательные материалы и ссылки по теме:
     



    Рубрика: Html




    Вышел MySQL 5.1.30, первый стабильный рели....

    MySQL

    После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:


    Подробнее... | Рубрика: MySQL | Добавлено: 28.11.2008

    Тестирование параллельных программ.

    Тестирование

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


    Подробнее... | Рубрика: Тестирование | Добавлено: 28.11.2008

    Архитектура AMD64 (EM64T).

    Архитектура AMD

    Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.


    Подробнее... | Рубрика: Архитектура AMD | Добавлено: 27.11.2008

    Остальные статьи:

    Платформа 2009. Определяя будущее
    Windows Vista Bridge Sample Library - упра...
    Оптимизация 64-битных программ
    Подгрузка через AJAX HTML-кода, содержащег...
    Обзор нового релиза самой мощной Ajax библ...
    Firebug 1.3 и 1.4 alpha — что нового и инт...
    Релиз Microsoft Silverlight 2.0. Что новог...
    XML документация в C#
    Курсоры в MySQL 5
    Microsoft опубликовала подробности о сесси...
    Microsoft делится подробностями о том, что...
    Тестируем новый javascript от нового брауз...
    MySQL Query Cache
    Использование провайдеров компиляции в As...
    Чего мы ждем от C# 4.0
    Delphi 2009 и C++Builder 2009
    Джоэл Спольски и Джеф Этвуд запустили новы...
    Поиск кода Google /* что нового? */
    10 jQuery скриптов для улучшения интерфейс...
    Генераторы отчетов FastReport 4 и QuickRep...


    Цитата дня (все,добавить):

    Портал фрилансеров

    работа на дому


        Рубрикатор

    Программирование

    C/С++
    Обучение
    Windows API
    XAML
    Моделирование
    Паттерны
    Visual Basic 7 .NET
    WxWidgets
    Функции WinApi
    Функции С++
    Разработка под Mac OS
    Eiffel
    Visual Studio 2008
    UI дизайн
    Алгоритмы
    Конкурсные статьи
    Turbo Pascal
    Visual Studio
    CASE-средства
    Visual Studio 2005
    Без VCL
    Delphi
    Тех. документация
    Тестирование
    Software Testing
    ООП
    TCP/IP
    Google Android
    Windows Installer
    .NET Framework
    Драйвера
    C# C Sharp
    Справка
    Проектирование
    Информ. системы
    Visual Basic
    Assembler
    Оптимизация кода
    Gtk+
    Компоненты
    Реинжиниринг
    Управление проектами
    Extreeme programming
    Lotus Notes
    Алгебраическое проектирование


    Интернет технологии

    PHP
    Perl
    ASP
    WAP
    Cookies
    SSI
    CGI
    Web Servers
    VB Script
    DNS
    CSS
    XML
    Html
    Java Script
    Java2ME
    Firewall
    Flash
    .htaccess
    Apache
    VRML
    Протоколы
    Поисковые системы
    Технология JAVA
    Учебник по PHP
    Учебник по JavaScript
    Учебник по XML
    Java Q&A
    AJAX
    DHTML
    XHTML
    Dreamweaver
    Web 2.0
    Python
    Вебмастеру
    Cisco
    Ruby on Rails
    Silverlight

    Базы данных

    Access
    InterBase
    MySQL
    Oracle
    ADO .NET
    Основы SQL
    Учебник по Access 2002
    MS
    Microsoft FoxPro
    Доступ к данным
    XML в MS SQL Server 2000
    ODBC и MyODBC
    Обучение
    Caché
    DB2
    PostgresSQL
    Sybase
    Теория
    Хранилища данных
    Безопасность
    Реляционные данные
    MySQL и mSQL

    Остальное:

    Разное
    Обзоры книг
    Безопасность
    Графика и дизайн
    Юмор
    Linux
    Фракталы
    Microsoft Axapta
    Многоядерность
    Сети
    Microsoft Office
    Работа
    MS-DOS
    Криптография
    Графика и игроделание
    Новости SDK
    Системы защиты
    Учебник по AutoCad
    CVS
    Windows XP
    Windows Server 2003
    Windows Vista
    Windows 7
    Мероприятия