Html5 спецификация на русском: Обзор HTML5 спецификации
Спецификация W3C или WHATWG — Блог HTML Academy
Есть две спецификации HTML: W3C и WHATWG, какой из них верить? — спрашивают наши зрители Екатерина и Дмитрий. Верьте той, которая больше нравится, но не забывайте сверяться с браузерами. Давайте разберёмся.
Спецификация — это главный источник знаний: как для браузеров, так и для разрабочиков. Браузеры обрабатывают код по спеке, разработчики пишут код по спеке — и у нас всё вместе хорошо работает. Это называется «веб-стандарты» и вы не хотите знать, насколько всё было плохо до их широкого признания.
W3C — это консорциум всемирной сети, такая некоммерческая организация, в рамках которой разрабатывают технологии, на которых работает веб. WHATWG — это независимая рабочая группа по технологиям гипертекстовых веб-приложений, которую собрали в рамках W3C в середине 2000-х. Собрали не просто так, а по делу.
Когда-то в W3C решили отказаться от спецификации HTML 4 и начать разрабатывать XHTML, более строгую, формальную и, как потом стало ясно — слишком оторванную от реальности. В ответ на это собралась WHATWG, в которую вошли представители браузеров. Благодаря этому появилась спецификация HTML 5 со множеством по-настоящему полезных вещей. От XHTML осталась только привычка закрывать теги и кавычить атрибуты.
После выхода HTML 5 из рук WHATWG, спецификация пошла по формальному пути к рекомендации W3C и достигла её в 2014 году. Но по дороге что-то пошло не так и между WHATWG и W3C возникли разногласия. Из-за этого начали появляться различия между версиями. В 2011 году WHATWG вообще отказалась от нумерации HTML и начала разрабатывать спецификацию как живой стандарт, в духе вечнозелёных браузеров.
В итоге, сейчас у нас есть две спецификации: рекомендация HTML 5.1 по W3C и живой стандарт HTML по WHATWG. И у каждой — свои цели: HTML5 делает снимки реальности, нумерует их и выпускает рекомендации. Это отвечает на вопрос разработчиков: что уже есть в браузерах? WHATWG, напротив, старается опередить реальность, предложить что-то новое и предсказать изменения. Это уже ближе к задачам браузеров.
Так в чём же противоречия? Например, W3C рекомендует иметь всего один элемент main на странице, приравнивая его к ARIA-роли main. Это помогает скринридерам находить самое главное на странице. WHATWG допускает main в любом структурном элементе, как главную его часть, на манер header и footer.
<body> <header> <main> <article> <h2> <footer> <footer> <body> <header> <main> <article> <h2> <main> <footer> <footer>
Из спецификации W3C убрали элемент hgroup, объясняя это отсутствием реализаций в браузерах, слабыми примерами использования и потенциальными проблемами. Вместо него рекомендуют обычный header и параграф для подзаголовка. В версии WHATWG элемент hgroup на месте — раз уж добавили, то чего убирать.
<article> <header> <h2>Заголовок</h2> <p>Подзаголовок</p> </header> <p>Текст</p> </article>
Спецификация W3C также приводит расширенные примеры, рекомендации к использованию и развивает семантику элементов. HTML 5 поясняет важность уровней заголовков, рекомендует figcaption вместо атрибута title для картинок, объясняет как использовать alt, осуждает, но разрешает таблицы для раскладки, если есть role=»presentation» и так далее.
Вы наверное уже поняли, что мне версия W3C нравится больше. Прочная связь со спецификациями по доступности, большее количество примеров и недавний переезд на Гитхаб — очень подкупают. По-моему, у WHATWG просто отлично получаются другие спецификации: DOM, Canvas, Fetch, URL и многие другие.
Плохо, что у нас есть две спецификации вместо одной? Да. Так почему не объединить их в одну? М-м, это вряд ли: слишком уж разные подходы к разработке. Но знаете, всё не так плохо: это просто две площадки для дискуссий со своими правилами, куда приходят представители всех браузеров, комитетов и групп, чтобы так или иначе развивать веб. И вы приходите — всё на Гитхабе.
Какой спецификации верить? Слепо — ни одной, ориентируйтесь на реализации в браузерах и на практическую ценность. Если вы о ней не знаете, не значит, что её нет. Выберите ту спеку, которая больше нравится и обращайтесь к ней почаще — они написаны для вас.
Это были HTML Шорты и Вадим Макеев. Задавайте вопросы на нашей странице или в комментариях к видео. На самые интересные мы ответим в следующих выпусках. Пока!
Новые структурные теги HTML5
Которые позволяют четко описывать блоки контента
Джереми Вишузен
Опубликовано 01.02.2012
Что такое HTML5?
HTML5 — это новейшая версия языка Hypertext Markup Language (HTML), представляющая собой наиболее радикальную ревизию этого языка за всю его историю. В этой версии появилось множество новых функций в различных областях. К наиболее значимым из них относятся следующие.
- Встроенные мультимедийные теги для поддержки аудио- и видеоконтента
- Тег Canvas для рисования контента непосредственно в браузере
- «Разумные» формы, позволяющие осуществлять такие операции, как валидация посредством использования требуемого атрибута
Совершенствование квалификационных навыков по данной тематике
Данная статья является частью программы «Путь к знаниям» по совершенствованию квалификационных навыков (Knowledge Path). См. Основы HTML5.
Новый набор структурных элементов (тегов) в HTML5 видоизменяет способы структурирования HTML-документов. Новые структурные теги ориентированы на разделение HTML-документа на логические части. Название каждого структурного тега описывает тип контента, для хранения которого предназначен этот тег. Данная статья посвящена подробному описанию этих новых тегов.
История вопроса
В 1989 году Тим Бернерс-Ли (Tim Berners-Lee) создал первый вариант языка HTML с целью преодоления определенных ограничений, которые имелись у существовавших на тот момент методов доступа к информации в Интернете. На начальном этапе существования Интернета ориентирование в нем было сложной задачей. Контент в Интернете представлял собой совокупность отдельных документов, при этом не существовало простого метода навигации по этим документам. И действительно, пользователь должен был знать точный адрес искомого документа и ввести этот адрес вручную. Для решения этой проблемы Бернерс-Ли создал две технологии: протокол HTTP (Hypertext Transfer Protocol) и язык HTML (Hypertext Markup Language).
HTTP — это служебный протокол, с помощью которого Web-серверы доставляют контент. Посмотрите на адресную строку своего Web-браузера. Если ваш браузер показывает полный URL-адрес, то, скорее всего, этот адрес начинается с символов «http://». Эта часть URL-адреса говорит браузеру, протокол какого типа следует использовать при осуществлении запроса к Web-серверу. Когда Web-сервер получает запрос на какой-либо документ, то в большинстве случаев этот документ представлен в формате HTML или преобразуется в этот формат. Именно HTML-документ присылается в браузер, пославший этот запрос.
HTML — это язык сценариев, который говорит Web-браузеру, каким образом следует представлять контент. Внутри контента могут присутствовать ссылки на другие документы, что обеспечивает удобный для пользователя метод навигации между документами в Интернете.
Такое сочетание технологий HTTP и HTML обеспечивает быстрое и простое ориентирование в Интернет-контенте — для осуществления переходов между документами достаточно нажимать мышью на ссылки в тексте. После создания двух вышеупомянутых технологий Бернерс-Ли основал организацию под названием W3C (World Wide Web Consortium). Организация W3C возглавляла разработку первых четырех версий HTML.
Первоначально назначение Интернета состояло в обслуживании простых текстовых документов. Первые браузеры были ориентированы исключительно на текст (другими словами, они не имели никаких затейливых окон — на экране присутствовал только текст). Даже добавление изображений стало весьма значительным достижением — в момент их первого появления. Сегодня люди выполняют в Интернете множество дел — от отправки посланий по электронной почте до просмотра телевизионных программ. Интернет уже превратился в нечто гораздо большее, чем механизм для транспортировки простых текстовых документов. Новые функции и новые способы использования породили новые трудности и новые задачи, для решения которых язык HTML никогда не предназначался.
Организация W3C попыталась решить проблемы сегодняшнего Интернета с помощью стандарта XHTML 2.0 (Extensible Hypertext Markup Language). Однако этот стандарт не получил широкого распространения и к настоящему времени он фактически заброшен. В 2004 году, когда организация W3C концентрировала свои усилия на стандарте XHMTL 2.0, другая организация под названием WHATWG (Web Hypertext Application Technology Working Group) начала разработку стандарта HTML5, который был принят сообществом гораздо благосклоннее, чем стандарт XHTML 2.0. Организация W3C прекратила работы в области XHTML 2.0 и в настоящее время вместе с WHATWG занимается развитием спецификации HTML5.
Поддерживаемые браузеры
На момент написания данной статьи стандарт HTML5 еще не был выпущен официально. Большая часть контента в Web по-прежнему создается в соответствии со спецификацией HTML 4. Тем не менее, некоторые браузеры поддерживают спецификацию HTML5. Ситуация может оказаться непростой, поскольку каждый из этих браузеров способен поддерживать лишь некоторое подмножество функций HTML5. Перед созданием Web-сайта на базе HTML5 проверьте каждый из целевых браузеров на предмет поддержки функций, которые вы собираетесь использовать на своем сайте.
Обновленная декларация doctype
Вне зависимости от возможностей ваших целевых браузеров вы должны сообщать каждому браузеру, что хотите отображать своей контент с использованием спецификации HTML5. Это можно сделать с помощью декларации doctype
.
Декларация doctype
сообщает браузеру, на какой версии языка разметки написана текущая страница. Она делает это с помощью шаблона DTD (Document Type Definition — определение типа документа). DTD специфицирует правила, используемые языком разметки, благодаря чему браузеры корректно отображают контент.
Концепция doctype-деклараций вполне может сбить с толку. В нынешней спецификации HTML имеется множество деклараций doctype, различия между которыми не вполне очевидны. В таблице 1 показаны доступные на данный момент декларации doctype и их возможности.
Таблица 1. Doctype-декларации и их возможности
Doctype-декларация | Возможности | Пример |
---|---|---|
HTML 4.01 strict | Разрешает использовать все элементы и атрибуты HTML, однако не допускает презентационных тегов, таких как font. Элементы frameset не разрешены. | <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01//EN» «http://www.w3.org/TR/html4/strict.dtd»> |
HTML 4.01 transitional | Аналогична декларации HTML strict, но допускает использование таких тегов, как font. Элементы frameset не разрешены. | <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> |
HTML 4.01 frameset | Аналогична декларации HTML transitional, но разрешает использование элементов frameset. | <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Frameset//EN» «http://www.w3.org/TR/html4/frameset.dtd»> |
XHTML 1.0 strict | Аналогична декларации HTML strict, однако весь контент должен быть представлен в формате XML. Например, каждый открывающий элемент должен иметь соответствующий ему закрывающий элемент. Элементы frameset не разрешены. | <!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Strict//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»> |
XHTML 1.0 transitional | Аналогична декларации HTML transitional, однако весь контент должен быть представлен в формате XML. Элементы frameset не разрешены. | <!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»> |
XHTML 1.0 frameset | Аналогична декларации XHTML transitional, однако разрешает элементы frameset. | <DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Frameset//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd»> |
XHTML 1.1 | Аналогична декларации XHTML strict, плюс предоставляет такие возможности для модулей, как поддержка Ruby для восточно-азиатских языков. | <!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.1//EN» «http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd»> |
К счастью, в спецификации HTML5 декларация doctype существенно упрощена. И действительно, в HTML5 имеется лишь одна такая декларация. Чтобы ваш браузер осуществлял отображение с помощью спецификации HTML5, добавьте декларацию doctype, показанную в листинге 1.
Листинг 1. HTML5-декларация doctype
<!DOCTYPE html>
Декларация должна находиться в самом начале HTML-документа, перед тегом <html>
.
Новые структурные теги
Предпосылка создания новых структурных тегов — желание разделять Web-страницы на логические части с помощью элементов, описательные названия которых соответствуют контенту, который они содержат. С концептуальной точки зрения Web-страницу можно рассматривать как документ. Документы содержат заголовки, нижние колонтитулы, главы и различные другие условные обозначения, разделяющие документы на логические части.
В данном разделе на примере рассматриваются нынешние методы разделения HTML-документа. В последующих разделах статьи мы будем модифицировать первоначальный код с помощью структурных тегов HTML5 и в пошаговом режиме рассмотрим создание логической структуры документа.
Подход HTML 4
Даже если до этого вы создавали лишь простейшие HTML-документы, вы все равно знакомы с тегом div
. В эпоху, предшествовавшую появлению HTML5, тег div
являлся основным механизмом для создания блоков контента в HTML-документе. В качестве примера, в листинге 2 демонстрируется использование тегов div
для создания простой страницы с заголовком, областью контента и нижним колонтитулом.
Листинг 2. Простая HTML-страница, использующая теги div
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title> A Simple HTML Page Using Divs </title> </head> <body> <div>Header</div> <div>Content</div> <div>Footer</div> </body> </html>
Этот подход работает прекрасно; тег div
— это превосходный элемент общего назначения. Тем не менее, без рассмотрения атрибута
у каждого тега div
трудно сказать, какой раздел документа представляет каждый тег div
. Можно приводить доводы в пользу того, что при надлежащем именовании атрибута id
его возможностей как индикатора вполне достаточно, тем не менее, использование атрибутов id
не является обязательным. Существует множество разновидностей атрибута id
, которые могут рассматриваться как одинаково валидные. Сам тег div
не содержит указаний на то, какой тип контента ему было поручено представлять.
Подход HTML5
HTML5 решает эту проблему посредством предоставления набора теглв, которые точнее определяют основные блоки контента, образующего HTML-документ. Вне зависимости от итогового контента, отображаемого Web-страницей, большинство Web-страниц состоит из различных сочетаний типовых разделов и элементов страниц.
Код в листинге 2 создает простую страницу, которая имеет заголовок, область контента и нижний колонтитул. Эти, а также другие разделы и элементы страниц весьма распространены, поэтому спецификация HTML5 содержит теги, которые разбивают документы на типовые разделы и обозначают контент, содержащийся в каждом таком разделе. К числу новых тегов относятся следующие.
Остальная часть статьи посвящена описанию каждого из вышеперечисленных тегов. Кроме того, мы рассмотрим целевое использование этих тегов, для чего будем постепенно видоизменять первоначальный пример кода, созданного на базе тега div (см. листинг 2) с целью поэтапного задействования новых структурных тегов HTML5.
Тег header
предназначен для того, чтобы пометить раздел HTML-страницы как заголовок. В листинге 3 приведен пример кода из листинга 2, но уже с использованием тега header
.
Листинг 3. Добавление тега header
<!DOCTYPE html> <html> <head> <title> A Simple HTML Page </title> </head> <body> <header>Header</header> <div>Content</div> <div>Footer</div> </body> </html>
Элемент doctype в листинге 3 также был изменен — чтобы показать браузеру, что при отображении страницы он должен использовать HTML5. Во всех последующих примерах предполагается, что мы тоже используем корректный элемент doctype.
Тег section
Тег section
предназначен для разбиения контента на существенные блоки. В определенном смысле его применение аналогично разбиению книги на главы. После добавления тега section
к примеру кода мы получаем код, показанный в листинге 4.
Листинг 4. Добавление тега section
<!DOCTYPE html> <html> <head> <title> A Simple HTML Page </title> </head> <body> <header>Header</header> <section> <p> This is an important section of the page. </p> </section> <div>Footer</div> </body> </html>
Тег article
Тег article
обозначает важные разделы контента внутри Web-страницы. Например, в блоге каждый отдельный пост представляет собой значимый фрагмент контента. После добавления тега article
к примеру кода мы получаем код, показанный в листинге 5.
Листинг 5. Добавление тегов article
<!DOCTYPE html> <html> <head> <title> A Simple HTML Page </title> </head> <body> <header>Header</header> <section> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> </article> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> </article> </section> <div>Footer</div> </body> </html>
Тег aside
Тег aside
указывает, что контент, который содержится внутри этого элемента, связан с основным контентом данной страницы, но не является его частью. В определенном смысле его применение аналогично внедрению комментария в тело текста (подобно данному комментарию). Контент в круглых скобках предоставляет дополнительную информацию об элементе, содержащем этот контент. После добавления тега aside
к примеру кода мы получаем код, показанный в листинге 6.
Листинг 6. Добавление тега aside
<!DOCTYPE html> <html> <head> <title> A Simple HTML Page </title> </head> <body> <header>Header</header> <section> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> <aside> <p> This is an aside for the first blog post. </p> </aside> </article> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> </article> </section> <div>Footer</div> </body> </html>
Тег footer
помечает содержащийся в нем контент как нижний колонтитул текущего документа. После добавления тега footer
к примеру кода мы получаем код, показанный в листинге 7.
<!DOCTYPE html> <html> <head> <title> A Simple HTML Page </title> </head> <body> <header>Header</header> <section> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> <aside> <p> This is an aside for the first blog post. </p> </aside> </article> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> </article> </section> <footer>Footer</footer> </body> </html>
К этому моменту все теги div
из исходного примера были заменены структурными тегами HTML5.
Контент, содержащийся в теге nav
, предназначен для навигационных целей. После добавления тега nav
к примеру кода мы получаем код, показанный в листинге 8.
<!DOCTYPE html> <html> <head> <title> A Simple HTML Page </title> </head> <body> <header>Header <nav> <a href='#'>Some Nav Link</a> <a href='#'>Some Other Nav Link</a> <a href='#'>A Third Nav Link</a> </nav> </header> <section> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> <aside> <p> This is an aside for the first blog post. </p> </aside> </article> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> </article> </section> <footer>Footer</footer> </body> </html>
Итоговый вариант примера
В листинге 9 показан результат замены исходных тегов div
новыми структурными тегами HTML5.
Листинг 9. Итоговый вариант примера
<!DOCTYPE html> <html> <head> <title> A Simple HTML Page </title> </head> <body> <header>Header <nav> <a href='#'>Some Nav Link</a> <a href='#'>Some Other Nav Link</a> <a href='#'>A Third Nav Link</a> </nav> </header> <section> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> <aside> <p> This is an aside for the first blog post. </p> </aside> </article> <article> <p> This is an important section of content on the page. Perhaps a blog post. </p> </article> </section> <footer>Footer</footer> </body> </html>
Несмотря на то, что в демонстрационных целях этот пример был максимально упрощен, сравнение исходного примера на базе элементов div
(листинг 2) с результирующим вариантом (листинг 9) наглядно демонстрирует назначение новых структурных тегов.
Заключение
Новые структурные теги HTML5 описывают контент, который они содержат, и помогают разделить документ на логические разделы. Подобно автору, пишущему книгу, автор документа по-прежнему сможет сам решать, когда и где использовать эти новые элементы в своем документе. Хотя два автора, пишущих одну и ту же книгу, могут выбирать разные способы для разбиения этой книги на главы, использование глав по-прежнему является единообразным подходом к разбиению книг на разделы. Аналогично, хотя два автора некоторой Web-страницы вполне могут выбрать разные структуры, новые структурные элементы HTML5 предоставляют разработчикам Web-страниц новые единообразные возможности, которые не обеспечивались прежними тегами div
.
Ресурсы для скачивания
Похожие темы
- Оригинал статьи: New HTML5 structural tags
- Новые элементы в HTML5(developerWorks, август 2007 г.). Дополнительные сведения по структурным элементам HTML5.
- WHATWG: Организация WHATWG — это сообщество, отвечающее за спецификацию HTML5.
- W3C: Организация W3C создала первую спецификацию HTML, а в настоящее время вместе с WHATWG работает над спецификацией HTML5.
- HTML5 (Wikipedia): Дополнительные сведения о HTML5.
- Различия между HTML5 и HTML4 (W3C). Рабочий проект, позволяющий глубже понять различия между HTML 4 и HTML5.
- Первое знакомство с HTML5 (lynda.com): Чем является HTML5 (и чем не является).
— Веб-технологии для разработчиков
HTML-элемент <html>
представляет собой корень (элемент верхнего уровня) HTML-документа, поэтому его так же называют корневым элементом. Все другие элементы должны быть потомками этого элемента (должны находиться внутри него).
Категории контента | Отсутствуют. |
---|---|
Разрешенное содержимое | Один элемент <head> , за которым следует один элемент <body> . |
Пропуск тега | Открывающий тег может быть пропущен, если первое, что находится внутри элемента <html> , не является комментарием.В HTML5 закрывающий тег может быть пропущен. В старых версиях HTML, если сразу за элементом <html> следует комментарий (при наличии элемента <body> ), то закрывающий тег пропускать нельзя. |
Разрешенные родительские элементы | Отсутствуют. Это корневой элемент документа. |
Разрешенные роли ARIA | Отсутствуют. |
DOM-интерфейс | HTMLHtmlElement |
Атрибуты
К этому элементу применимы глобальные атрибуты.
manifest
- Определяет URI файла манифеста, указывающего ресурсы, которые должны быть сохранены в локальном кэше. Смотрите Использование кэша приложений.
version
- Определяет версию HTML DTD (Document Type Definition, больше известное как Doctype), которая управляет текущим документом. Этот атрибут не нужен, потому что он является избыточным, так как есть информация, указываемая в объявлении типа документа.
xmlns
- Определяет пространство имен XHTML-документа. Значение по умолчанию
"http://www.w3.org/1999/xhtml"
. Это требуется при парсинге документов с помощью парсера XML и необязательно для документовtext/html
.
Пример
<!DOCTYPE html> <html lang="en"> <head>...</head> <body>...</body> </html>
Проблемы доступности
Добавление атрибута lang
с допустимым (валидным) идентификатором языка (определены в документе IETF BCP47) в элемент <html>
поможет технологии чтения с экрана правильно определить язык. Идентификатор языка должен описывать язык, который используется большей частью содержимого страницы. Без него программы чтения с экрана, как правило, по умолчанию используют язык операционной системы, который может может стать причиной неправильного произношения.
Добавление валидного атрибута lang
в элемент <html>
также гарантирует, что важные метаданные, содержащиеся в элементе <head>
, например заголовок страницы <title>
, также будут объявлены правильно.
Спецификации
Поддержка браузерами
Таблица совместимости на этой странице генерируется из структурированных данных. Если вы хотите внести свой вклад в эти данные, пожалуйста проверьте https://github.com/mdn/browser-compat-data и отправьте нам «pull request» (предложение изменения кода в чужом репозитории). Update compatibility data on GitHubКомпьютеры | Мобильные | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome для Android | Firefox для Android | Opera для Android | Safari on iOS | Samsung Internet | |
html | Chrome Полная поддержка Да | Edge Полная поддержка 12 | Firefox Полная поддержка Да | IE Полная поддержка Да | Opera Полная поддержка Да | Safari Полная поддержка Да | WebView Android Полная поддержка Да | Chrome Android Полная поддержка Да | Firefox Android Полная поддержка Да | Opera Android Полная поддержка Да | Safari iOS Полная поддержка Да | Samsung Internet Android Полная поддержка Да |
manifest | Chrome Полная поддержка 4 | Edge Полная поддержка 12 | Firefox Полная поддержка 3.5
| IE Полная поддержка 10 | Opera Полная поддержка 10.6 | Safari Полная поддержка 4 | WebView Android Полная поддержка 4 | Chrome Android Полная поддержка 18 | Firefox Android Полная поддержка 4 | Opera Android Полная поддержка 11 | Safari iOS Полная поддержка 3.2 | Samsung Internet Android Полная поддержка 1.0 |
version | Chrome Полная поддержка Да | Edge Полная поддержка 12 | Firefox Полная поддержка Да | IE Полная поддержка Да | Opera Полная поддержка Да | Safari Полная поддержка Да | WebView Android Полная поддержка Да | Chrome Android Полная поддержка Да | Firefox Android Полная поддержка Да | Opera Android Полная поддержка Да | Safari iOS Полная поддержка Да | Samsung Internet Android Полная поддержка Да |
xmlns | Chrome Полная поддержка Да | Edge Полная поддержка 12 | Firefox Полная поддержка Да | IE Полная поддержка Да | Opera Полная поддержка Да | Safari Полная поддержка Да | WebView Android Полная поддержка Да | Chrome Android Полная поддержка Да | Firefox Android Полная поддержка Да | Opera Android Полная поддержка Да | Safari iOS Полная поддержка Да | Samsung Internet Android Полная поддержка Да |
Легенда
- Полная поддержка
- Полная поддержка
- Устаревшая. Не следует использовать в новых веб-сайтах
- Устаревшая. Не следует использовать в новых веб-сайтах
- Смотрите замечания реализации.
- Смотрите замечания реализации.
Смотрите также
- Элемент верхнего уровня MathML:
<math>
- Элемент верхнего уровня SVG:
<svg>
Учебник HTML 5. Статья «Введение»
Язык гипертекстовой разметки HTML (англ. HyperText Markup Language) — является языком разметки документов во Всемирной паутине.
Хочу сразу обратить Ваше внимание, что HTML является языком разметки, а не программирования, как многие ошибочно полагают. Его основная задача создать каркас для описания различных компонентов документа, таких как абзацы, заголовки, списки, таблицы, ссылки на другие страницы и так далее.
HTML документы описываются специальными именами HTML элементов (тегами), каждый тег описывает различное содержание документа. Теги представляют собой команды, которые сообщают браузеру, каким образом отображать веб-страницу (документ).
Цель любого веб-браузера прочитать HTML документ и правильно его отобразить. Браузер не отображает HTML теги, но использует их, чтобы определить, как отображать конкретный документ.
Теги бывают двух видов: парные и одиночные (пустые). У парных HTML-тегов первый тег в паре является начальным (открывающим) тегом, а второй тег является конечным (закрывающим) тегом. Основная функция начального тега заключается в том, чтобы сообщить браузеру где команда начинается, а конечным тегом определить где она заканчивается.
Давайте рассмотрим чем отличаются парные теги от одиночных.
Вид (синтаксис) парного тега:
<тег>Содержание тега</тег>
Обратите внимание, что все теги заключены в угловые скобки < и >, а закрывающий тег всегда должен содержать прямой слеш перед названием тега — </тег>, этим мы сообщаем браузеру, что на этом месте наша «команда» закончена.
Большинство ошибок в верстке (создание структуры HTML кода) у Вас может возникать по той причине, что не указан закрывающий тег или он указан без прямого слеша / . Если не указать прямой слеш, то браузер воспринимает тег как открывающий, а не закрывающий. В том случае если вы вообще не указали закрывающий тег, то браузер не узнает где Ваша команда заканчивается, чтобы её остановить, что может привести к серьезным ошибкам, будьте внимательны. К счастью, современные редакторы HTML кода позволяют быстрее отслеживать ошибки такого рода.
Вид (синтаксис) одиночного тега:
<тег>Содержание
В современном стандарте HTML 5 одиночные теги записываются как и начальные теги у парных тегов (наименование тега помещено в угловые скобки < и >).
Обращаю Ваше внимание, что до выхода современного стандарта одиночные теги требовали наличие прямого слеша перед наименованием тега (записывались по аналогии с закрывающими тегами). Использование прямого слеша в одиночных тегах не будет считаться ошибкой, но в этом и нет необходимости — короче код, быстрей загрузка.
Основное отличие одиночных тегов от парных заключается в том, что одиночные теги не требуют закрывающий тег после содержимого элемента. Они добавляют на страницу одиночные объекты, например, изображение, или производят какое-то одиночное действие, например, такое как перевод строки. В HTML одиночных тегов значительно меньше чем парных, к концу обучения вы будете знать их все.
Хотя в HTML 5 теги не чувствительны к регистру, я рекомендую вам писать их в нижнем регистре. С помощью тегов браузер распознает структуру и значение текста, они сообщают браузеру, какая часть документа является заголовком, где начинается новый абзац, где начинается список, либо размещена таблица, что нужно выделить цветом, что перенести на следующую строку и так далее. Анализируя эту информацию, браузер отображает каждый элемент так, как мы ему это сообщили.
Пример простого HTML документа:
И так, мы с Вами поняли, что HTML — это краеугольный камень, благодаря которому любой браузер пользователя отобразит страницу. Но как выглядит HTML? Давайте рассмотрим простой код, из которого состоит практически любая информационная страница:
<!DOCTYPE html> <html> <head> <title>Название для документа (страницы)</title> </head> <body> <h3>Это заголовок</h3> <p>Это параграф (абзац).</p> </body> </html>
Хочу сразу обратить Ваше внимание на то, что браузеры игнорируют символы табуляции и пробелы в документе (если им явно это не указать, но об этом позднее). Чтобы вам было легче воспринимать HTML код в примерах, теги вложенные в другие теги мы будем отделять табуляцией (как показано в примере) выше.
А теперь детально разберем из чего состоит любая HTML страница:
DOCTYPE это декларация, которая определяет тип документа. Декларация не является тегом HTML это только инструкция для веб-браузера о том, какая версия HTML используется в документе. Декларация !DOCTYPE помогает браузеру отобразить веб-страницу правильно, для этого браузер должен знать, как тип, так и версию документа.
Декларация <!DOCTYPE html> сообщает, что в этом документе используется пятая версия языка гипертекстовой разметки — HTML 5.
Обращаю Ваше внимание на то, что декларация должна указываться самой первой в вашем HTML документе, перед тегом <html>. Декларация <!DOCTYPE> не чувствительна к регистру, но записывать её принято в верхнем регистре.Хронология версий HTML:
Версия | HTML | HTML 2.0 | HTML 3.2 | HTML 4.01 | XHTML | HTML 5 |
---|---|---|---|---|---|---|
Год | 1991 | 1995 | 1997 | 1999 | 2000 | 2014 |
Текст между тегами <html> и </html> сообщает браузеру, что необходимо прочитать документ как программный код, написанный на языке гипертекстовой разметки. Является корневым элементом HTML документа и все остальные элементы должны быть его потомками (вложены в него).
Текст между <head> и </head> содержит информацию о документе (сведения о документе, которые не отображаются пользователю). Внутри этого элемента обязательно должен быть вложен HTML тег <title>.
Текст между <title> и </title> обеспечивает название для документа. Название документа должно содержать важные ключевые слова, чтобы поисковые системы могли включить вашу страницу в результаты поиска (по определенным запросам пользователей).
Текст между <body> и </body> описывает видимое содержимое страницы!
Текст между <h3> и </h3> (англ. heading level 2) описывает заголовок второго уровня. Поисковые системы используют ваши заголовки для индексации структуры и содержания веб-страниц. Поэтому важно использовать заголовки, чтобы показать структуру документа. Как правильно использовать заголовки от первого до шестого уровня на ваших страницах мы рассмотрим далее в учебнике в статье «Базовый HTML».
Текст между <p> и </p> (англ. HTML Paragraph Element) определяет параграф (абзац). Содержание элемента всегда начинается с новой строки.
Ниже показано как отображается вышерассмотренный пример в браузере:
Рис. 1 Пример отображения HTML документа браузером.Обращаю Ваше внимание, что все примеры, которые рассматриваются в учебнике доступны для просмотра в отдельном окне. Желательно, чтобы вы помимо вопросов и задач, которые будут приводится в конце каждой статьи создавали аналогичные (собственные примеры) и эксперементировали с ними. Это позволит Вам максимально быстро изучить и применять рассмотренный материал.
Вопросы и задачи по теме
Перед тем как перейти к изучению следующей темы ответьте, или найдите ответ на следующие вопросы:
- Какая основная задача языка гипертекстовой разметки?
- Какая версия языка HTML сейчас используется?
- Что такое декларация? Какая декларация используется в современном стандарте?
- В какой HTML элемент помещается видимое содержимое документа (страницы)?
НОУ ИНТУИТ | Лекция | Основы HTML. Особенности HTML5
Аннотация: Сущность гипертекста. Развитие стандартов HTML. Уровни HTML. Обзор HTML5.
Любая веб-страница, вне зависимости от контента, стиля оформления, баннеров и прочих элементов внешнего вида, описывается обычным текстом. Практически любой школьник знает, что «за» веб-страницей находится гипертекст, хотя далеко не каждый может сказать, что же это значит.
Сущность гипертекста
Термин «гипертекст» ввел в оборот в 1965 году американец Тед Нельсон. Автор термина понимал под ним «ветвящийся текст, выполняющий действия по запросу». Иначе говоря, текст, содержащий ссылки на другие фрагменты, структурированный как система возможных переходов является гипертекстом.
При этом, если следовать ссылкам и переходам можно получить линейную, традиционную форму представления текстов.
С технической точки зрения система, хранящая информацию в текстовом виде, позволяющая устанавливать связи между хранящимися в ее памяти информационными единицами является гипертекстовой.
Классическим примером гипертекста является энциклопедия, в которой статьи содержат отсылки на материалы этой же энциклопедии.
Гипертекст позволяет представить в явной форме сеть фрагментов или тезисов. Соответственно, благодаря структуризации значительно повышается эффективность процедур поиска определенной информации.
Если обратиться к истории возникновения гипертекста, то общепринятой точкой отсчета является статья Ванневара Буша «As We May Think» опубликованная в 1945 году. В статье было представлено устройство машины Memex, хранящей на микрофильмах информацию (книги, корреспонденцию и т.п.). Для поиска необходимой информации предлагалось использование ассоциативных связей, что фактически является прообразом гипертекстовых систем.
После появления, разработанных Тимом Бернерсом — Ли протокола передачи данных HTTP, системы адресации URL и языка HTML, понятие гипертекста стало неразрывно ассоциироваться с информационными технологиями в общем и глобальной паутиной – в частности.
Развитие стандартов HTML
Определение HTML найти нетрудно, как правило, оно выглядит следующим образом: это язык гипертекстовой разметки.
HTML, в своем первоначальном виде, был основан на языке SGML – Standart Generalized Markup Language (стандартный обобщенный язык разметки).
Основной идеей SGML было создание языка разметки документов не привязанного к определенной аппаратно — программной платформе. Основной принцип SGML – внедрение в текст управляющих конструкций, которые разделяли элементы структуры, но не содержали информации о том, как эти структуры должны отображаться. В отдельный файл выносилась структура, отвечающая за оформление (лист стилей). Таким образом, одна и та же, с точки зрения содержания, информация могла быть представлена в различных видах.
Также отдельно от существующего текста выносился DTD — файл, определяющий тип документа, для гарантии его обработки.
В 1969 году был создан язык, удовлетворяющий описанным выше правилам – GML (Generalized Markup Language). После того, как в 1989 году язык был принят международной организацией по стандартизации (ISO) в качестве международного стандарта, к названию языка добавилась начальная литера S.
Ввиду отсутствия средств, позволяющих отображать информацию в соответствии с SGML разметкой, данный язык не был широко востребован.
Европейский институт физики элементарных частиц (CERN) в 1991 году приступил к разработке первого текстового браузера, поддерживающего гипертекстовую разметку, т.е. способного отображать графику и поддерживающего переходы по ссылкам. Сотрудником института, ведущим данную работу был Тим Бернерс-Ли. В процессе разработки появился язык HTML, во многом схожий с SGML, за исключением структур, позволяющих отображать текст особенным образом (отступы, выделение и т.п.).
Чтобы не повторять многочисленные источники, приведем лишь пару ключевых дат в дальнейшей истории развития HTML: в 1993 году был создан первый браузер с графическим интерфейсом; в 1994 году был основан консорциум W3C.
Если же кратко пробежаться по датам, то получим следующее:
22 декабря 1995 – принят стандарт HTML 2.
1996 – консорциумом W3C принята спецификация CSS1.
14 января 1996 – принят стандарт HTML 3.2.
18 декабря 1997 – принят стандарт HTML 4.0.
24 декабря 1999 – принят стандарт HTML 4.01.
1999 – принята спецификация CSS2.
26 января 2000 – принят стандарт XHTML 1.0.
16 февраля 2007 – принят стандарт XHTML 1.1.
Уровни html
В 1994 году HTML был разбит на уровни. Было выделено 4 уровня:
- Уровень 0: включает в себя заголовки, ссылки, списки.
- Уровень 1: добавляются рисунки и элементы выделения текста.
- Уровень 2: добавляются формы, позволяющие пользователю вводить информацию.
- Уровень 3: добавляются таблицы.
Обзор html 5
Мы не будем детально рассматривать HTML 5, поскольку просто не хочется повторять множество доступных Интернет – источников, укажем лишь основные моменты:
- HTML 5 – это, скорее, новая платформа для создания веб–приложений, нежели стандарт продолжающий традиции предшественников.
- HTML 5 регламентирует взаимодействие с JavaScript посредством объектной модели документа (мы еще вернемся к этому в рамках данного курса).
- HTML 5 поддерживает все элементы HTML 4.
Ключевые термины и определения
Гипертекст – текст, содержащий ссылки на другие фрагменты.
SGML ( Standard Generalized Markup Language — стандартный обобщённый язык разметки документов. Является наследником разработанного в 1969 году в IBM языка GML (Generalized Markup Language),
HTTP — HyperText Transfer Prоtocоl — «протокол передачи гипертекста») —протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов).
HTML – гипертекстовый язык разметки, созданный Тимом Бернерсом-Ли.
Консорциум W3C (World Wide Web Consortium, W3C) — организация, разрабатывающая и внедряющая технологические стандарты для Всемирной паутины, возглавляемая Тимом Джон Бернерс-Ли.
Краткие итоги
Несколько перефразируем известное: «Про HTML немало лекций сложено, мы привели еще одну». Можно еще раз сказать о том, как HTML перевернул нашу жизнь, можно говорить о ценности прикладных научных задач (вспомним о первоначальном предназначении HTML). Но все эти фразы слишком общие, за ними уже практически ничего и не угадывается.
Если взглянуть на историю гипертекста шире, то можно легко увидеть «сегодня» продукт эволюционного развития идеи связи между различными фрагментами информации. В один прекрасный момент технические возможности и развитие старых идей сложились в HTML, немало идей еще только ждет своего часа.
Нашей целью в данной лекции являлась краткая демонстрация пути, пройденного стандартом HTML, поскольку сложно говорить о том, что создается сейчас, не обозрев основ.
Список материалов для самостоятельного изучения
- http://www.lingvolab.chat.ru/library/hypertext.htm
- http://eakolesnikov.narod.ru/MemexVannevarBush.htm
- http://blogerator.ru/page/memex-pim-organizers-chast-1
- http://pyramidin.narod.ru/html401/sgmltut.html
- http://searchsoa.techtarget.com/definition/SGML
- http://zodios.net/htmlcss/istoriya-razvitiya-html.html
- http://webstro.org/content/view/121/41/
Учебник HTML5 (2015 г) » Энциклопедия HTML5
HTML5 — наше настоящее и великое будущее!
Сайт посвящён современному языку разметки — HTML5.
Цель сайта: рассказать вам о HTML5 как можно больше.
Ресурс html-5.ru является одновременно энциклопедией, учебником и справочником по языку HTML5, нежели учебником для начинающих по HTML1. Задача сайта заключается в том, чтобы прояснить:
- Что такое HTML5, в современном веб-строительстве?
- Какие технологии начал поддерживать этот язык?
- Какие новые теги появились в HTML5?
- Чем он отличается от языков HTML4 или XHTML?
- Можно ли уже сейчас использовать HTML5?
- и т.п.
Что такое HTML5?
HTML5 — это новая технология в развитии веб-индустрии, предназначенная для эффективного создания мобильных сайтов и приложений. Рассмотрим для начала основные моменты, которым уделяется внимание при создании спецификации языка HTML5.
Во-первых практически всё что сейчас завязано на создание сайтов, стремится к мобильности (адаптивности), т.е. чтобы любой сайт который вы открываете, вы бы могли прочитать, на любом устройстве будь то, компьютер, ноутбук, планшет или смартфон. В этом вам как раз и помогают такие новые технологии как HTML5, CSS3, современный JavaScript (и его библиотеки) и даже новый тренд в веб-дизайне под название Flat-стиль.
Во-вторых одной из важных составляющих HTML5 является семантика, каждый тег отныне будет обладать своей смысловой нагрузкой, а не просто форматировать тот или иной контент. Программы (например поисковые системы) анализирующие сайт построенный на HTML5, должны будут понимать какие данные заключены между тегами, какова их суть и какова их значимость.
В третьих большое внимание уделяется независимости языка HTML от плагинов. Музыка, видео, анимация, игры, со всем этим скоро можно будет работать не загружая на компьютер и в браузер сторонние программы.
В четвёртых, теперь можно прямо в коде использовать микроразметку и те спецификации которые раньше были частью XML, например можно прямо в коде HTML-документа, использовать спецификацию SVG (которая создаёт различные векторные фигуры).
Какие новые технологии появились в HTML5?
В HTML5 появилось много технологий, которые открывают для вебмастера интересные возможности, вот некоторые из них:
- Элемент (тег) canvas, позволяет создавать векторную графику, анимировать её и даже создавать игры. Цель этой технологии, полностью заменить флеш анимацию на сайте.
- Появились новые технологии по хранению локальных данных, которые могут дать больше возможностей для манипуляций с ними, чем при работе с файлами cookies.
- Появилась возможность определять местоположение пользователя geolocation.
- Как уже упоминалось выше теперь можно смотреть видео и слушать музыку, не подключая сторонние плагины к браузеру.
- Другие технологии.
Чем HTML5 отличается от HTML4 и XHTML?
В HTML5, немного изменилась структура кода HTML-документа, например остался лишь один доктайп <!DOCTYPE html>
, появились новые теги и атрибуты, семантически разделяющие страницу сайта на верхнюю часть, нижнюю, боковую и основной контент.
Многие теги и атрибуты из HTML4, теперь считаются устаревшими. Но при этом HTML5, сохраняет полную совместимость с предыдущими языками разметки HTML3, HTML4 и XHTML.
В спецификации HTML5 наконец-то отметили, как должны взаимодействовать элементы страницы с языком программирования JavaScript, при использовании технологии DOM. Ибо теперь теги в HTML5 считаются полноценными объектами.
В спецификацию HTML5 добавили описание того, как браузеры должны обрабатывать ошибки встречающиеся в HTML-коде (это важно для разработчиков браузеров). До этого у разработчиков браузеров были лишь описания, как браузер должен обрабатывать правильный код не содержащий ошибок.
Можно ли использовать язык HTML5 уже сейчас?
Да можно! Почти все крупные игроки веб-индустрии перешли на HTML5, поскольку этот язык в полной мере является нашим настоящим и будущим. Все современные браузеры поддерживают язык HTML5.
В заключение
Организации W3C и WHATWG, которые разрабатывают HTML5, решили в будущем не давать нумерации новым версиям языка, отныне и в будущем можно говорить просто HTML, без цифровой идентификации. Новые элементы (теги) и технологии (API) которые появятся у языка, будут просто добавляться в уже существующую спецификацию.
1. http://gabdrahimov.ru/html/ — учебник по html для начинающих
Читать далее: Изменения в коде HTML5
Стандарт HTML
Стандарт HTMLУровень жизни — Последнее обновление 11 ноября 2020 г.
Содержание
- 1 Введение
- 2 Общая инфраструктура
- 3 Семантика, структура и API-интерфейсы HTML-документов
- 4 Элементы HTML
- 5 Микроданные
- 6 Взаимодействие с пользователем
- 7 Загрузка веб-страниц
- 8 API веб-приложений
- 9 Связь
- 10 Web worker
- 11 Worklets
- 12 Веб-хранилище
- 13 Синтаксис HTML
- 14 Синтаксис XML
- 15 Отрисовка
- 16 Устаревшие функции
- 17 Рекомендации IANA
- Указатель
- Благодарности
- Права интеллектуальной собственности
Полное содержание
- 1 Введение
- 1.1 Куда подходит эта спецификация?
- 1.2 Это HTML5?
- 1.3 Фон
- 1.4 Аудитория
- 1.5 Область
- 1.6 История
- 1.7 Замечания по дизайну
- 1.7.1 Последовательность выполнения скрипта
- 1.7.2 Соответствие другим спецификациям
- 1.7.3 Расширяемость
- 1.8 Синтаксис HTML и XML
- 1.9 Структура этой спецификации
- 1.9.1 Как читать эту спецификацию
- 1.9.2 Типографические условные обозначения
- 1.10 Краткое введение в HTML
- 1.10.1 Написание безопасных приложений с помощью HTML
- 1.10.2 Распространенные ошибки, которых следует избегать при использовании API-интерфейсов сценариев
- 1.10.3 Как отловить ошибки при написании HTML: валидаторы и средства проверки соответствия
- 1.11 Требования соответствия для авторов
- 1.11.1 Презентационная разметка
- 1.11.2 Синтаксические ошибки
- 1.11.3 Ограничения на модели содержимого и значения атрибутов
- 1.12 Рекомендуемое чтение
- 2 Общая инфраструктура
- 2.1 Терминология
- 2.1.1 Параллелизм
- 2.1.2 Ресурсы
- 2.1.3 Совместимость с XML
- 2.1.4 Деревья DOM
- 2.1.5 Создание сценариев
- 2.1. 6 Плагины
- 2.1.7 Кодировки символов
- 2.1.8 Классы соответствия
- 2.1.9 Зависимости
- 2.1.10 Расширяемость
- 2.1.11 Взаимодействие с XPath и XSLT
- 2.2 Сравнение строк
- 2.3 Функции, управляемые политикой
- 2.4 Общие микросинтаксисы
- 2.4.1 Общие идиомы синтаксического анализатора
- 2.4.2 Логические атрибуты
- 2.4.3 Ключевые слова и перечисляемые атрибуты
- 2.4.4 Числа
- 2.4.4.1 Целые числа со знаком
- 2.4.4.2 Неотрицательные целые числа
- 2.4.4.3 Числа с плавающей запятой
- 2.4.4.4 Проценты и длины
- 2.4.4.5 Ненулевые проценты и длины
- 2.4.4.6 Списки чисел с плавающей запятой
- 2.4.4.7 Списки измерений
- 2.4.5 Даты и время
- 2.4.5.1 Месяцы
- 2.4.5.2 Даты
- 2.4.5.3 Годовые даты
- 2.4.5.4 Время
- 2.4.5.5 Местные даты и время
- 2.4.5.6 Часовые пояса
- 2.4.5.7 Глобальные даты и время
- 2.4.5.8 Недели
- 2.4.5.9 Продолжительность
- 2.4.5.10 Неопределенные моменты времени
- 2.4.6 Цвета
- 2.4.7 Токены, разделенные пробелами
- 2.4.8 Токены, разделенные запятыми
- 2.4.9 Ссылки
- 2.4.10 Медиа-запросы
- 2.5 URL-адреса
- 2.5.1 Терминология
- 2.5.2 Анализ URL-адресов
- 2.5. 3 Динамические изменения базовых URL-адресов
- 2.6 Получение ресурсов
- 2.6.1 Терминология
- 2.6.2 Определение типа ресурса
- 2.6.3 Извлечение кодировок символов из
мета-элементов
- 2.6.4 Атрибуты настроек CORS
- 2.6.5 Атрибуты политики реферера
- 2.6.6 Атрибуты Nonce
- 2.6.7 Атрибуты отложенной загрузки
- 2.7 Общие интерфейсы DOM
- 2.7.1 Отражение атрибутов содержимого в атрибутах IDL
- 2.7. 2 Коллекции
- 2.7.2.1 Интерфейс
HTMLAllCollection
- 2.7.2.1.1 [[Call]] ( thisArgument , argumentsList )
- 2.7.2.2 Интерфейс
HTMLFormControlsCollection
- 2.7.2.1 Интерфейс
- 2.7.3 Интерфейс
DOMStringList
- 2.8 Безопасная передача структурированных данных
- 2.8.1 Сериализуемые объекты
- 2.8.2 Переносимые объекты
- 2.8.3 Structured ( значение , для хранилища [, память ])
- 2.8.4 StructuredSerialize (значение , )
- 2.8.5 StructuredSerializeForStorage (значение , )
- 2.8.6 StructuredDeserialize ( сериализовано , targetRealm [, память ])
- 2.8.7 StructuredSerializeWithTransfer ( значение , transferList )
- 2.8.8 StructuredDeserializeWithTransfer ( serializeWithTransferResult , targetRealm )
- 2.8.9 Выполнение сериализации и перенос из других спецификаций
- 2.1 Терминология
- 3 Семантика, структура и API документов HTML
- 3.1 Документы
- 3.1.1 Объект
Document
- 3.1.2 Интерфейс
DocumentOrShadowRoot
- 3.1.3 Управление метаданными ресурсов
- 3.1.4 Средства доступа к дереву DOM
- 3.1.1 Объект
- 3.2 Элементы
- 3.2.1 Семантика
- 3.2.2 Элементы в DOM
- 3.2.3 Конструкторы HTML-элементов
- 3.2.4 Определения элементов
- 3.2.4.1 Атрибуты
- 3.2.5 Модели содержимого
- 3.2.5.1 Модель содержимого «ничего»
- 3.2.5.2 Типы содержимого
- 3.2.5.2.1 Содержимое метаданных
- 3.2.5.2.2 Содержимое потока
- 3.2.5.2.3 Разделение содержимого
- 3.2.5.2. 4 Заголовок
- 3.2.5.2.5 Фразовое содержимое
- 3.2.5.2.6 Встроенное содержимое
- 3.2.5.2.7 Интерактивное содержимое
- 3.2.5.2.8 Ощущаемое содержимое
- 3.2.5.2.9 Элементы, поддерживающие скрипт
- 3.2.5.3 Модели с прозрачным содержимым
- 3.2.5.4 Абзацы
- 3.2.6 Глобальные атрибуты
- 3.2.6.1 Атрибут
title
- 3.2.6.2
lang
иxml: lang
Атрибуты - 3.2.6.3 Преобразование
в атрибут
- 3.2.6.4 Атрибут
dir
- 3.2.6.5 Атрибут стиля
- 3.2.6.6 Встраивание пользовательских невидимых данных с атрибутами
data- *
- 3.2.6.1 Атрибут
- 3.2.7 Геттер
innerText
и установщик - 3.2.8 Требования, относящиеся к двунаправленному алгоритму
- 3.2.8.1 Критерии соответствия автора для символов форматирования двунаправленного алгоритма
- 3.2.8.2 Критерии соответствия пользовательского агента
- 3.2.9 Требования, связанные с ARIA и доступностью платформы API
- 3.1 Документы
- 4 Элементы HTML
- 4.1 Элемент документа
- 4.1.1 Элемент
html
- 4.1.1 Элемент
- 4.2 Метаданные документа
- 4.2.1 Элемент
head
- 4.2.2 Элемент заголовка
- 4.2.3 Базовый элемент
- 4.2.4 Элемент
link
- 4.2.4.1 Обработка
media
attribute - 4.2.4.2 Обработка атрибута типа
- 4.2.4.3 Выборка и обработка ресурса
из ссылки
Элемент
- 4.2.4.4 Обработка заголовков
Link
- 4.2.4.5 Предоставление пользователям средств перехода по гиперссылкам, созданным с помощью ссылки
- 4.2.4.1 Обработка
- 4.2.5 Мета
- 4.2.5.1 Стандартные имена метаданных
- 4.2.5.2 Другие имена метаданных
- 4.2.5.3 Директивы Pragma
- 4.2.5.4 Указание кодировки символов документа
- 4.2.6 Стиль
элемент
- 4.2. 7 Взаимодействие стилей и скриптов
- 4.2.1 Элемент
- 4.3 секции
- 4.3.1 Корпус
элемент
- 4.3.2 Элемент
article
- 4.3.3 Элемент
section
- 4.3.4 Элемент
nav
- 4.3.5 Помимо
- 4.3.6
h2
,h3
,h4
,h5
,h5
иh6
элементы - 4.3.7 Элемент
hgroup
- 4.3.8 Заголовок
Элемент
- 4.3.9 Нижний колонтитул
, элемент
- 4.3.10 Адрес
, элемент
- 4.3.11 Заголовки и разделы
- 4.3.11.1 Создание контура
- 4.3.11.2 Пример контуров
- 4.3.11.3 Предоставление контуров пользователям
- 4.3.12 Краткое описание использования
- 4.3.12.1 Статья или раздел?
- 4.3.1 Корпус
- 4.4 Группировка содержимого
- 4.4.1 Элемент
p
- 4.4.2 Элемент
hr
- 4.4.3 Элемент
pre
- 4.4.4 Блок цитаты
Элемент
- 4.4.5 Элемент
ol
- 4.4.6 Элемент
ul
- 4.4.7 Элемент меню
- 4.4. 8 Элемент
li
- 4.4.9 Элемент
dl
- 4.4.10 Элемент
dt
- 4.4.11 Элемент
dd
- 4.4.12 Элемент
figure
- 4.4. 13 Элемент
figcaption
- 4.4.14 Основной элемент
- 4.4.15 Элемент
div
- 4.4.1 Элемент
- 4.5 Семантика уровня текста
- 4.5.1 Элемент
a
- 4.5.2 Элемент
em
- 4.5.3 Элемент
strong
- 4.5.4 Элемент
small
- 4.5.5 Элемент
s
- 4.5.6 Элемент
cite
- 4.5.7 Элемент
q
- 4.5.8 Элемент
dfn
- 4.5.9 Элемент
abbr
- 4.5.10 Элемент
ruby
- 4.5.11 Элемент
rt
- 4.5.12 Элемент
rp
- 4.5.13 Элемент
data
- 4.5. 14 Элемент
time
- 4.5.15 Код
Элемент
- 4.5.16 Элемент
var
- 4.5.17 Элемент
samp
- 4.5.18 Элемент
kbd
- 4.5.19 Элементы
sub
иsup
- 4.5.20 Элемент
i
- 4.5.21 Элемент
b
- 4.5.22 Элемент
u
- 4.5.23 Элемент
mark
- 4.5.24 Элемент
bdi
- 4.5.25 Элемент
bdo
- 4.5.26 Элемент
span
- 4.5.27 Элемент
br
- 4.5.28 Элемент
wbr
- 4.5.29 Сводка использования
- 4.5.1 Элемент
- 4.6 Ссылки
- 4.6.1 Введение
- 4.6.2 Связи, созданные
a
иэлементами
элементами - 4.6.3 API для
- 4.6. 4 Переход по гиперссылкам
- 4.6.5 Загрузка ресурсов
- 4.6.5.1 Аудит гиперссылок
- 4.6.6 Типы ссылок
- 4.6.6.1 Тип ссылки «
альтернативный
» - 4.6.6.2 Тип ссылки «
автор
» - 4.6.6.3 Тип ссылки «
закладка
» - 4.6.6.4 Тип ссылки «
канонический
»
- 4.6.6.1 Тип ссылки «
- 4.1 Элемент документа
HTML 5
HTML 5 (или HTML5) - текущая версия HTML. Это пятая основная версия HTML - основного языка Всемирной паутины. Предыдущая версия была HTML 4.01.
HTML5 включает множество элементов, перенесенных из HTML 4.01, а также множество новых элементов.
Вот список тегов / элементов HTML 5.
Когда был запущен HTML5?
Работа над спецификацией HTML 5 началась в 2004 году.
Когда HTML5 стал Рекомендацией?
HTML5 стал Рекомендацией W3C 28 октября 2014 года. Работа над спецификацией HTML 5.1 продолжается, и ожидается, что она станет Рекомендацией в конце 2016 года.
WHATWG HTML Living Standard уже готов на
в том смысле, что это развивающийся стандарт.Он не основывает свой стандарт на каком-либо снимке по времени
, скорее, это постоянная работа.
Объясните, пожалуйста? (W3C против WHATWG)
На самом деле существует две группы, поддерживающие несколько разные спецификации для HTML.
Одна группа, Консорциум World Wide Web (W3C), поддерживает спецификацию HTML5, которая представляет собой «снимок» спецификации в определенный момент времени.
W3C также поддерживает HTML 5.1 Nightly
, который включает модификации спецификации, которые будут выпущены позже (и под новым номером версии - HTML 5.1).
Причина номеров версий в том, что они дают разработчикам и производителям браузеров надежную рекомендацию, на которой они должны основывать свою работу. Они могут быть уверены в том, что после того, как они внедрили функцию, рекомендация не изменится внезапно у них под ногами. Если это действительно изменится, они получат достаточное предупреждение из-за того, что любые обновленные спецификации проходят длительный период проверки (и различные этапы статуса), прежде чем, наконец, стать рекомендацией.
Другая группа, Рабочая группа по технологиям веб-гипертекстовых приложений (WHATWG), поддерживает то, что они называют Living Standard
для HTML. Это стандарт, который постоянно обновляется. Нет номеров версий (т.е. это HTML
, а не HTML5
). Стандарт может (и меняется) регулярно. Причина этого в том, чтобы оставаться актуальными для реализаций браузеров. Это также позволяет избежать проблем с браузерами, реализующими функции из спецификации «моментального снимка», которая потенциально может содержать известные ошибки, проблемы или ограничения.
Различия между HTML5 и уровнем жизни HTML?
К счастью, различия между спецификацией W3C HTML5 и WHATWG HTML Living Standard весьма незначительны (ну, они есть на момент написания). Эти различия со временем будут увеличиваться из-за того, что спецификация HTML5 является «моментальным снимком», а уровень жизни постоянно развивается. При этом черновик HTML 5.1 также развивается и, как правило, остается в некотором роде со стандартом HTML Living Standard.
Какого стандарта / рекомендации мне следует придерживаться как веб-разработчик?
Вам нужно будет решить, какой подход лучше всего подходит для вас и пользователей вашего веб-сайта. Вы можете следовать спецификации W3C, следовать стандарту WHATWG или следовать им обоим. Конечно, вы также можете игнорировать их обоих, если действительно хотите, но это выбор, с которым вам будет комфортно.
HTML5 Википедия
Пятая и текущая версия языка разметки гипертекста
HTML5 - это язык разметки, используемый для структурирования и представления контента во всемирной паутине.Это пятая и последняя основная версия HTML, рекомендованная Консорциумом Всемирной паутины (W3C). Текущая спецификация известна как HTML Living Standard. Он поддерживается консорциумом основных поставщиков браузеров (Apple, Google, Mozilla и Microsoft), Рабочей группой по технологиям веб-гипертекстовых приложений (WHATWG).
HTML5 был впервые выпущен в общедоступной форме 22 января 2008 года, [3] с крупным обновлением и статусом «Рекомендации W3C» в октябре 2014 года. [2] [4] Его цели заключались в улучшении языка с поддержкой новейших мультимедийных и других новых функций; чтобы язык был легко читаемым человеком и постоянно понимаемым компьютерами и устройствами, такими как веб-браузеры, анализаторы и т. д., без жесткости XHTML; и для сохранения обратной совместимости со старым программным обеспечением. HTML5 предназначен для включения не только HTML 4, но также XHTML 1 и DOM Level 2 HTML. [5]
HTML5 включает в себя подробные модели обработки для поощрения более совместимых реализаций; он расширяет, улучшает и рационализирует разметку, доступную для документов, и вводит разметку и интерфейсы прикладного программирования (API) для сложных веб-приложений. [6] По тем же причинам HTML5 также является кандидатом на кроссплатформенные мобильные приложения, поскольку он включает функции, разработанные для устройств с низким энергопотреблением.
Включено много новых синтаксических функций. Чтобы изначально включать и обрабатывать мультимедийный и графический контент, были добавлены новые элементы ,
и , а также была добавлена поддержка содержимого масштабируемой векторной графики (SVG) и MathML для математических формул. добавлен.Чтобы обогатить семантическое содержание документов, новые элементы структуры страницы, такие как
,
,
,
, ,
,
и
добавлены. Были введены новые атрибуты, некоторые элементы и атрибуты были удалены, а другие, такие как
,
и , были изменены, переопределены или стандартизированы.API-интерфейсы и объектная модель документа (DOM) теперь являются фундаментальными частями спецификации HTML5, [6] и HTML5 a
41 Бесплатные книги по HTML и CSS
Коллекция бесплатных книг по HTML и CSS. Скачайте (pdf, epub, mobi) и читайте онлайн. Обновление коллекции за июнь 2018 г. 7 новых книг.
Язык гипертекстовой разметки (HTML) - это стандартный язык разметки для создания веб-страниц и веб-приложений.
Каскадные таблицы стилей (CSS) - это язык таблиц стилей, используемый для описания представления документа, написанного на языке разметки.
- Книги по HTML и CSS
- Книги в формате HTML
- Книги CSS
- Angular JS Книги
- Книги по JavaScript
- Книги Node JS
- Книги на React JS
О книге
Twitter Bootstrap 4 Succinctly
В Twitter Bootstrap 4 В сжатой форме вы узнаете, что изменилось за пять лет с момента выпуска последней версии платформы, и как сразу же найти ей хорошее применение.Узнайте все о сетках, таблицах, кнопках, формах, карточках и многих других инструментах, которые делают проектирование пользовательского интерфейса проще, чем когда-либо прежде.
О книге
W3.CSS Кратко
W3.CSS - это бесплатный CSS-фреймворк без лицензии, который вы можете использовать для создания адаптивных веб-сайтов, которые работают во всех распространенных браузерах и устройствах. W3.CSS небольшая по размеру и проста в изучении, и ее стоит учитывать при выборе фреймворка CSS. В W3.CSS Succinctly Джозеф Бут проведет вас через такие функции, как контейнеры и вспомогательные классы, визуальные элементы и анимацию.
О книге
HTML и CSS - это сложно. Но этого не должно быть.
Дружественное руководство по веб-разработке для начинающих.
Справочник по интерфейсному разработчику, 2017 г. (обложка)Справочник по интерфейсному разработчику, 2017 г.
Это руководство, которое может использовать каждый, чтобы узнать о практике фронтенд-разработки. В нем в общих чертах описывается и обсуждается практика фронтенд-инжиниринга: как этому научиться и какие инструменты используются во время практики в 2017 году.Он специально написан с целью стать профессиональным ресурсом для потенциальных и практикующих в настоящее время интерфейсных разработчиков, которые могут вооружиться учебными материалами и инструментами разработки. Во-вторых, его могут использовать менеджеры, технические директора, инструкторы и хедхантеры, чтобы получить представление о практике фронтенд-разработки. Содержание справочника отдает предпочтение веб-технологиям (HTML, CSS, DOM и JavaScript) и тем решениям, которые непосредственно построены на основе этих открытых технологий.Материалы, на которые ссылаются и обсуждаются в книге, являются либо лучшими в своем классе, либо текущим предложением проблемы. Книгу не следует рассматривать как исчерпывающий очерк всех ресурсов, доступных для фронтенд-разработчика. Ценность книги заключается в кратком, целенаправленном и своевременном изложении ровно настолько категоричной информации, чтобы никого не перегружать по какому-либо конкретному предмету.
Автор: Коди Линдли
Дата: 2017
Bootstrap: Антология SitePoint № 1
Bootstrap: Антология SitePoint - это сборник наиболее полезных и интересных статей о Bootstrap, популярной интерфейсной среде, недавно опубликованной на SitePoint.Bootstrap, которому уже почти пять лет, прочно вошел в набор инструментов многих разработчиков. За это время он превратился из внутреннего инструмента в Twitter в наиболее часто используемую UI / интерфейсную структуру в Интернете, причем более 7 миллионов веб-сайтов используют его в той или иной степени. Эта книга представляет собой сборник статей по Bootstrap, охватывающих широкий круг тем: от повышения доступности Bootstrap до использования Sass для семантического расширения Bootstrap - здесь есть что-то для всех. Новички получат массу знаний, которые помогут им начать этот новый увлекательный путь.Опытные разработчики найдут полезные приемы и советы, которые сделают им жизнь проще. Эта книга предполагает знакомство с HTML, CSS и некоторым JavaScript.
Автор: Sitepoint
Дата: 2016
Как кодировать в HTML5 и CSS3
«Как кодировать в HTML5 и CSS3» - это бесплатная электронная книга о создании веб-сайтов на HTML5 и CSS для абсолютных новичков. Для начала не требуется никакого опыта в IT. Цель этой книги - показать искусство создания веб-сайтов, используя простой язык, полный практических аналогий.Прочитав более 100 страниц, вы познакомитесь с основными концепциями и методами веб-разработки и сможете создать свой первый веб-сайт!
Автор: Дамиан Вильгосик
Дата: 2016
HTML5 и CSS3 для реального мира: 2-е издание
HTML5 и CSS3 для реального мира - это идеальное введение в новейшее поколение технологий веб-разработки. Это простое руководство охватывает все, что вам нужно для начала работы.Вы освоите семантическую разметку, доступную в HTML5, и узнаете, как использовать CSS3 для создания потрясающе выглядящих веб-сайтов, не прибегая к сложным обходным путям.
Автор: Алексис Гольдштейн, Луи Лазарис, Эстель Вейл
Дата: 2015
Маленькая книга рекомендаций по кодированию HTML / CSS
Правильный план может улучшить ваш код, включая ваши HTML-документы и таблицы стилей CSS. Йенс Оливер Мейерт исследует теорию и практику руководств по кодированию и показывает, используя стандарты Google HTML и CSS в качестве конкретного примера, как последовательность и осторожность могут сделать базу кода, которую вы создаете сегодня, намного проще, когда вы или кто-то другой работаете об этом позже.Йенс Оливер Мейерт (Jens Oliver Meiert) - бывший старший разработчик и технический руководитель в Google, Aperto и GMX, где он создавал внутренние инфраструктуры, сочетающие быструю разработку с высококачественным кодом.
Автор: Йенс Оливер Мейерт
Дата: 2015
Маленькая книга по фреймворкам HTML / CSS
Учитывая сегодняшнюю скорость веб-разработки, неудивительно, что доступно так много фреймворков, поскольку они обещают сэкономить время на разработку и дизайн.Но использование неправильной структуры или неправильное использование правильной структуры может быть дорогостоящим. В этой краткой книге представлены высокоуровневые идеи относительно сред веб-разработки, которые управляют кодом HTML и CSS, независимо от того, рассматриваете ли вы внешний вариант или планируете создать свой собственный. Автор Йенс Мейерт описывает различные принципы, методы и практики, которые вы можете использовать, чтобы убедиться, что ваш фреймворк обладает необходимой вам функциональностью, без раздутого кода, который замедлит вашу работу.
Автор: Йенс Оливер Мейерт
Дата: 2015
MarkSheet
Бесплатное руководство по HTML и CSS.
Автор: Джереми Томас
Дата: 2015-2017
Научитесь кодировать HTML и CSS. Разработка и стиль веб-сайтов
Learn to Code HTML & CSS - это простое и исчерпывающее руководство, призванное помочь новичкам в изучении HTML и CSS. Излагая основы, в этом руководстве рассматриваются все общие элементы внешнего дизайна и разработки.
Автор: Шей Хау
Дата: 2014-2017
Научитесь кодировать расширенный HTML и CSS. Разработка и стиль веб-сайтов
Learn to Code Advanced HTML & CSS - это более глубокий взгляд на дизайн и разработку интерфейса, расширяющий то, что описано в руководстве для начинающих. Изучая современную интерфейсную разработку, это руководство знакомит с последними новинками любого дизайнера, который хочет усовершенствовать свои навыки интерфейса.
Автор: Шей Хау
Дата: 2014-2017
Адаптивный веб-дизайн: создание богатого опыта с прогрессивным улучшением
В этой краткой книге Аарон Густафсон описывает истоки прогрессивного улучшения, его философию и механизмы, а также раскрывает бесчисленные практические способы применения принципов прогрессивного улучшения с помощью HTML, CSS и JavaScript.Понимая прогрессивные улучшения и то, как их правильно применять, веб-практики могут создавать опыт, который обслуживает пользователей (а не браузеров), предоставляя им доступ к контенту без технологических ограничений.
Автор: Аарон Густафсон
Дата: 2011
О книге
HTML5 Заметки для профессионалов
Книга «Заметки HTML5 для профессионалов» собрана из документации Stack Overflow, ее содержание написано красивыми людьми из Stack Overflow.
О книге
Поваренная книга HTML5 по построению графиков и визуализации данных
Получите полное представление о захватывающем визуальном мире Canvas и HTML5, используя эту упакованную рецептами книгу рецептов. Научитесь создавать диаграммы и графики, рисовать сложные формы, добавлять интерактивность, работать с картами Google и многое другое.
О книге
HTML5 Canvas Notes для профессионалов
Эта книга HTML5 Canvas Notes для профессионалов собрана из документации по переполнению стека, содержание написано прекрасными людьми из Stack Overflow.
Мышление в HTML (изображение на обложке)Мышление в HTML
Для всех, кто хочет понять Интернет и то, как он работает, HTML является важным местом для начала. Эта бесплатная электронная книга предоставляет вам все необходимое, чтобы разобраться в HTML и начать создавать свои собственные веб-страницы. Изучите, как код HTML структурирует веб-страницу, и используйте и адаптируйте примеры для себя, чтобы начать создавать свои собственные веб-страницы уже сегодня.
Автор: Аравинд Шеной
Дата: 2014
Jump Start HTML5
Все, что вам нужно знать о HTML5, в одном месте! Эта книга - идеальное руководство для знакомства с HTML5 и начала использования его возможностей в своих проектах.
Автор: Тиффани Браун, Керри Баттерс, Сандип Панда
Дата: 2014
HTML 5 Стреляй днем
Изучите (или научите) основам программирования игр с помощью этого бесплатного руководства Phaser.
Автор: Брайан Бибат
Дата: 2014
HTML Canvas. Встроенная интерактивность и анимация для Интернета
Второе издание этой популярной книги знакомит вас с HTML5 Canvas.Узнайте, как рисовать, отображать текст, управлять изображениями и создавать анимацию - и все это в ходе создания нескольких интерактивных веб-игр по всей книге. Эта онлайн-версия HTML5 Canvas включает 53 интерактивных примера и упражнений.
Автор: Стив Фултон и Джефф Фултон
Дата: 2013 год
HTML5 для издателей
HTML5 совершает революцию в Интернете, и теперь он приходит и в вашу программу для чтения электронных книг! HTML5 for Publishers знакомит со всеми современными веб-технологиями, которые могут понадобиться для добавления мультимедийных материалов и интерактивности в содержание вашей электронной книги.
Автор: Сандерс Кляйнфельд
Дата: 2011
HTML Canvas Deep Dive. Путешествие
HTML Canvas Deep Dive - это практическое введение в Canvas. Кодируйте вместе с книгой и играйте с интерактивными примерами. Когда вы закончите читать этот короткий фолиант, у вас появятся навыки создания диаграмм, эффектов, диаграмм и игр, которые будут интегрированы в ваш существующий веб-контент.
Автор: Джош Мариначчи
Дата: 2011
Pro HTML5 Programming. Мощные API-интерфейсы для более насыщенной разработки интернет-приложений
HTML5 уже здесь, и с ним веб-приложения приобрели мощность, легкость, масштабируемость и отзывчивость, как никогда раньше. Из этой книги разработчики узнают, как использовать новейшую передовую веб-технологию HTML5, доступную в самых последних версиях современных браузеров, для создания веб-приложений с беспрецедентной функциональностью, скоростью и отзывчивостью.Эта новая редакция включает основные изменения функциональности WebSockets, отражающие новую спецификацию W3C. В нем также представлены новые главы, посвященные API перетаскивания, а также SVG.
Автор: Питер Любберс
Дата: 2011
HTML5 для веб-дизайнеров
HTML5 не так запутан, как раньше, но все же не так прост. Это скорее эволюционное, чем революционное изменение в продолжающейся истории разметки - и если вы в настоящее время создаете веб-сайты с любой версией HTML, вы уже используете HTML5.Используйте всю мощь этой важной развивающейся спецификации с помощью Джереми Кейта и Рэйчел Эндрю. Освежите синтаксис и обновленные элементы и приготовьтесь к работе с адаптивными изображениями, микроформатами и микроданными. Используя ясные практические примеры, вы быстро освоите все.
Автор: Джереми Кейт
Дата: 2010
Dive Into HTML5
Автор: Марк Пилигрим
Дата: 2010
О книге
Анимация CSS 101
Анимация с использованием CSS может быть сложной задачей, чтобы изучить все сразу.Эта книга дает вам основательное введение в тему, сочетая теорию с практическими занятиями. Вы узнаете, как и зачем использовать анимацию на своих веб-страницах, и, надеюсь, получите вдохновение попробовать ее в своих собственных проектах!
О книге
Заметки CSS для профессионалов
Книга «Заметки CSS для профессионалов» собрана из документации по переполнению стека, содержание написано красивыми людьми из Stack Overflow.
О книге
Основы оптимизации CSS
Вы не уверены в качестве своих таблиц стилей или максимально исчерпали свои возможности? Основы оптимизации CSS охватывают необходимый образ мышления, обсуждают основные методы оптимизации и предоставляют полезные ресурсы для написания более качественного CSS.
О книге
Веб-визуальные эффекты с помощью CSS3
Быстрое удаление различных эффектов CSS с помощью различных комбинаций наиболее распространенных свойств CSS3.
Рекомендации CSS (изображение обложки)Рекомендации CSS
Советы и рекомендации высокого уровня по написанию разумного, управляемого, масштабируемого CSS.
Автор: Гарри Робертс
Дата: 2017
Общие сведения о Flexbox.Все, что вам нужно знать
Изучение Flexbox может быть головной болью. Для большинства людей это не так
поначалу особенно весело. Это заставляет вас переосмыслить, как вы поступали
с макетами в css.
Не волнуйся. Я действительно расскажу вам все, что вам нужно знать. Это
цель этой книги.
Автор: Оханс Эммануэль
Дата: 2016
MaintainableCSS
Пишите CSS, не беспокоясь о том, что слишком усердные уже существующие стили вызовут проблемы.MaintainableCSS - это подход к написанию модульного, масштабируемого и, конечно же, поддерживаемого CSS.
Автор: Адам Сильвер
Дата: 2016
CSS Master
Эта книга покажет вам, как писать более качественный и эффективный CSS, а также использовать преимущества множества новых передовых функций CSS, доступных для интерфейсного разработчика. Вы также научитесь осваивать инструменты, которые улучшат ваш рабочий процесс.
Автор: Тиффани Браун
Дата: 2015
Преобразования в CSS: измените способ дизайна
Представляйте информацию по-новому, преобразовывая элементы CSS в двух- и трехмерном пространстве.Поворачиваете ли вы фотографию, выполняете какие-нибудь интересные фокусы с перспективой или создаете интерфейс, который позволяет отображать информацию на обратной стороне элемента, это практическое руководство покажет вам, как их использовать с большим эффектом.
Короткая и приятная, эта книга представляет собой отрывок из предстоящего четвертого издания CSS: The Definitive Guide. Зачем ждать? Узнайте, как оживить свои веб-страницы прямо сейчас.
Автор: Эрик А. Мейер
Дата: 2015
Enduring CSS
Руководство по написанию таблиц стилей для крупномасштабных, быстро меняющихся и долгоживущих веб-проектов.
Автор: Бен Фрейн
Дата: 2015
CSS3 Succinctly
В CSS3 Кратко автор Питер Шоу дает обзор последних функций, доступных для настраиваемых каскадных таблиц стилей. Вы научитесь стилизовать несколько компонентов HTML-документа, включая цвет, размер, макет, шрифт, положение и многое другое. Также рассматриваются базовая генерация контента, градиенты и вычисления.
Автор: Питер Шоу
Дата: 2015
Learn CSS Layout. Педантичный путь
Автор: Микито Такада
Дата: 2015
Магия CSS
Курс CSS для веб-разработчиков, которые хотят быть волшебниками.
Автор: Адам Шварц
Дата: 2014-2017
Мышление в CSS
Начните использовать CSS и разберитесь с одним из самых фундаментальных, но важных языков веб-дизайна.Используйте эту бесплатную электронную книгу, чтобы узнать, как кодировать и создавать веб-сайты, следуя примерам и советам, чтобы получить доступный, но необходимый опыт обучения.
Автор: Аравинд Шеной
Дата: 2014
Карманное руководство по CSS-анимации
CSS-анимации открывают совершенно новый способ взглянуть на CSS и использовать его для создания творческих движений в Интернете. Это карманное руководство разработано, чтобы помочь вам начать использовать CSS-анимацию в ваших собственных проектах, обеспечивая прочную основу для начала экспериментов и творчества.В этой книге Вал раскрывает основы CSS-анимации, проводит вас через серию примеров и обсуждает практические соображения по работе с браузерами и резервными вариантами. У вас будет все необходимое, чтобы начать играть с CSS-анимацией всего через пару часов.
Автор: Val Head
Дата: 2013 год
Масштабируемая и модульная архитектура для CSS
SMACSS (произносится «попахивает») - это скорее руководство по стилю, чем жесткие рамки.Здесь нет библиотеки, которую можно было бы загрузить или установить. SMACSS - это способ изучить ваш процесс проектирования и способ приспособить эти жесткие рамки к гибкому мыслительному процессу. Это попытка задокументировать последовательный подход к разработке сайта с использованием CSS. И действительно, кто в наши дни не создает сайт с помощью CSS ?!
Автор: Джонатан Снук
Дата: 2012
Спецификация языка ECMAScript - ECMA-262 Edition 5.1
ECMAScript Language Specification - ECMA-262 Edition 5.1Это HTML-рендеринг Ecma-262 Edition 5.1, спецификация языка ECMAScript.
PDF-версия этого документа находится по адресу http://www.ecma-international.org/ecma-262/5.1/ECMA-262.pdf.
Версия PDF является окончательной спецификацией. Любые расхождения между этой версией HTML и версией PDF являются непреднамеренными.
Авторские права © 2011 Ecma International
Этот документ и его возможные переводы могут быть скопированы и предоставлены другим лицам, а производные работы, содержащие комментарии или иным образом объяснить это или помочь в его реализации, могут быть подготовлены, скопированы, опубликованы и распространены полностью или частично, без каких-либо ограничений при условии, что указанное выше уведомление об авторских правах и этот раздел включены во все такие копии и производные произведения.Однако сам этот документ не может быть изменен каким-либо образом, в том числе путем удаления уведомления об авторских правах или ссылки на Ecma International, за исключением случаев, когда это необходимо для целей разработки любого документа или результатов, произведенных Ecma Международный (в этом случае должны соблюдаться правила, применяемые к авторским правам) или по мере необходимости переводить его на языки кроме английского.
Ограниченные разрешения, предоставленные выше, являются бессрочными и не будут отменены Ecma International или ее правопреемниками или назначает.
Этот документ и содержащаяся в нем информация предоставляются на условиях «КАК ЕСТЬ», и ECMA INTERNATIONAL ОТКАЗЫВАЕТСЯ ОТ ВСЕХ ГАРАНТИИ, ЯВНЫЕ ИЛИ ПОДРАЗУМЕВАЕМЫЕ, ВКЛЮЧАЯ, НЕ ОГРАНИЧИВАЯСЬ НИКАКИМИ ГАРАНТИЯМИ, ЧТО ИСПОЛЬЗОВАНИЕ ДАННОЙ ЗДЕСЬ НАРУШАЕТ ЛЮБЫЕ ПРАВА СОБСТВЕННОСТИ ИЛИ ЛЮБЫЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ ИЛИ ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. "
Лицензия на программное обеспечение
Все программное обеспечение, содержащееся в этом документе («Программное обеспечение)», защищено авторским правом и предоставляется на условиях «BSD Лицензия », приведенная ниже.На это программное обеспечение могут распространяться права третьих лиц (права других сторон, кроме Ecma International), включая патентные права, и никакие лицензии на такие права третьих лиц не предоставляются по этой лицензии, даже если заинтересованная третья сторона является членом Ecma International. СМОТРЕТЬ КОДЕКС ПОВЕДЕНИЯ ECMA В ПАТЕНТНЫХ ВОПРОСАХ, ДОСТУПНЫХ НА http://www.ecma-international.org/memento/codeofconduct.htm ДЛЯ ИНФОРМАЦИИ, КАСАЮЩЕЙСЯ ЛИЦЕНЗИРОВАНИЯ ПАТЕНТНЫХ ПРЕТЕНЗИЙ, КОТОРЫЕ ТРЕБУЕТСЯ ВНЕДРЕНИЕ МЕЖДУНАРОДНЫХ СТАНДАРТОВ ECMA *.
Распространение и использование в исходной и двоичной формах, с модификациями или без них, разрешены при условии, что следующие выполнены условия:
1. При повторном распространении исходного кода должно сохраняться указанное выше уведомление об авторских правах, этот список условий и следующие отказ от ответственности.
2. При повторном распространении в двоичной форме должно воспроизводиться указанное выше уведомление об авторских правах, этот список условий и следующие отказ от ответственности в документации и / или других материалах, поставляемых с распространением.
3. Ни имя авторов, ни Ecma International не могут использоваться для поддержки или продвижения продуктов, полученных из этого программное обеспечение без специального предварительного письменного разрешения.
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ECMA INTERNATIONAL "КАК ЕСТЬ" И ЛЮБЫМИ ЯВНЫМИ ИЛИ ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИЯМИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЕМЫЕ ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ ОТКАЗЫВАЮТСЯ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ECMA INTERNATIONAL НЕСЕТ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБЫЕ ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ПРИМЕРНЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧЕНИЕ ЗАКУПКИ ТОВАРОВ ИЛИ УСЛУГ ЗАМЕНЫ; ПОТЕРЯ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ; ИЛИ ПЕРЕРЫВ В ДЕЯТЕЛЬНОСТИ) ОДНАКО ПРИЧИНА И ПО ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, ЛИБО ПО КОНТРАКТУ, СТРОГОЙ ОТВЕТСТВЕННОСТИ ИЛИ ПЕРЕДАЧИ (ВКЛЮЧАЯ НЕБРЕЖНОСТЬ ИЛИ ИНОЕ), ВОЗНИКАЮЩИЙ В ЛЮБЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ДАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ПРИ СООБЩЕНИИ ВОЗМОЖНОСТИ ТАКОГО ПОВРЕЖДЕНИЯ.
- Уведомление об авторских правах
- Введение
- 1 Область применения
- 2 Соответствие
- 3 Нормативные ссылки
- 4 Обзор
- 4.1 Веб-сценарии
- 4.2 Обзор языка
- 4.2.1 Объекты
- 4.2.2 Строгий вариант ECMAScript
- 4.3 Термины и определения
- 4.3.1 тип
- 4.3.2 примитивное значение
- 4.3.3 объект
- 4.3.4 конструктор
- 4.3.5 прототип
- 4.3.6 собственный объект
- 4.3.7 встроенный объект
- 4.3.8 хост-объект
- 4.3.9 неопределенное значение
- 4.3.10 Неопределенный тип
- 4.3.11 нулевое значение
- 4.3.12 Нулевой тип
- 4.3.13 Логическое значение
- 4.3.14 Логический тип
- 4.3.15 Логический объект
- 4.3.16 Строковое значение
- 4.3.17 Тип строки
- 4.3.18 Строковый объект
- 4.3.19 Числовое значение
- 4.3.20 Тип номера
- 4.3.21 Номер объекта
- 4.3.22 Бесконечность
- 4.3.23 NaN
- 4.3.24 функция
- 4.3.25 встроенная функция
- 4.3.26 недвижимость
- 4.3.27 метод
- 4.3.28 встроенный метод
- 4.3.29 атрибут
- 4.3.30 собственная собственность
- 4.3.31 унаследованное имущество
- 5 условных обозначений
- 5.1 Синтаксические и лексические грамматики
- 5.1.1 Контекстно-свободные грамматики
- 5.1.2 Лексическое выражение и регулярное выражение Грамматика
- 5.1.3 Числовая строка Грамматика
- 5.1.4 Синтаксическая грамматика
- 5.1.5 Грамматика JSON
- 5.1.6 Грамматическая запись
- 5.2 Соглашения об алгоритмах
- 5.1 Синтаксические и лексические грамматики
- 6 Исходный текст
- 7 лексических условных обозначений
- 7.1 Управление форматом Unicode Персонажи
- 7.2 Белое пространство
- 7.3 Терминаторы линии
- 7.4 Комментарии
- 7,5 жетонов
- 7.6 Имена и идентификаторы идентификаторов
- 7.6.1 Зарезервированные слова
- 7,7 Пунктуаторы
- 7.8 Литералы
- 7.8.1 Нулевые литералы
- 7.8.2 Логические литералы
- 7.8.3 Числовые литералы
- 7.8.4 Строковые литералы
- 7.8.5 Регулярное выражение Литералы
- 7.9 Автоматическая вставка точки с запятой
- 7.9.1 Правила автоматики Вставка точки с запятой
- 7.9.2 Примеры автоматического Вставка точки с запятой
- 8 типов
- 8.1 Неопределенный тип
- 8.2 Нулевой тип
- 8.3 Логический тип
- 8.4 Строковый тип
- 8.5 Число Тип
- 8.6 Тип объекта
- 8.6.1 Атрибуты свойства
- 8.6.2 Внутренние свойства объекта и методы
- 8.7 Тип справочной спецификации
- 8.7.1 GetValue (V)
- 8.7.2 PutValue (V, W)
- 8.8 Тип спецификации списка
- 8.9 Спецификация завершения Тип
- 8.10 Дескриптор свойства и
Типы спецификации идентификатора собственности
- 8.10.1 IsAccessorDescriptor ( По убыванию)
- 8.10.2 IsDataDescriptor (Описание )
- 8.10.3 IsGenericDescriptor ( По убыванию)
- 8.10.4 FromPropertyDescriptor ( По убыванию)
- 8.10.5 ToPropertyDescriptor ( Obj)
- 8.11 Лексическая среда и Типы спецификаций записей среды
- 8.12 Алгоритмы для внутреннего объекта
Методы
- 8.12.1 [[GetOwnProperty]] (П)
- 8.12.2 [[GetProperty]] (P)
- 8.12.3 [[Get]] (P)
- 8.12.4 [[CanPut]] (P)
- 8.12.5 [[Положить]] (П, В, Бросить )
- 8.12.6 [[HasProperty]] (P)
- 8.12.7 [[Удалить]] (P, Бросок)
- 8.12.8 [[DefaultValue]] (подсказка)
- 8.12.9 [[DefineOwnProperty]] (P, Desc, Throw)
- 9 Преобразование типа и испытания
- 9.1 ToPrimitive
- 9.2 ToBoolean
- 9,3 ToNumber
- 9.3.1 ToNumber, применяемый к Тип строки
- 9,4 Целое число
- 9,5 ToInt32: (32 бита со знаком Целое число)
- 9.6 ToUint32: (32 бита без знака Целое число)
- 9,7 ToUint16: (16 бит без знака Целое число)
- 9,8 ToString
- 9.8.1 ToString, примененный к Тип числа
- 9.9 ToObject
- 9.10 CheckObjectCoercible
- 9.11 IsCallable
- 9.12 Алгоритм того же значения
- 10 Исполняемый код и контексты выполнения
- 10.1 Типы исполняемого кода
- 10.1.1 Код строгого режима
- 10.2 Лексические среды
- 10.2.1 Записи среды
- 10.2.2 Лексическое окружение Операции
- 10.2.3 Глобальный Окружающая среда
- 10.3 Контексты выполнения
- 10.3.1 Идентификатор Разрешение
- 10.4 Установление казни
Контекст
- 10.4.1 Вход в Global Код
- 10.4.2 Ввод кода оценки
- 10.4.3 Вход в функцию Код
- 10.5 Привязка декларации Создание экземпляра
- 10.6 аргументов Object
- 10.1 Типы исполняемого кода
- 11 Выражений
- 11.1 Первичные выражения
- 11.1.1 Ключевое слово this
- 11.1.2 Идентификатор Номер ссылки
- 11.1.3 Литеральная ссылка
- 11.1.4 Инициализатор массива
- 11.1.5 Инициализатор объекта
- 11.1.6 Группировка Оператор
- 11.2 выражения левой стороны
- 11.2.1 Аксессуар собственности
- 11.2.2 Новый оператор
- 11.2.3 Вызов функций
- 11.2.4 Списки аргументов
- 11.2.5 Функция Выражения
- 11.3 Постфиксные выражения
- 11.3.1 Постфиксное приращение Оператор
- 11.3.2 Постфиксный декремент Оператор
- 11.4 Унарные операторы
- 11.4.1 Оператор удаления
- 11.4.2 Оператор void
- 11.4.3 Тип оператора
- 11.4.4 Приращение префикса Оператор
- 11.4.5 Уменьшение префикса Оператор
- 11.4.6 Унарный + Оператор
- 11.4.7 Унарный - Оператор
- 11.4.8 Побитовый оператор НЕ ( ~)
- 11.4.9 Оператор логического НЕ ( ! )
- 11.5 Мультипликативные операторы
- 11.5.1 Применение оператора *
- 11.5.2 Применение оператора /
- 11.5.3 Применение оператора%
- 11.6 аддитивных операторов
- 11.6.1 Оператор сложения ( +)
- 11.6.2 Оператор вычитания (-)
- 11.6.3 Нанесение добавки Операторы на номера
- 11.7 Операторы побитового сдвига
- 11.7.1 Оператор левой смены (<<)
- 11.7.2 Подписанный сдвиг вправо Оператор (>>)
- 11.7.3 Беззнаковый сдвиг вправо Оператор (>>>)
- 11.8 Операторы отношения
- 11.8.1 Неопытный оператор ( <)
- 11.8.2 Больше, чем Оператор (>)
- 11.8.3 Меньше или равно Оператор (<=)
- 11.8.4. Оператор "больше или равно" (> =)
- 11.8.5 Абстрактное отношение Алгоритм сравнения
- 11.8.6 Экземпляр оператор
- 11.8.7 Оператор in
- 11.9 Операторы равенства
- 11.9.1 Оператор равенства ( ==)
- 11.9.2 Не равняется Оператор (! =)
- 11.9.3 Абстрактное равенство Алгоритм сравнения
- 11.9.4 Строгие равные Оператор (===)
- 11.9.5 Строгий Оператор-не-равно (! ==)
- 11.9.6 Строгое равенство Алгоритм сравнения
- 11.10 двоичных побитовых операторов
- 11.11 Двоичные логические операторы
- 11.12 Условный оператор (?:)
- 11.13 Операторы присваивания
- 11.13.1 Простое присвоение ( =)
- 11.13.2 Составное присвоение ( op =)
- 11.14 Оператор запятой (,)
- 11.1 Первичные выражения
- 12 Заявлений
- 12.1 Блок
- 12.2 Заявление о переменной
- 12.2.1 Строгий режим Ограничения
- 12.3 Пустой отчет
- 12.4 Заявление о выражении
- 12.5 Заявление if
- 12.6 Операторы итерации
- 12.6.1 Заявление о выполнении
- 12.6.2 Заявление while
- 12.6.3 Заявление for
- 12.6.4 Заявление о заезде
- 12.7 Заявление о продолжении
- 12.8 Заявление о разрыве
- 12.9 Отчет о возврате
- 12.10 Заявление with
- 12.10.1 Строгий режим Ограничения
- 12.11 Заявление о переключателе
- 12.12 заявлений с этикетками
- 12.13 Заявление о броске
- 12.14 Заявление try
- 12.14.1 Строгий режим Ограничения
- 12.15 Оператор отладчика
- 13 Определение функций
- 13.1 Ограничения строгого режима
- 13.2 Создание функциональных объектов
- 13.2.1 [[Позвонить]]
- 13.2.2 [[Construct]]
- 13.2.3 [[ThrowTypeError]] Функциональный объект
- 14 Программа
- 14.1 Прологи директив и их использование Строгая директива
- 15 стандартных встроенных объектов ECMAScript
- 15.1 Глобальный объект
- 15.1.1 Свойства значения Глобальный объект
- 15.1.2 Свойства функции Глобальный объект
- 15.1.3 Функция обработки URI Недвижимость
- 15.1.4 Свойства конструктора Глобального Объекта
- 15.1.5 Прочие свойства Глобальный объект
- 15.2 Объект Объекты
- 15.2.1 Конструктор объектов Вызывается как функция
- 15.2.2 Объект Конструктор
- 15.2.3 Свойства объекта Конструктор
- 15.2.4 Свойства объекта Опытный образец Объекта
- 15.2.5 Свойства объекта Экземпляры
- 15.3 функциональных объекта
- 15.3.1 Конструктор функций Вызывается как функция
- 15.3.2 Функция Конструктор
- 15.3.3 Свойства Конструктор функций
- 15.3.4 Свойства Объект-прототип функции
- 15.3.5 Свойства функции Экземпляры
- 15.4 объекта массива
- 15.4.1 Конструктор массива Вызывается как функция
- 15.4.2 Массив Конструктор
- 15.4.3 Свойства массива Конструктор
- 15.4.4 Свойства массива Опытный образец Объекта
- 15.4.5 Свойства массива Экземпляры
- 15.5 строковых объектов
- 15.5.1 Конструктор строк Вызывается как функция
- 15.5.2 Строка Конструктор
- 15.5.3 Свойства строки Конструктор
- 15.5.4 Свойства строки Опытный образец Объекта
- 15.5.5 Свойства строки Экземпляры
- 15.6 логических объектов
- 15.6.1 Логический конструктор Вызывается как функция
- 15.6.2 Логическое значение Конструктор
- 15.6.3 Свойства Логический конструктор
- 15.6.4 Свойства Логический объект-прототип
- 15.6.5 Свойства логического Экземпляры
- 15.7 числовых объектов
- 15.7.1 Конструктор чисел Вызывается как функция
- 15.7.2 Число Конструктор
- 15.7.3 Свойства числа Конструктор
- 15.7.4 Свойства числа Опытный образец Объекта
- 15.7.5 Свойства числа Экземпляры
- 15.8 Математический объект
- 15.8.1 Значение Свойства Математический объект
- 15.8.2 Свойства функции математический объект
- 15.9 Дата Объекты
- 15.9.1 Обзор объектов даты и определения абстрактных операторов
- 15.9.2 Конструктор даты Вызывается как функция
- 15.9.3 Дата Конструктор
- 15.9.4 Свойства даты Конструктор
- 15.9.5 Свойства даты Опытный образец Объекта
- 15.9.6 Свойства даты Экземпляры
- 15.10 RegExp (регулярное выражение)
Объекты
- 15.10.1 Узоры
- 15.10.2 Семантика паттернов
- 15.10.3 Конструктор RegExp Вызывается как функция
- 15.10.4 Регулярное выражение Конструктор
- 15.10.5 Свойства Конструктор RegExp
- 15.10.6 Свойства Объект прототипа RegExp
- 15.10.7 Свойства RegExp Экземпляры
- 15.11 Объекты ошибок
- 15.11.1 Конструктор ошибок Вызывается как функция
- 15.11.2 Ошибка Конструктор
- 15.11.3 Свойства Конструктор ошибок
- 15.11.4 Свойства Объект прототипа ошибки
- 15.11.5 Свойства ошибки Экземпляры
- 15.11.6 Собственные типы ошибок Используется в этом стандарте
- 15.11.7 NativeError Структура объекта
- 15.12 Объект JSON
- 15.12.1 Грамматика JSON
- 15.12.2 parse (текст [, оживитель])
- 15.12.3 stringify (значение [, replacer [, пробел]])
- 15.1 Глобальный объект
- 16 ошибок
- Приложение A (справочное) Резюме по грамматике
- А.1 Лексическая грамматика
- A.2 Преобразование чисел
- A.3 Выражения
- A.4 Отчетность
- A.5 Функции и программы
- A.6 Универсальный идентификатор ресурса Классы персонажей
- A.7 Регулярные выражения
- A.8 JSON
- A.8.1 Лексическая грамматика JSON
- A.8.2 Синтаксис JSON Грамматика
- Приложение B (справочное) Совместимость
- Б.1 Дополнительный синтаксис
- B.1.1 Числовые литералы
- B.1.2 Строковые литералы
- B.2 Дополнительные свойства
- B.2.1 escape (строка)
- B.2.2 unescape (строка)
- B.2.3 String.prototype.substr (начало, длина)
- B.2.4 Date.prototype.getYear ( )
- Б.2.5 Дата.prototype.setГод (год)
- B.2.6 Date.prototype.toGMTString ()
- Б.1 Дополнительный синтаксис
- Приложение C (справочное) Строгий режим ECMAScript
- Приложение D (справочное) Исправления и уточнения в 5 -м издании с возможным 3 rd Издание Совместимость Влияние
- Приложение E (справочное) Дополнения и изменения в 5 -м издании , которые вводят Несовместимость с 3 rd Edition
- Приложение F (справочное) Технически значимые исправления и пояснения в 5.1 издание
- Библиография
Этот стандарт Ecma основан на нескольких исходных технологиях, наиболее известными из которых являются JavaScript (Netscape) и JScript. (Microsoft). Язык был изобретен Бренданом Эйхом из Netscape и впервые появился в Navigator 2.0 этой компании. браузер. Он появился во всех последующих браузерах от Netscape и во всех браузерах от Microsoft, начиная с Internet. Explorer 3.0.
Разработка этого стандарта началась в ноябре 1996 года.Первое издание этого стандарта Ecma было принято Ecma Генеральная ассамблея июня 1997 г.
Этот стандарт Ecma был представлен в ISO / IEC JTC 1 для принятия в рамках ускоренной процедуры и утвержден как международный стандарт ISO / IEC 16262, в апреле 1998 года. Генеральная ассамблея Ecma в июне 1998 года одобрила вторую редакцию ECMA-262, чтобы сохранить его полностью соответствует стандарту ISO / IEC 16262. Изменения между первым и вторым изданиями носят редакционный характер.
Третье издание стандарта представило мощные регулярные выражения, улучшенную обработку строк, новые управляющие операторы, обработка исключений try / catch, более точное определение ошибок, форматирование числового вывода и незначительные изменения в ожидании предстоящие возможности интернационализации и будущий рост языка. Было принято третье издание стандарта ECMAScript. Генеральной ассамблеей Ecma в декабре 1999 г. и опубликован как ISO / IEC 16262: 2002 в июне 2002 г.
С момента публикации третьего издания ECMAScript получил массовое распространение вместе с World Wide Web, где он стал языком программирования, который поддерживается практически всеми веб-браузерами. Была проделана значительная работа по разработке четвертое издание ECMAScript. Хотя эта работа не была завершена и не была опубликована как четвертое издание ECMAScript, она информирует о продолжающейся эволюции языка. Пятое издание ECMAScript (опубликовано как ECMA-262 5 th edition) кодифицирует фактические интерпретации спецификации языка, которые стали обычным явлением среди реализаций браузеров, и добавляет поддержка новых функций, появившихся после публикации третьего издания.К таким функциям относится аксессуар свойства, рефлексивное создание и проверка объектов, программный контроль атрибутов свойств, дополнительные манипуляции с массивами функции, поддержка формата кодирования объектов JSON и строгий режим, обеспечивающий расширенную проверку ошибок и программирование безопасность.
Настоящее издание 5.1 стандарта ECMAScript полностью соответствует третьему изданию международного стандарта ISO / IEC. 16262: 2011.
ECMAScript - динамичный язык, и его эволюция еще не завершена.Значительное техническое усовершенствование будет продолжайте с будущими редакциями этой спецификации.
Этот стандарт Ecma был принят Генеральной ассамблеей в июне 2011 года.
Спецификация языка ECMAScript
Этот стандарт определяет язык сценариев ECMAScript.
Соответствующая реализация ECMAScript должна предоставлять и поддерживать все типы, значения, объекты, свойства, функции и синтаксис и семантика программы описаны в этой спецификации.
Соответствующая реализация настоящего стандарта должна интерпретировать символы в соответствии со стандартом Unicode версии 3.0. или более поздней версии и ISO / IEC 10646-1 с UCS-2 или UTF-16 в качестве принятой формы кодирования, уровень реализации 3. Если принят Подмножество ISO / IEC 10646-1 не указано иначе, предполагается, что это подмножество BMP, коллекция 300. Если принятая кодировка форма не указана иначе, предполагается, что это форма кодировки UTF-16.
Соответствующей реализации ECMAScript разрешено предоставлять дополнительные типы, значения, объекты, свойства и функции помимо описанных в этой спецификации. В частности, соответствующая реализация ECMAScript разрешена для предоставить свойства, не описанные в этой спецификации, и значения этих свойств для объектов, которые описаны в этой спецификации Технические характеристики.
Соответствующей реализации ECMAScript разрешено поддерживать синтаксис программ и регулярных выражений, не описанный в данном документе. Технические характеристики.В частности, соответствующая реализация ECMAScript разрешена для поддержки синтаксиса программы, в которой используется «будущие зарезервированные слова», перечисленные в 7.6.1.2 данной спецификации.
Следующие ниже ссылочные документы необходимы для применения этого документа. Для датированных ссылок только Применяется указанное издание. Для недатированных ссылок последнее издание ссылочного документа (включая любые поправки) применяется.
ISO / IEC 9899: 1996 , Языки программирования - C, включая поправку 1 и технические исправления 1 и 2
ISO / IEC 10646-1: 1993 , Информационные технологии - Универсальное многооктетное кодирование Набор символов (UCS) с поправками и исправлениями
В этом разделе содержится ненормативный обзор языка ECMAScript.
ECMAScript - объектно-ориентированный язык программирования для выполнения вычислений и управления вычислительными объектами. в среде хоста. ECMAScript, как здесь определено, не предназначен для обеспечения вычислительной автономности; действительно, есть В этой спецификации нет положений для ввода внешних данных или вывода вычисленных результатов. Вместо этого ожидается, что вычислительная среда программы ECMAScript будет предоставлять не только объекты и другие средства, описанные в этом спецификации, но также и некоторые зависящие от среды объекты хоста , описание и поведение которых выходят за рамки эта спецификация, за исключением того, что они могут предоставлять определенные свойства, к которым можно получить доступ, и определенные функции, которые можно вызвать из программы ECMAScript.
A язык сценариев - это язык программирования, который используется для управления, настройки и автоматизации объекты существующей системы. В таких системах полезные функции уже доступны через пользовательский интерфейс, а язык сценариев - это механизм для предоставления этой функциональности программному контролю. Таким образом, о существующей системе говорят для обеспечения среды хоста объектов и средств, которая дополняет возможности языка сценариев.Сценарий язык предназначен для использования как профессиональными, так и непрофессиональными программистами.
ECMAScript изначально был разработан как язык веб-сценариев , обеспечивающий механизм для оживления веб-страниц в браузерах и для выполнения серверных вычислений как части клиент-серверной веб-архитектуры. ECMAScript может предоставить ядро возможности создания сценариев для различных сред хоста, поэтому в этом документе указан основной язык сценариев. документ отдельно от любой конкретной среды хоста.
Некоторые возможности ECMAScript аналогичны тем, которые используются в других языках программирования; в частности Java ™, Я и Схема, как описано в:
Гослинг, Джеймс, Билл Джой и Гай Стил. Язык Java ™ Технические характеристики. Addison Wesley Publishing Co., 1996.
Ангар, Дэвид и Смит, Рэндалл Б. Селф: Сила простоты. OOPSLA '87 Conference Proceedings, стр. 227–241, Орландо, Флорида, октябрь 1987 г.
Стандарт IEEE для языка программирования схем. IEEE Std 1178–1990.
Веб-браузер предоставляет среду хоста ECMAScript для вычислений на стороне клиента, включая, например, объекты, которые представляют окна, меню, всплывающие окна, диалоговые окна, текстовые области, привязки, фреймы, историю, файлы cookie и ввод / вывод. Далее среда хоста предоставляет средства для присоединения кода сценария к таким событиям, как изменение фокуса, загрузка страницы и изображения, выгрузка, ошибка и прерывание, выбор, отправка формы и действия мыши.Код сценария появляется в HTML и отображаемая страница представляет собой комбинацию элементов пользовательского интерфейса, фиксированного и вычисляемого текста и изображений. Код сценария реагирует на взаимодействие с пользователем, и нет необходимости в основной программе.
Веб-сервер предоставляет другую среду хоста для вычислений на стороне сервера, включая объекты, представляющие запросы, клиенты и файлы; и механизмы для блокировки и обмена данными. Совместное использование сценариев на стороне браузера и на стороне сервера позволяет можно распределять вычисления между клиентом и сервером, обеспечивая при этом настраиваемый пользовательский интерфейс для веб- применение.
Каждый веб-браузер и сервер, поддерживающий ECMAScript, предоставляет свою собственную среду хоста, завершая выполнение ECMAScript Окружающая среда.
Ниже приводится неофициальный обзор ECMAScript - описаны не все части языка. Этот обзор не часть собственно стандарта.
ECMAScript является объектно-ориентированным: базовый язык и возможности хоста предоставляются объектами, а программа ECMAScript является кластер сообщающихся объектов.Объект ECMAScript представляет собой набор из свойств , каждое из которых ноль или более атрибутов , которые определяют, как каждое свойство может использоваться - например, когда параметр Writable атрибут для свойства установлен на false , любая попытка исполняемого кода ECMAScript изменить значение свойства терпит неудачу. Свойства - это контейнеры, содержащие другие объекты, примитивных значений или функций .А примитивное значение является членом одного из следующих встроенных типов: Undefined , Null , Boolean , Число и Строка ; объект является членом оставшегося встроенного типа Object ; а функция - это вызываемый объект. Функция, связанная с объектом через свойство, - это метод .
ECMAScript определяет набор из встроенных объектов , которые завершают определение сущностей ECMAScript.Эти встроенные объекты включают глобальный объект, объект , объект , объект Function, , массив , объект, объект String , объект Boolean , объект Number , объект Math , объект Date объект, объект RegExp , объект JSON и объекты Error Error, EvalError , RangeError, ReferenceError, SyntaxError, TypeError и URIError .
ECMAScript также определяет набор встроенных операторов . Операторы ECMAScript включают в себя различные унарные операции, мультипликативные операторы, аддитивные операторы, операторы побитового сдвига, операторы отношения, операторы равенства, двоичные побитовые операторы, двоичные логические операторы, операторы присваивания и оператор запятой.
СинтаксисECMAScript намеренно напоминает синтаксис Java. Синтаксис ECMAScript ослаблен, чтобы он мог служить простым в использовании язык сценариев.Например, не требуется, чтобы тип переменной был объявлен, а типы не связаны с свойств и определенных функций не требуется, чтобы их объявления отображались в текстовом виде перед вызовом к ним.
ECMAScript не использует классы, такие как классы C ++, Smalltalk или Java. Вместо этого объекты можно создавать разными способами.
в том числе через буквальную нотацию или через конструкторы , которые создают объекты, а затем выполняют код, который
инициализирует все или часть из них, присваивая их свойствам начальные значения.Каждый конструктор - это функция, имеющая
свойство с именем « прототип
», которое используется для реализации наследования на основе прототипа и совместных владений . Объекты создаются с помощью конструкторов в новых выражениях; например, новых
Date (2009,11)
создает новый объект Date. Вызов конструктора без использования new имеет последствия, которые зависят
на конструкторе.Например, Date ()
создает строковое представление текущей даты и времени, а не
чем объект.
Каждый объект, созданный конструктором, имеет неявную ссылку (называемую прототипом объекта ) на значение
свойства " prototype
" его конструктора. Кроме того, прототип может иметь ненулевой
неявная ссылка на свой прототип и так далее; это называется цепочкой прототипов .Когда делается ссылка на
свойство в объекте, эта ссылка относится к свойству с таким именем в первом объекте в цепочке прототипов, который
содержит свойство с таким именем. Другими словами, сначала непосредственно упомянутый объект исследуется на предмет наличия такого свойства; если
этот объект содержит указанное свойство, то есть свойство, на которое ссылается ссылка; если этот объект не содержит
указанное свойство, затем исследуется прототип этого объекта; и так далее.
В объектно-ориентированном языке на основе классов, как правило, состояние передается экземплярами, методы передаются классами и наследование - это только структура и поведение. В ECMAScript состояние и методы передаются объектами и структурой, поведение и состояние передаются по наследству.
Все объекты, которые напрямую не содержат конкретное свойство, содержащееся в их прототипе, совместно используют это свойство и его значение.Рисунок 1 иллюстрирует это:
CF - это конструктор (а также объект). Пять объектов были созданы с использованием новых
выражений: cf 1 , cf 2 , cf 3 , cf 4 и cf 5 . Каждый
из этих объектов содержит свойства с именами q1 и q2. Пунктирные линии представляют неявную взаимосвязь прототипов; так, например, cf 3 Прототип - CF p .Конструктор CF сам имеет два свойства:
названы P1 и P2, которые не
виден до CF p , cf 1 , cf 2 , cf 3 , ср 4 или ср 5 . Имущество под названием CFP1 в CF p принадлежит cf 1 , cf 2 , cf 3 , cf 4 и cf 5 (но не CF ), как и любые другие объекты недвижимости в CF p Неявная цепочка прототипов , не названная q1,
q2 или CFP1.Обратите внимание, что нет
неявная связь прототипа между CF и CF p .
В отличие от объектных языков на основе классов, свойства можно добавлять к объектам динамически, присваивая им значения. То есть, конструкторы не обязаны называть или присваивать значения всем или каким-либо свойствам построенного объекта. в На диаграмме выше можно добавить новую общую собственность для cf 1 , cf 2 , cf 3 , cf 4 и cf 5 путем присвоения нового значения свойству в CF p .
Язык ECMAScript признает возможность того, что некоторые пользователи языка могут захотеть ограничить использование некоторые функции доступны на языке. Они могут сделать это в интересах безопасности, чтобы избежать того, что они считают функции, подверженные ошибкам, для улучшения проверки ошибок или по другим причинам по их выбору. В подтверждение этого Возможно, ECMAScript определяет строгий вариант языка. Строгий вариант языка исключает некоторые специфические синтаксические и семантические особенности обычного языка ECMAScript и изменяет детальную семантику некоторых функций.В Строгий вариант также указывает дополнительные условия ошибки, которые должны сообщаться путем выдачи исключений ошибок в ситуациях которые не определены как ошибки нестрогой формой языка.
Строгий вариант ECMAScript обычно обозначается как строгий режим языка. Выбор строгого режима а использование синтаксиса и семантики строгого режима ECMAScript явно выполняется на уровне отдельного кода ECMAScript единицы.Поскольку строгий режим выбирается на уровне единицы синтаксического кода, строгий режим накладывает только ограничения, которые имеют локальный эффект в такой кодовой единице. Строгий режим не ограничивает и не изменяет какие-либо аспекты семантики ECMAScript. которые должны работать согласованно для нескольких кодовых единиц. Полная программа ECMAScript может быть составлена как для строгих единицы кода ECMAScript режима и нестрогого режима. В этом случае строгий режим применяется только при фактическом выполнении кода, который определяется в кодовой единице строгого режима.
Чтобы соответствовать этой спецификации, реализация ECMAScript должна реализовывать как полные неограниченные Язык ECMAScript и вариант строгого режима языка ECMAScript, как определено в этой спецификации. Кроме того, реализация должна поддерживать комбинацию блоков кода неограниченного и строгого режима в единая составная программа.
В этом документе применяются следующие термины и определения.
набор значений данных, как определено в разделе 8 данной спецификации
член одного из типов Undefined, Null, Boolean, Number или String, как определено в разделе 8
ПРИМЕЧАНИЕ. Примитивное значение - это данные, которые представлены непосредственно на самом нижнем уровне языковая реализация.
член типа Объект
ПРИМЕЧАНИЕ Объект представляет собой набор свойств и имеет единственный объект-прототип.Прототип может быть нулевым значением.
функциональный объект, который создает и инициализирует объекты
ПРИМЕЧАНИЕ. Значение свойства «прототип» конструктора - это объект-прототип, который используется для реализации наследования и совместного использования. свойства.
объект, который предоставляет общие свойства для других объектов
ПРИМЕЧАНИЕ Когда конструктор создает объект, этот объект неявно ссылается на
свойство конструктора « прототип
» с целью разрешения ссылок на свойства.В
на свойство конструктора « prototype
» можно ссылаться с помощью программного выражения constructor .prototype , и свойства, добавленные к объекту
prototype через наследование разделяются всеми объектами, разделяющими прототип. Как вариант, новый объект может быть
создается с явно указанным прототипом с помощью встроенной функции Object.create
.
объект в реализации ECMAScript, семантика которого полностью определяется этой спецификацией, а не хостом окружающая среда
ПРИМЕЧАНИЕ Стандартные собственные объекты определены в этой спецификации.Некоторые родные объекты встроенный; другие могут быть созданы в ходе выполнения программы ECMAScript.
, предоставленный реализацией ECMAScript, независимо от среды хоста, который присутствует в начале выполнение программы ECMAScript
ПРИМЕЧАНИЕ Стандартные встроенные объекты определены в этой спецификации, а ECMAScript реализация может указывать и определять другие.Каждый встроенный объект - это собственный объект. Встроенный конструктор - это встроенный объект, который также является конструктором.
объект, предоставляемый средой хоста для завершения среды выполнения ECMAScript
ПРИМЕЧАНИЕ Любой объект, который не является собственным, является объектом хоста.
примитивное значение, используемое, когда переменной не присвоено значение
Тип, единственным значением которого является неопределенное значение
примитивное значение, которое представляет намеренное отсутствие какого-либо значения объекта
Тип, единственным значением которого является нулевое значение
член логического типа
ПРИМЕЧАНИЕ. Есть только два логических значения: true и false .
Тип, состоящий из примитивных значений true и false
член типа Object, который является экземпляром стандартного встроенного Boolean конструктора
ПРИМЕЧАНИЕ. Логический объект создается с помощью конструктора Boolean
в новое выражение
, передающее логическое значение в качестве аргумента. Результирующий объект имеет внутреннее свойство,
value - это логическое значение.Булевский объект может быть приведен к логическому значению.
примитивное значение, которое представляет собой конечную упорядоченную последовательность из нуля или более 16-разрядного целого числа без знака
ПРИМЕЧАНИЕ. Значение String является членом типа String. Каждое целое значение в последовательности обычно представляет собой один 16-битный блок текста UTF-16. Однако ECMAScript не накладывает никаких ограничений или требований на значения, за исключением того, что они должны быть 16-разрядными целыми числами без знака.
набор всех возможных строковых значений
член типа Object, который является экземпляром стандартного встроенного конструктора String
ПРИМЕЧАНИЕ. Объект String создается с помощью конструктора String
в новое выражение
, передающее значение String в качестве аргумента. Результирующий объект имеет внутреннее свойство,
value - это строковое значение.Объект String может быть приведен к значению String путем вызова конструктора String
как функция (15.5.1).
примитивное значение, соответствующее 64-битному двоичному формату двойной точности. Значение IEEE 754
.ПРИМЕЧАНИЕ. Числовое значение является членом числового типа и является прямым представлением число.
набор всех возможных числовых значений, включая специальные значения «Not-a-Number» (NaN), положительную бесконечность и отрицательная бесконечность
член типа Object, который является экземпляром стандартного встроенного конструктора Number
ПРИМЕЧАНИЕ. Объект Number создается с помощью конструктора Number
в новое выражение
, передающее числовое значение в качестве аргумента.Результирующий объект имеет внутреннее свойство,
value - это числовое значение. Объект Number может быть приведен к числовому значению путем вызова конструктора Number
как функция (15.7.1).
числовое значение, которое является положительным бесконечным числовым значением
числовое значение, которое является значением IEEE 754 «Not-a-Number»
член типа Object, который является экземпляром стандартного встроенного конструктора Function
и может быть
вызывается как подпрограмма
ПРИМЕЧАНИЕ Помимо именованных свойств, функция содержит исполняемый код и указывает, что определить, как он ведет себя при вызове.Код функции может быть написан или не написан на ECMAScript.
встроенный объект, который является функцией
ПРИМЕЧАНИЕ Примеры встроенных функций включают parseInt
и Math.exp
. An
реализация может предоставлять зависящие от реализации встроенные функции, которые не описаны в этой спецификации.
связь между именем и значением, которое является частью объекта
ПРИМЕЧАНИЕ В зависимости от формы свойства значение может быть представлено либо непосредственно как значение данных (примитивное значение, объект или объект функции) или косвенно парой функций доступа.
функция, которая является значением свойства
ПРИМЕЧАНИЕ Когда функция вызывается как метод объекта, объект передается в функцию как его это значение .
метод, который является встроенной функцией
ПРИМЕЧАНИЕ Стандартные встроенные методы определены в этой спецификации, а сценарий ECMAScript реализация может определять и предоставлять другие дополнительные встроенные методы.
внутреннее значение, определяющее некоторую характеристику свойства
свойство, которое непосредственно содержится в его объекте
свойство объекта, которое не является собственным свойством, но является свойством (собственным или унаследованным) объекта прототип
Контекстно-свободная грамматика состоит из производных .У каждой постановки есть абстрактный символ, называемый нетерминальный как его левая часть и последовательность из нуля или более нетерминальных и оконечных символов как его правая сторона . Для каждой грамматики терминальные символы взяты из определенного алфавита.
Начиная с предложения, состоящего из одного выделенного нетерминала, называемого символом цели , данный контекстно-свободная грамматика определяет язык , а именно, (возможно, бесконечный) набор возможных последовательностей терминальных символы, которые могут возникнуть в результате многократной замены любого нетерминала в последовательности правой частью продукции для нетерминал которого является левой частью.
Лексическая грамматика для ECMAScript приведена в разделе 7. Эта грамматика имеет в качестве своего конца символы символы (единицы кода Unicode), которые соответствуют правилам для SourceCharacter, определенным в разделе 6. Он определяет набор производств, начиная с целевого символа InputElementDiv или InputElementRegExp, которые описывают, как последовательности таких символы переводятся в последовательность элементов ввода.
Элементы ввода, отличные от пробелов и комментариев, образуют терминальные символы для синтаксической грамматики для ECMAScript и называются токенами ECMAScript .Эти токены представляют собой зарезервированные слова, идентификаторы, литералы и знаки препинания Язык ECMAScript. Более того, терминаторы линии, хотя и не считаются токенами, также становятся частью потока элементы ввода и направляют процесс автоматической вставки точки с запятой (7.9). Простое белое пространство и однострочные комментарии отбрасываются и не появляются в потоке входных элементов синтаксической грамматики. Многострочный комментарий (то есть комментарий формы «/ *… * /», независимо от того, занимает ли он более одна строка) также просто отбрасывается, если она не содержит терминатора строки; но если MultiLineComment содержит один или несколько ограничителей строки, затем он заменяется одним ограничителем строки, который становится частью потока входные элементы для синтаксической грамматики.
Грамматика RegExp для ECMAScript приведена в 15.10. Эта грамматика также имеет своим концом символы символы, как определено SourceCharacter. Он определяет набор постановок, начиная с Шаблон символа цели, описывающий, как последовательности символов переводятся в обычные шаблоны выражения.
Продукция лексической грамматики и грамматики RegExp отличается наличием двух двоеточий « :: » как разделительная пунктуация.Лексическая грамматика и грамматика RegExp имеют несколько общих продуктов.
Другая грамматика используется для перевода строк в числовые значения. Эта грамматика похожа на часть лексической грамматика связана с числовыми литералами и имеет в качестве терминальных символов SourceCharacter. Этот грамматика появляется в 9.3.1.
Продукция грамматики числовой строки отличается наличием трех двоеточий « ::: » как пунктуация.
Синтаксическая грамматика для ECMAScript приведена в разделах 11, 12, 13 и 14. Эта грамматика имеет токены ECMAScript. определяется лексической грамматикой как ее терминальные символы (5.1.2). Он определяет набор производств, начиная с символа цели Program, описывающего, как последовательности токенов могут формироваться синтаксически правильные программы ECMAScript.
Когда поток символов должен быть проанализирован как программа ECMAScript, он сначала преобразуется в поток входных элементов. повторным применением лексической грамматики; этот поток входных элементов затем анализируется одним приложением синтаксическая грамматика.Программа является синтаксической ошибкой, если токены в потоке входных элементов не могут быть проанализированы как единственный экземпляр целевой нетерминальной программы, без остатка токенов.
Продукция синтаксической грамматики отличается наличием только одного двоеточия «: » как пунктуация.
Синтаксическая грамматика, представленная в пунктах 11, 12, 13 и 14, на самом деле не является полным описанием того, какой токен последовательности принимаются как правильные программы на ECMAScript.Также принимаются некоторые дополнительные последовательности токенов, а именно: это было бы описано грамматикой, если бы только точки с запятой были добавлены к последовательности в определенных местах (например, перед строкой символы терминатора). Кроме того, определенные последовательности токенов, описанные грамматикой, не считаются приемлемыми. если в некоторых «неудобных» местах появляется терминатор.
Грамматика JSON используется для перевода строки, описывающей набор объектов ECMAScript, в реальные объекты.JSON грамматика приведена в 15.12.1.
Грамматика JSON состоит из лексической грамматики JSON и синтаксической грамматики JSON. Лексическая грамматика JSON используется для переводить последовательности символов в токены и аналогично частям лексической грамматики ECMAScript. Синтаксис JSON грамматика описывает, как последовательности токенов из лексической грамматики JSON могут формировать синтаксически правильный объект JSON описания.
Продукция лексической грамматики JSON отличается наличием двух двоеточий « :: » в качестве разделяющих пунктуация.Лексическая грамматика JSON использует некоторые продукты из лексической грамматики ECMAScript. Синтаксическая грамматика JSON похож на части синтаксической грамматики ECMAScript. Синтаксическая грамматика JSON отличается: с использованием одного двоеточия «: » в качестве разделителя знаков препинания.
Терминальные символы лексической, регулярной и числовой строковых грамматик, а также некоторые терминальные символы других
грамматики, показаны шрифтом фиксированной ширины
, обе в продуктах
HTML5 Forms Pt.1: Типы входных данных
Получив это предупреждение как можно раньше, в случае, если вы вполне по понятным причинам решите, что чтение остальной части этой страницы будет пустой тратой времени, подавляющее большинство этих новых губбинов еще не будет полностью работать во всех основных браузерах. Неудивительно, что Internet Explorer - главный тупица, и почти ничего из этого не работает ни в чем ниже, чем IE 10, и даже эта версия не поддерживает некоторые типы ввода
. Однако все не бесплодно - см. Примечание о предложениях по использованию в конце HTML5 Forms Pt.2.
Дополнительные типы входов
Основные поля формы, созданные с использованием элемента input
, включают текст, пароль, флажок, радио и отправку, которые уже были рассмотрены в разделе HTML для начинающих. Эти типы были расширены в HTML5 для включения более конкретных полей:
Поиск
Используется для текстового поля поискового запроса , это работает точно так же, как и стандартный ввод текста.
Основная цель включения этого типа ввода в спецификацию HTML5 - это один из стилей .Помимо упрощения вашего HTML-кода, вы также можете настроить таргетинг на этот элемент с помощью селектора атрибутов CSS:
input [type = search] {background: url (magnifyingglass.png) right no-repeat)}
Новый раздел примеров! Посмотрите на весь этот код в действии и поиграйте с ним.
Телефон, URL и адрес электронной почты
Другие «специальные» типы ввода текста включают tel
для телефонных номеров, url
для веб-адресов и email
для адресов электронной почты.
Вы можете использовать псевдоклассы : valid
и : invalid
CSS3 для стилизации этих полей в зависимости от того, считается ли их содержимое допустимым.
input [type = email]: valid {background: green}
input [type = email]: недопустимый {background: red}
В этом примере фон поля электронной почты будет закрашен зеленым, если введенный текст распознается как адрес электронной почты (например, «sausage @ htmldog.com ») или красный, если это не так (например, если пользователь ввел« сосиски? »).
Числа и диапазоны
Простое текстовое поле, которое также позволяет пользователю напрямую вводить номер или циклически перебирать числа (обычно используя стрелки вверх и вниз в стороне от поля), можно получить с помощью type = "number"
. Дополнительный атрибут step
может быть добавлен, чтобы указать, сколько добавляется или вычитается из числа с каждым приращением.
Если вы также хотите, чтобы число имело минимальное или максимальное значение, вы можете дополнительно использовать атрибуты min
и max
.
Еще раз, , если это поддерживается, пользователь сможет либо вводить текст непосредственно в поле, либо, при использовании стрелок, переключаться между 20 и 30, по две единицы за раз.
Вы также можете использовать псевдоклассы : valid
и : invalid
в отношении этого. Если бы пользователь набрал, например, «12», это было бы недопустимо, потому что оно не находится в диапазоне от 20 до 30.Если они наберут «23», это тоже будет недействительным, потому что оно не кратно 2.
Альтернативой подходу «цифры в текстовом поле» можно добиться с помощью type = "range"
. По умолчанию это должно отображаться как горизонтальная полоса с ползунком посередине. Затем пользователь может отрегулировать ползунок влево и вправо, крайний левый дает значение «0», а крайний правый - значение «100». Этот диапазон можно настроить с помощью атрибутов мин.
и макс.
.
Даты и время
Есть несколько типов ввода для дат и времени :
-
type = "datetime"
-
type = "date"
-
type = "month"
-
type = "week"
-
type = "time"
-
type = "datetime-local"
Если они поддерживаются (они не широко распространены, и они также несовместимы между браузерами), они предложат пользователю ввести дату или время в определенном формате, либо путем непосредственного ввода, циклически меняя одну неделю / день / час / минута / и т. д.за раз или выбрав из раскрывающегося календаря.
Атрибуты step
, min
и max
также могут использоваться с датами и временем, как и псевдоклассы CSS для стилизации в соответствии с действительностью.
Цвет
Наконец, type = "color"
разработан, чтобы позволить пользователю выбрать цвет , отправив шестизначный шестнадцатеричный код в качестве его значения.
.