↑↑

SE@RCHER
SE@RCHER
Золотая библиотека JAVASCRIPT Библиотека JAVASCRIPT + CSS
Золотая библиотека JAVASCRIPT Библиотека JAVASCRIPT + CSS
Золотая библиотека JAVASCRIPT ЛУЧШИЕ JAVASCRIPT
Золотая библиотека JAVASCRIPT
1997

※ ※ ※ ※



@ ДЛЯ ПИСЕМ










HTML5

HTML 4 с нами уже примерно 10 лет. За это время не было серьезных шагов по его усовершенствованию. Конечно, появился XHTML, однако, он просто ужесточает правила и заставляет писать лучший и более качественный код. При этом, вы полностью заботитесь о соответствии стандарту. HTML 5 же призван сделать большее. Он добавляет серию очень важных нововведений.

Работа над HTML5 началась еще в далеком 2004-м, но только сейчас он начинает вызывать серьезный интерес. Увеличивается поддержка браузеров, а элемент, который многим больше всего нравится (CANVAS), поддерживается 4-мя из 5-ти наиболее распостраненных браузеров. Вместе с тем не совсем реально, хотя и возможно, использовать HTML 5, так как новый стандарт не поддерживается в MSIE.

Итак, что же нового в HTML 5?

<canvas>

<canvas> - это поле для рисования двухмерной графики, управлямый с помощью JavaScript. Вы можете использовать его для построения графиков и других динамических изображений.

⇨ примеры

<video> и <audio>

Тег <video> упрощает добавление видео клипов на HTML-страницы. Он может содержать атрибуты src, autoplay и loop. Тег <video> также допускает задание текстового описания для видео (например, для незрячих людей). В идеале это должна быть полная текстовая интерпретация видео.

Тег <audio> очень похож на <video>, но предназначен для аудио-файлов. Неожиданно, не правда ли?

⇨ примеры

Контекстные меню

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

⇨ примеры

Новые структурные элементы

Так как HTML 4 слабо структурирован, в 5-ю версию спецификации были добавлены новые элементы, призванные исправить этот недостаток:

Новые inline-элементы

Стандарт HTML5 вводит новые элементы, которые позволяют специальным образом выделять фрагменты текста, содержащие время и числа:

Новые типы полей ввода

HTML5 добавляет ряд новых типов для полей ввода данных:

Некоторые из них широко применяются в пользовательских интерфейсах desktop-приложений. И, вероятнее всего, они будут уже хорошо знакомы всем вашим пользователям.

Устаревшие (deprecated) элементы

Следующие элементы HTML считаются устаревшими:

Синтаксис для задания кодировки

Синтаксис для задания кодировки документа в HTML5 теперь выглядит очень просто: <meta charset="UTF-8">

или <META http-equiv=Content-Type content="text/html; charset=windows-1251">

Интерактивные нововведения

Несколько нововведений, которые сделают создание сайтов и web-приложений проще и приятнее:

Новое определение типа документа (DTD)

В HTML5 стало гораздо проще объявлять DTD: <!doctype html> Объявление DTD стало более симпатичным и, я полагаю, проще запоминающимся. Скорее всего, это является результатом того, что HTML больше не связан с SGML.

Необязательный href в ссылках

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

Атрибут async

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

Заключение

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

Естественно, не все браузеры будут поддерживать весь стандарт целиком (думаю, читатель сейчас вспомнил о "любимом" MSIE). Но поддержка появится со временем. И новые элементы HTML 5 были разработаны с учетом текущей ситуации. С другой стороны, большинство браузеров уже частично поддерживают спецификацию. Так, например, тег <canvas> поддерживается в Firefox, Opera, Chrome и Safari. Плюс, на сколько мне известно, Firefox 3.6, IE9 будет поддерживать теги <audio> и <video>.

HTML5 язык разметки

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

HTML5 — свежайшая версия этого языка. Но несмотря на то, что она собирается принести с собой значительные изменения и новые возможности, нельзя сказать, что подобное происходит впервые и до этого язык никак не развивался. Развивался и постоянно улучшался, причем с самого своего появления.

Как и всемирная сеть вообще, HTML — язык разметки гипертекста (HyperText Mark-up Language) — является детищем сэра Тима Берненс-Ли (Sir Tim Berners-Lee). В 1991 году он написал работу, озаглавленную «HTML Tags», в которой описал чуть меньше двух дюжин тегов, предложенных им для разметки веб-страниц.

Идея использовать для этого кодовые слова внутри треугольных скобок, впрочем, не принадлежит сэру Тиму. Такая система на тот момент уже существовала и использовалась в SGML (Standard Generalised Markup Language, стандартный обобщённый язык разметки), и вместо того, чтобы изобретать что-то с нуля, сэр Тим посчитал более рациональным взять за основу уже существующие решения. Аналогичный подход применялся и вообще на всем пути к HTML5 в процессах разработки.

От IEFT к W3C: дорога к HTML 4

Версии HTML 1 никогда не существовало. Первой официальной спецификацией был сразу HTML 2.0, и издала его организация IETF (Internet Engineering Task Force, Специальная комиссия интернет-разработок). Многие из возможностей языка, описанных в этой спецификации, были основаны на уже используемых сторонних разработках. Например, тег <img> для вставки картинок на страницы был реализован в лидирующем на тот момент (мы говорим о 1994 году) браузере Mosaic, и потом просто перекочевал в стандарт для HTML 2.0.

Эстафету IEFT позже подхватил W3C (World Wide Web Consortium, Консорциум Всемирной Паутины), который и занимался всеми последующими версиями HTML. Во второй половине девяностых велась активная работа над пересмотром и изменением спецификаций, которые в конце концов (точнее, в 1999 году) дали жизнь HTML 4.01.

После этого в истории HTML наступил первый ключевой поворот.

XHTML 1: HTML в виде XML

Новая версия языка разметки после HTML 4.01 была названа XHTML 1.0. «Икс» в названии означал eXtreme, и веб-разработчики были обязаны скрещивать перед собой руки каждый раз, когда произносили это слово.

Нет, конечно нет. На самом деле «икс» означал eXtensible («расширяемый»), а скрещивание рук было по желанию.

Сама по себе спецификация для XHTML 1.0 ничем не отличалась от HTML 4.01. Не добавилось никаких новых тегов или параметров — разница была лишь в правилах синтаксиса. Если в HTML разработчикам была дана полная свобода относительно стиля написания кода, в XHTML требовалось соблюдать правила языка XML, — куда более жесткого и нетерпимого к вольностям, — на котором основывалось большинство разрабатываемых Консорциумом технологий.

Жесткие правила, впрочем, пришлись как раз кстати. Они побуждали кодеров придерживаться единого стиля, например — писать все теги и параметры исключительно в нижнем регистре, тогда как в HTML можно было делать как придется.

Выход XHTML 1.0 совпал с возросшим уровнем поддержки современными браузерами таблиц стилей — CSS, — и строгий синтаксис XHTML укрепился в сообществе разработчиков с репутацией лучшего способа написания кода разметки.

Потом был XHTML 1.1.

Если версия 1.0 была просто HTML, сделанным под XML, то XHTML 1.1 — это уже настоящий, чистый XML. В том смысле, что к нему уже нельзя было применить mime-type text/html и нужно было обозначить документ как отформатированный в XML. Однако в том случае его никак не смог бы отобразить самый популярный на тот момент браузер — Internet Explorer, — так что применять на практике этот язык было явно не вариантом.

Создавалось впечатление, что W3C в свои разработках начинает терять связь с реальностью, по которой жила всемирная сеть.

XHTML 2: нет, это уже ни в какие ворота не лезет

Если бы герой Дастина Хоффмана из фильма «Выпускник» был веб-дизайнером, W3C сказал был ему только одно слово: XML.

Консорциум был уверен, что HTML изжил себя после четвертой версии, и начал работу над XHTML 2, задачей которого было привести сеть к светлому XML-ному будущему. И несмотря на то, что название осталось прежним, новая версия не имела абсолютно ничего общего с XHTML 1. Более того, она не собиралась быть обратно-совместимой со своими предшественниками и старыми версиями HTML (а значит — всем существующим содержимым сети). Вместо этого она должна была представить новый чистый язык, не отягощенный никакими пережитками прошлых спецификаций.

Иными словами, это был бред.

Раскол: W(HATWG) TF?

В среде Консорциума назрело восстание. Было очевидно, что он собирается вести разработку стандартов, — пусть новых, чистых и прекрасных, — но совершенно не отвечающих нуждам современного сообщества веб-дизайнеров и разработчиков. Opera, Apple и Mozilla были явно от этого не в восторге, так как ожидали совершенно другого — больше упора на форматы, позволяющие расширить возможности для создания веб-приложений.

Начало переменам было положено в 2004 году на одном из собраний. Ян Хиксон (Ian Hickson), который на тот момент был сотрудником Opera Software, выдвинул предложение заняться развитием HTML до уровня, позволяющего использовать этот язык для веб-приложений. Предложение было отклонено.

Разочарованные бунтари вынуждены были отколоться от Консорциума и организовать собственную группу: Web Hypertext Application Technology Working Group, сокращенно WHATWG.

От Web Apps 1.0 к HTML5

Принцип работы WHATWG несколько отличался от того, что был в W3C. В W3C вопросы поднимаются, обсуждается, и конечное решение выносится всеобщим голосованием. В WHATWG вопросы так же поднимаются, обсуждается, но окончательные решения относительно того, что включается в спецификацию, а что нет, остаются за главным редактором — Яном Хиксоном.

С виду может показаться, что система в W3C более демократична и честна, но практика показывает, что бесконечные споры и внутренние перебранки жутко тормозят процесс развития. В WHATWG, где каждый может внести свой вклад, но последнее слово остается за Главным, дела движутся куда быстрее. Главред, впрочем, и не обладает абсолютной властью — избранная группа руководящих лиц может оспорить его решение в том маловероятном случае, если оно того требует.

Первоначально, WHATWG было занято двумя спецификациями — Web Forms 2.0 и Web Apps 1.0, — обе из которых должны были стать расширениями для HTML. Но со временем они были объединены в одну общую, названную просто HTML5.

Воссоединение

В то время как в WHATWG работали над HTML5, W3C продолжал канителиться со своим XHTML 2. Нельзя сказать, что вся эта затея скатывалось в говно. Она в него медленно-медленно погружалась.

В октябре 2006-го сэр Тим Бернерс-Ли признал в своем блоге, то идея перевести сеть с HTML на XML была глупой. Спустя несколько месяцев W3C выдал новую установку для HTML Working Group: было разумно решено, что будущие версии HTML следует основать на наработках WHATWG, вместо того, чтобы делать что-то с нуля.

Все эти развороты и смены курса привели к несколько запутанной ситуации. Какое-то время W3C одновременно работал над двумя совершенно несовместимыми языками разметки — XTHML 2 и HTML 5 (обратите внимание, с пробелом), — в то время как WHATWG, отдельная организация, занималась спецификацией HTML5 (без пробела), которая должна была стать основой для другой спецификации в W3C. Хрен срастишь тут, что к чему. Проще было заняться разгадкой последовательности событий в «Мементо» и работах Дэвида Линча.

XHTML мертв, да здравствует синтаксис XHTML

Ситуация начала проясняться в 2009-ом, когда W3C объявил, что обновлений по XHTML 2 больше поступать не будет. По сути, они просто официально признали, что формат был мертв с самого рождения.

Однако, странным образом, вместо того, чтобы обойтись без лишнего внимания, смерть XHTML 2 породила какие-то злорадные бурления. Противники XML превратили новость в призыв отказаться от XHTML 1, хотя с XHTML 2 тот, как мы знаем, не имел ничего общего. В свою очередь сторонники XHTML 1, адепты строгого синтаксиса, были обеспокоены тем, что HTML5 вновь узаконит небрежную верстку.

Последнее, впрочем, не должно казаться серьезной проблемой — как мы рассмотрим далее, степень сторогости синтаксиса HTML5 каждый вправе выбрать для себя самостоятельно.

Развитие HTML5

Текущее состояние HTML5 не настолько туманное как раньше, но и все еще не слишком прозрачное.

Две организации сейчас работают над этим форматом. В WHATWG разрабатывают спецификацию, основываясь на принципе «сначала запустить, потом проверять». W3C HTML Working Group в свою очередь берет эту спецификацию и пропускает ее через процесс «сначала проверить, потом запустить». Как видно, такое сотрудничество вряд ли можно назвать крепким и эффективным. Но по крайней мере, вроде как разрешился вопрос «ставить или не ставить пробел» в названии стандарта (ставить его не надо, если что, — HTML5).

Что сейчас больше всего волнует веб-дизайнеров, которые уже опробывали некоторые из возможностей нового языка, это вопрос «Когда это будет готово?» В одном из интервью Ян Хиксон упомянул 2022-ой год как дату, когда HTML5 получит статус «proposed recommendation». Это вызвало волну возмущения среди дизайнеров, так как они понятия не имели, что значит «proposed recommendation», но точно знали, что им явно не хватает пальцев посчитать, сколько лет надо еще ждать до 2022-го.

Если разобраться, возмущения необоснованы. В данном случае «proposed recommendation» означает, что к этому времени в браузерах должна быть полная поддержка всех возможностей языка. В этом случае ориентироваться на 2022 даже слишком смело; мы все знаем, что многие браузеры с трудом подхватывали в свое время даже существующие стандарты. Взять хотя бы Internet Explorer, которому понадобилось больше десяти лет, чтобы начать элементарно поддерживать тег.

Дата, на которую действительно надо ориентироваться, это 2012 год, когда HTML5 будет присвоен статус «candidate recommendation», означающий, что спецификация окончательно сформулирована и как таковой стандарт готов.

Но, ясное дело, это не будет означать, что все из него будет сразу доступно к применению — нужно будет следить за тем, как браузеры постепенно добавляют поддержку тех или иных фич и начинать их использовать по мере появления. Точно так же было с CSS 2.1, на самом деле: мы начали применять возможности этого стандарта по мере того, как браузеры включали его поддержку по частям. Если бы мы предпочли ждать, когда они реализуют его целиком, мы бы ждали до сих пор.

Иными словами, не будет такого момента, когда можно будет сказать «Бах, время HTML5 пришло!». Но начинать работать с ними можно уже сейчас. Благо, язык этот получил рождение не через революцию, а в процессе эволюции, и основывается на том, что было создано до него. Таким образом, можно сказать, что если вы пользуетесь любыми предыдущими версиями HTML, вы уже пользуетесь HTML5.

Модель HTML5

Великая Французская революция была временем радикальных политических и социальных преобразований. Времени как такового они тоже коснулись: в определенный период своего существования Французская Республика жила по новой системе — в сутках было 10 часов по сто минут каждый. Очевидно, что она была была куда логичнее и «правильнее» привычной шестидесятеричной.

Вместе с тем, она была полным провалом. Никто ей не пользовался.

То же самое можно сказать и про XHTML 2. W3C только лишний раз доказал то, чему нас научил урок послереволюционной Франции: изменить привычки людей по приказу очень-очень трудно.

Принципы модели

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

Тогда как XHTML 2 намеревался забить на все, что было до него, и начать по-новой, HTML5 — это надстойка для существующих спецификаций. В нем сохранилось и поддерживается многое из HTML 4.01.

Некоторые из других принципов: «Не изобретать велосипед» и «Мостить натоптанные тропы». Последний означает, что если среди веб-дизайнеров есть какой-то широко распространенный и популярный способ решать определенную проблему или задачу — даже если он не самый лучший — его следует принять во внимание и добавить в спецификацию. Можно еще сказать: «Не чинить то, что не сломано».

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

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

Ян Хиксон много раз обращал внимание на то, что разработчики браузеров («реализаторы») могут сильно влиять на что попадает в HTML5, а что нет. Если какой-то браузер отказывается включать поддержку определенной возможности, нет смысла добавлять ее в спецификацию, иначе та просто не будет связана с реальностью. В этом плане, согласно порядку важности составляющих, мы, веб-дизайнеры, имеем еще больше влияния. Если мы сочтем часть спецификации ненужной или неправильной и не будем ее использовать, она точно так же перестанет быть связаной с реальностью и потребует пересмотра.

Без крайностей

Разработка HTML5 сопряжена с постоянным внутренним напряжением и противоречием. С одной стороны, спецификация должна быть достаточно функциональной и мощной, чтобы стать надежной платформой для создания веб-приложений. С другой стороны, HTML5 должен быть способен поддерживать уже существующее содержимое сети, даже если там по нынешним сплошной беспорядок и месиво в коде. Если спецификация отклонится слишком сильно в одно направление, ее ждет судьба XHTML2. Если в другое — краеугольным камнем снова станут тег и таблицы как средство разметки, ведь с их помощью, в конце концов, построено огромное количество существующих веб-страниц.

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

Обработка ошибок

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

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

Решение ввести стандарты для этой процедуры в HTML5 очень амбициозно. Даже если бы набор тегов и атрибутов в этой версии ничем не отличался от того, что в HTML 4.01, разработка одного только единого свода правил обработки ошибок к 2012-ому году была бы все равно что сизифов труд.

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

Выкладывай, Док(тайп)

Доктайп (doctype, Document Type Declaration) — традиционный способ указывать тип языка разметки, который используется на данной странице.

Так выглядит доктайп для HTML 4.01:

 "http://www.w3c.org/TR/html4/strict.dtd">

Так — для XHTML 1.0:

"http://www.w3c.org/TR/xthml1/DTD/xhtml1-strict.dtd">

Совершенно нечитаемо для человека, но, как ни крути, эдакий способ по-своему сказать просто «Эта страница написана на HTML 4.01» или «Эта страница написана на XHTML 1.0».

Можно предположить, что для HTML5 должно быть что-нибудь подобное с цифрой пять воткнутой где-нибудь. Как ни странно, нет:

Наконец-то это можно будет выучить наизусть.

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

На самом деле, идея проста и очень прагматична. Задача HTML5 — поддерживать существующие HTML 4.01 и XHTML 1.0 страницы, и этого доктайпа им хватит. Новые версии HTML, в свою очередь, должны будут поддерживать HTML5, оттого включать в него постоянно порядковый номер совершенно бессмысленно.

А вообще, и доктайпы сами по себе то и не так важны. Скажем, написали вы страницу с доктайпом от HTML 4.01, а потом взяли и добавили туда элементов из другой спецификации — пусть HTML 3.2, пусть HTML5, не суть. Браузер все равно никуда не денется и обработает их как умеет. Браузеры поддерживают элементы и фичи, а не доктайпы.

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

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

Незачем усложнять

В HTML5 упростили не только доктайп.
Если вы хотите обозначит кодировку для своей страницы, лучший способ это сделать — убедиться, что сервер отдает корректное значение в Content-Type. Чтобы быть совсем уверенным, можно воспользоваться тегом . Так это было раньше:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Так это в HTML5:
Как и в случае с доктайпом, здесь ничего лишнего — только то, чего будет достаточно для браузера, чтобы понять о чем речь.
Тегу
Браузерам это не нужно. Они и так поймут, что код написан на Javascript — самом популярном языке скриптов в сети (да что скрывать: единственном языке скриптов): script>

Точно так же нет смысла в параметре type со значением text/css, когда вы прикрепляете таблицу стилей. Можно просто написать:

HTML5 Синтаксис

Некоторые языки программирования, например Python, очень требовательны к оформлению кода: даже использование пробелов в определенных ситуациях обязательно для соблюдения правил. Другие языки, скажем Javascript, на форматирование внимания не обращают — та же отбивка начала строки пробелами никак не повлияет на код.

Если хотите разжечь лютый холивар и таким образом организовать себе веселую программу на вечер — заполните комнату программистами и произнесите слова «важны ли в коде пробелы». Не забудьте поп-корн.

Этот вопрос лежит в корне глубокой философской дилеммы: должен ли язык заставлять следовать определенному стилю оформления кода, или же можно позволить кодерам самим решать, как они его пишут?

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

До XHTML 1.0 не имело значения, пишете вы названия тегов в верхнем или нижнем регистре. Не имело значения, в кавычках ли были значения параметров или нет. Для многих элементов не важно даже было, добавили ли вы закрывающий тег или нет.

XHTML 1.0 придерживается синтаксиса XML: теги всегда в нижнем регистре, значения параметров только в кавычках, все контейнерные элементы обязательно закрываются. И одиночные тоже — перед закрывающей скобкой должен стоять слеш (> ).

В HTML5 вы решаете сами: верхний регистр — нижний, кавычки — без кавычек, закрывающийся или нет. Как вам больше нравится.

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

Мне понятно, почему многим такая фривольность HTML5 не по душе. Некоторые считают, что она отбрасывает нас назад, во времена порочных практик неряшливого кода, и более того — считают, что HTML5 поощряет такой стиль разметки. Я не думаю, что это так, но вижу причину беспокойства. Это как если бы язык программирования с синтаксически важными пробелами между строками стал внезапно менее требовательным.

Лично я спокойно отношусь к такой свободе выбора в HTML5, так как уже привык самостоятельно следить за стилем кода, который пишу. Было бы здорово, впрочем, иметь для этого языка такого рода инструмент, который в мире программирования зовется «lint-tool», — программу, анализирующую разметку и указывающую на распространенные и потенциально «опасные» практики оформления кода, а также непоследовательности в стиле его написания. Это несколько отличается от валидатора, который проверят код, отталкиваясь только от доктайпа. Первый, кто сможет разработать сервис, совмещающий в себе и то и другое, определенно заслужит честь и уважение со стороны мирового сообщества веб-дизайнеров.

Мы здесь так не говорим

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

В HTML5 нет изъятых элементов или параметров, вместо них только устаревшие.

Нет, это не политкорректный вариант названия для того же понятия — между изъятый и устаревший в данном случае есть важная разница.

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

Если вы только не занимаетесь разработкой собственного браузера, для вас нет разницы между изъятыми и устаревшими элементами — вы просто их не используете и не приглашаете в гости.

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

Разлука будет без печали

Признаны устаревшими теги: frame, frameset и noframes. По ним скучать не будут.

Устаревшим является тег acronym, что наконец-то положит конец длившимся годы холиварам и спорам. Не стоит его оплакивать, просто используйте тег abbr вместо него. И, да, я знаю разницу между аббревитурой и акронимом: акронимы — это аббревиатуры, которые произносятся целиком, как слово, а не по буквам (например, НАТО). Не каждая аббревиатура — акроним, но каждый акроним — аббревиатура, потому здесь достаточно одного тега.

Оформляющие элементы font, big и center тоже устарели, и, на самом деле, это случилось давно — еще с приходом CSS, где аналогичные эффекты можно назначать быстрее и легче. По тем же причинам, с нами больше нет параметров bgcolor, cellspasing, cellpadding и valign. Вместо них пользуйтесь CSS.

Не все однако из оформляющих элементов были записаны в устаревшие. Некоторые были отправлены на курсы переквалификациии и получили второй шанс.

Подмены понятий

Элемент big устарел, но вот small — нет. Такая непоследовательность оправдывается за счет того, что значение последнего было пересмотрено. Это теперь не физическое «сделать текст мельче», а семантический «мелкий шрифт». Ну, вы поняли, — условия пользования, сноски для «звездочек» и так далее.

Понятное дело, что в 9 случаях из 10 этот «мелкий шрифт» будет действительно набран мелко; смысл в том, что роль элемента теперь более смысловая, чем оформительская.

Элемент b раньше означал просто «полужирный текст». Теперь это — «текст, стилистически выделенный из основного потока, но не несущий дополнительной смысловой значимости». Когда смысловая значимость таки присутствует, скорее подойдет strong.

Так же, элемент i теперь не означает «курсивный». Это — «произнесенный другой интонаций или с другим настроением». Опять же, без особого значения или ударения. Для того, что подчеркнуть значимость, используйте элемент em.

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

…конец цитаты

Значение элемента cite тоже было слегка изменено. Если раньше он означал «ссылка на источник», то теперь это — «заголовок источника». Очень часто при цитировании источником будет как раз заголовок книги, фильма или чего угодно, на что мы ссылаемся. Однако точно так же это может быть и имя человека. В HTML5, при этом, использовать личные имена внутри элемента cite противоречит спецификации.

Объясняется это так: браузеры делают содержимое тега курсивным. Заголовки работ обычно выделяются курсивом. Имена людей курсивом не выделяются. Поэтому элемент cite не должен применяться для ссылки на конкретного человека.

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

на стероидах

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

Без сомнения, элемент a — самый важный во всем HTML. Это он превращает текст в гипертекст и делает возможным существование всемирной сети как таковой.
До этого он всегда был только строковым элементом. То есть, если вы захотите сделать ссылкой заголовок и следующий за ним абзац с текстом одновременно, вам придется использовать a дважды.

Новые игрушки: API для Javascript

Если вам нужна документация по стилям, вы идете и читаете спецификацию для CSS. Если вам нужна документация по разметке, вы берете HTML-спецификацию. Но куда идти, если вам нужно узнать об API дя JS, таких как document.write, innerHTML и window.history? Спецификация для Javascript посвящена программированию, вы не найдете там никаких из API браузеров.

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

Может показаться странным, что спецификация языка разметки будет включать в себя документацию по Javascript, но не стоит забыть, что HTML5 начинался с проекта Web Apps 1.0, а JS — неотъемлемый компонент веб-приложений.

 

Список тегов html 5

В данной таблице представлен список тегов поддерживающихся в HTML 5. Список редактируется - дополняется новыми тегами по мере их появления. Нажав в списке на интересующий вас тег, вы перейдете на страницу с его полным описанием.

ТегКраткое описание
<!-- -->Добавляет комментарий к коду документа.
<!DOCTYPE>Указывает тип текущего документа.
<a>Создает гиперссылку.
<abbr>Определяет текст как аббревиатуру.
<address>Определяет контактную информацию автора документа/статьи.
<area>Определяет активную область внутри карты-изображения.
<article>Определяет текст как статью, новость и др.
<aside>Определяет контент в стороне от содержимого страницы.
<audio>Определяет звуковое содержимое.
<b>Выделяет текст жирным шрифтом.
<base>Определяет базовый URL для всех ссылок имеющих относительный адрес на странице.
<bdi>Изолирует часть текста от форматирования.
<bdo>Определяет направление отображения текста.
<blockquote>Определяет длинные цитаты.
<body>Определяет тело документа.
<br>Осуществляет разрыв строки.
<button>Создает кнопку.
<canvas>Определяет область для рисования графики.
<caption>Определяет заголовок для таблицы.
<cite>Определяет заголовок для работы - преобразует текст в курсивный.
<code>Определяет кусок программного кода - преобразует текст в моноширинный.
<col>Используется в таблице, определяет свойства для каждой колонки внутри элемента colgroup.
<colgroup>Определяет одну или несколько колонок в таблице для форматирования.
<command>Добавляет команду к кнопке.
<datalist>Определяет список из допустимых значений для поля ввода.
<dd>Определяет описание к термину в списке определений.
<del>Определяет текст, который был удален из документа - отображается перечеркнутым текстом.
<details>Определяет детали документа, которые пользователь может скрыть или показать.
<dfn>Выделяет определения термина - преобразует шрифт в наклонный.
<div>Определяет раздел документа.
<dl>Создает список определений.
<dt>Oпределяет термин в списке определений.
<em>Определяет выделенный текст - отображается курсивным начертанием.
<embed>Создает область для внешнего приложения или интерактивного содержимого.
<fieldset>Объединяет связанные элементы в форме.
<figcaption>Определяет заголовок для элемента <figure>.
<figure>Группирует элементы страницы.
<footer>Нижняя часть документа.
<form>Определяет HTML форму.
<h1> - <h6>Определяют HTML заголовки.
<head>Содержит информацию о документе.
<header>Задает "шапку" сайта или раздела.
<hgroup>Группирует набор заголовков, когда они расположены друг за другом.
<hr>Создает горизонтальную линию.
<html>Определяет html документ.
<i>Преобразует текст в курсивный.
<iframe>Определяет встроенный frame.
<img>Определяет изображение.
<input>Создаeт поле для ввода данных.
<ins>Определяет текст, который был добавлен в документ - отображает текст подчеркнутым.
<kbd>Определяет текст вводимый с клавиатуры - преобразует текст в моноширинный.
<keygen>Используется для генерации пары ключей (для форм).
<label>Определяет метку для элемента <input>.
<legend>Определяет заголовок для элемента <fieldset>, <figure> или <details>.
<li>Определяет элемент списка.
<link>Определяет взаимосвязь между документом и внешним ресурсом.
<map>Создает карту-изображение.
<mark>Определяет важную часть текста.
<menu>Определяет список/меню команд.
<meta>Определяет мета-данные о HTML-документе.
<meter>Определяет скалярное измерение в пределах известного диапазона.
<nav>Определяет группу ссылок для навигации.
<noscript>Определяет альтернативный контент для пользователей, браузер которых не поддерживает скрипты.
<object>Определяет встроенный объект в HTML-документе.
<ol>Создает нумерованный (упорядоченный) список.
<optgroup>Группирует связанные логически элементы в выпадающем списке.
<option>Определяет элемент выпадающего списка.
<output>Определяет область, в которую выводится результат расчета.
<p>Определяет абзац.
<param>Определения параметры плагинов.
<pre>Оставляет содержимое в первоначальном виде.
<progress>Отображает прогресс выполнения задачи.
<q>Определяет короткую цитату.
<rp>Определяет, что показывать браузеру, который не поддерживает тег <ruby>.
<rt>Добавляет аннотацию сверху или снизу от символов, заключенных в элементе <ruby>.
<ruby>Определяет небольшую аннотацию (для типографии Восточной Азии).
<s>Определяет текст, который больше не является правильным - отображает текст перечеркнутым.
<samp>Определяет текст, который является результатом вывода компьютерной программы.
<script>Определяет скрипт.
<section>Определяет разделы документа.
<select>Создает выпадающий список.
<small>Определяет текст маленького размера.
<source>Определяет звуковой или видео файл для тегов <audio> и <video>.
<span>Определяет строчный элемент документа.
<strong>Определяет важный текст - преобразует шрифт в полужирный.
<style>Определяет стиль к элементам веб-страницы.
<sub>Определяет текст в нижнем индексе.
<summary>Определяет видимый заголовок для элемента <details>.
<sup>Определяет текст в верхнем индексе.
<table>Создает таблицу.
<tbody>Группирует основное содержимое в таблице.
<td>Создает ячейку таблицы.
<textarea>Создает многострочное текстовое поле.
<tfoot>Определяет нижнюю часть таблицы.
<th>Создает заголовочную ячейку в таблице.
<thead>Группирует заголовочные ячейки таблицы.
<time>Определяет время или дату.
<title>Определяет основной заголовок документа.
<tr>Создает строку в таблице.
<track>Определяет текстовые дорожки для элементов audio и video.
<u>Выделяет текст, стилистически отличающийся от основного текста.
<ul>Определяет маркированный (неупорядоченный) список.
<var>Определяет переменную - выделяет текст курсивом.
<video>Добавляет на страницу видео файл.
<wbr>Определяет возможный перенос строки в тексте.

Атрибуты HTML5

Атрибуты событий HTML5

Атрибуты событий окна

События, вызываемые на объект окна.

Относятся к тегу <body>:

АтрибутЗначениеОписание
onafterprintscriptСкрипт выполняется после того как документ напечатан
onbeforeprintscriptСкрипт выполняется до того как документ напечатан
onbeforeonloadscriptСкрипт выполняется перед загрузкой документа
onblurscriptСкрипт выполняется, когда окно теряет фокус
onerrorscriptСкрипт выполняется при возникновении ошибки
onfocusscriptСкрипт выполняется, когда окно получает фокус
onhaschangescriptСкрипт выполняется, когда документ изменился
onloadscriptСкрипт запускается при загрузке документа
onmessagescriptСкрипт выполняется, когда сообщение срабатывает
onofflinescriptСкрипт выполняется, когда документ переходит в автономный режим
ononlinescriptСкрипт выполняется, когда документ поступает онлайн
onpagehidescriptСкрипт выполняется, когда окно скрыто
onpageshowscriptСкрипт выполняется, когда окно становится видимым
onpopstatescriptСкрипт выполняется, когда история окна изменяется
onredoscriptСкрипт выполняется, когда документ выполняет повтор
onresizescriptСкрипт выполняется при изменении размеров окна
onstoragescriptСкрипт запускается при загрузке документа
onundoscriptСкрипт выполняется, когда документ выполняет "отменить"
onunloadscriptСкрипт выполняется, когда пользователь покидает документ

События формы

События выполняются по действиям внутри HTML form.

Относятся ко всем элементам HTML5, но чаще всего к элементам формы:

АтрибутЗначениеОписание
onblurscriptСкрипт выполняется, когда элемент теряет фокус
onchangescriptСкрипт выполняется, когда элемент изменился
oncontextmenuscriptСкрипт выполняется, когда контекстное меню срабатывает
onfocusscriptСкрипт выполняется, когда элемент получает фокус
onformchangescriptСкрипт выполняется, когда форма изменена
onforminputscriptСкрипт выполняется, когда форма получает пользовательский ввод
oninputscriptСкрипт выполняется, когда элемент получает пользовательский ввод
oninvalidscriptСкрипт выполняется, когда элемент недействителен
onresetscriptСкрипт выполняется, когда форма сбрасывается
Не поддерживается в HTML5
onselectscriptСкрипт выполняется, когда элемент выбран
onsubmitscriptСкрипт выполняется при отправке формы

События клавиатуры

События, вызываемые клавиатурой.

Относятся ко всем элементам HTML5.

АтрибутЗначениеОписание
onkeydownscriptСкрипт выполняется при нажатии клавиши
onkeypressscriptСкрипт выполняется при нажатии и отпускании клавиши
onkeyupscriptСкрипт выполняется при отпускании клавиши

События мышки

Срабатывание по мышке или аналогичные действия пользователя.

Относятся ко всем элементам HTML5.

АтрибутЗначениеОписание
onclickscriptСкрипт выполняется по щелчку мышки
ondblclickscriptСкрипт выполняется при двойном нажатии на мышку
ondragscriptСкрипт выполняется при перетаскивании элемента
ondragendscriptСкрипт выполняется по окончании перетаскивания элемента
ondragenterscriptСкрипт выполняется, когда элемент перетащен в допустимую цель
ondragleavescriptСкрипт выполняется, когда элемент покидает допустимую цель
ondragoverscriptСкрипт выполняется, когда элемент перетаскивают над допустимой целью падения
ondragstartscriptСкрипт выполняется в начале операции перетаскивания
ondropscriptСкрипт выполняется, когда перетаскиваемый элемент отпущен
onmousedownscriptСкрипт запускается при нажатии кнопки мышки
onmousemovescriptСкрипт выполняется при перемещении указателя мышки
onmouseoutscriptСкрипт выполняется, когда указатель мыши выходит из элемента
onmouseoverscriptСкрипт выполняется при наведении указателя мыши на элемент
onmouseupscriptСкрипт выполняется при отпускании кнопки мышки
onmousewheelscriptСкрипт выполняется, когда колеса мышки вращаются
onscrollscriptСкрипт выполняется, когда полоса прокрутки элемента прокручивается

Собыия медиа

События срабатывание на медиа, как видео, изображение и звук.

Относятся ко всем элементам HTML5, но чаще всего к элементам медиа, как аудио, изображение, объект и видео:

АтрибутЗначениеОписание
onabortscriptСкрипт выполняется в случае отмены события
oncanplayscriptСкрипт выполняется, когда медиа может начать играть, но, возможно будет остановлено для буферизации
oncanplaythroughscriptСкрипт выполняется, когда медиа может быть проиграно до конца, без остановок для буферизации
ondurationchangescriptСкрипт выполняется, когда длина медиа изменилась
onemptiedscriptСкрипт выполняется, когда ресурс медиа элемента вдруг становится пустым (сетевые ошибки, ошибки при загрузке и т.д.)
onendedscriptСкрипт выполняется, когда медиа дошло до конца
onerrorscriptСкрипт выполняется при возникновении ошибки во время загрузки элемента
onloadeddatascriptСкрипт выполняется, когда данные медиа загрузились
onloadedmetadatascriptСкрипт выполняется, когда продолжительность и другие данные медиа-элемента загрузились
onloadstartscriptСкрипт выполняется, когда браузер начинает загружать медиа-данные
onpausescriptСкрипт выполняется, когда медиа приостановлено
onplayscriptСкрипт выполняется, когда медиа, собирается начать играть
onplayingscriptСкрипт выполняется, когда медиа начинает играть
onprogressscriptСкрипт выполняется, когда браузер получает медиа-данные
onratechangescriptСкрипт выполняется, когда скорость проигрываемых медиа данных изменилась
onreadystatechangescriptСкрипт выполняется, когда готовое состояние изменилось
onseekedscriptСкрипт выполняется, когда атрибут медиа-элемента seeking больше не true, и поиск закончился
onseekingscriptСкрипт выполняется, когда атрибут медиа-элемента seeking равен true, и поиск начался
onstalledscriptСкрипт выполняется, когда есть ошибки в выборке данных медиа (тупик)
onsuspendscriptСкрипт выполняется, когда браузер выполнял извлечение данных медиа, но остановился перед тем как весь файл медиа был получен
ontimeupdatescriptСкрипт выполняется, когда медиа меняет свою игровую позицию
onvolumechangescriptСкрипт выполняется, когда объем звука медиа изменился, и тогда, когда объем звука установлен в положение "Mute"
onwaitingscriptСкрипт выполняется, когда медиа перестала играть, но как ожидается, возобновится


Атрибуты, перечисленные ниже, поддерживаются всеми тегами HTML 5, с некоторыми исключениями.

Глобальные атрибуты HTML5

 

АтрибутЗначениеОписание
accesskeyсимволОпределяет сочетание клавиш для доступа к элементу
classимя классаОпределяет имя класса для элемента (используется в таблицах стилей)
contenteditabletrue
false
Указывает, если пользователь может редактировать содержимое или нет
contextmenuидентификатор менюУказывает, контекстное меню для элемента
dirltr
rtl
Определяет направление текста для содержания в элементе
draggabletrue
false
auto
Указывает, разрешено ли пользователю перетаскивать элемент
dropzonecopy
move
link
Указывает, что происходит когда перетаскиваемый элемент/данные помещаются в элемент
hiddenhiddenУказывает, что элемент не имеет значения. Скрытые элементы не отображаются
idидентификаторОпределяет уникальный идентификатор для элемента
langкод языкаУказывает код языка содержания в элементе
spellchecktrue
false
Указывает, если элемент должен иметь свою проверку орфографии и грамматики
styleопределение стиляЗадает встроенный стиль для элемента
tabindexчислоУказывает порядок табуляции элемента
titleтекстУказывает дополнительную информацию об элементе


Глобальные атрибуты, которые могут содержать html элементы

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

АтрибутЗначениеОписание
accesskeyсимволОпределяет сочетание клавиш для доступа к элементу.
classимя_классаОпределяет имя класса, указанного в таблице стилей (позволяет связать тег с определенным стилем).
contenteditabletrue
false
inherit
Указывает, может ли пользователь редактировать содержимое данного элемента или нет.
contextmenumenu_idОпределяет контекстное меню для элемента. Значение должно быть идентификатором для элемента <menu>.
dirltr
rtl
auto
Определяет направление текста в элементе (слева направо или справа налево).
draggabletrue
false
auto
Определяет, может ли пользователь перемещать элемент или нет.
dropzonecopy
move
link
Определяет, что происходит при перетаскивании элемента.
hiddenhiddenУказывает, что данный элемент должен быть скрытым от просмотра.
ididОпределяет уникальный идентификатор для элемента.
langкод_языкаОпределяет язык содержимого в элементе (используется для правильного отображения некоторых национальных символов).
spellchecktrue
false
Указывает браузеру проверять или нет данный элемент на правописание и грамматику в тексте.
styleсвойстваЗадает встроенный стиль для элемента.
tabindexчислоУказывает порядок перехода между элементами (при использовании клавиши "tab").
titleтекстУказывает дополнительную информацию об элементе (отображается браузерами в виде всплывающей подсказки).

События html, используемые языком javascript при написании обработчиков событий

События HTML 5 - это специальные глобальные атрибуты, используемые в тегах для вызова обработчиков событий, написаных на различных языках сценариев таких, как javascript и вызываемых, когда на странице происходит какое-либо действие. События позволяют сделать вашу страницу динамической.

Атрибуты событий окна

События, вызываемые на объект окна (применяются с тегом <body>):

АтрибутЗначениеОписание
onafterprintскриптСкрипт запустится после того, как документ будет распечатан.
onbeforeprintскриптСкрипт запустится прежде, чем документ будет распечатан.
onbeforeonloadскриптСкрипт запустится до загрузки документа.
onblurскриптСкрипт запустится, когда окно потеряет фокус.
onerrorскриптСкрипт запустится, если произойдет ошибка.
onfocusскриптСкрипт запустится, когда окно получит фокус.
onhaschangeскриптСкрипт запустится, после изменения документа.
onloadскриптСкрипт запустится при загрузке документа.
onmessageскриптСкрипт запустится при срабатывании сообщения.
onofflineскриптСкрипт запустится, когда документ перейдет в автономный режим.
ononlineскриптСкрипт запустится, когда документ войдет в сеть.
onpagehideскриптСкрипт запустится, когда окно будет скрыто.
onpageshowскриптСкрипт запустится, когда окно станет видимым.
onpopstateскриптСкрипт запустится при изменении окна истории.
onredoскриптСкрипт запустится, когда документ начнет выполнять повтор.
onresizeскриптСкрипт запустится при изменении размеров окна.
onstorageскриптСкрипт запустится при загрузке документа.
onundoскриптСкрипт запустится при выполнении команды отменить в документе.
onunloadскриптСкрипт запустится при выходе пользователя из документа.

События формы

События срабатывают на действия внутри HTML-формы (могут применяться ко всем элементам HTML, но чаще всего применяются к элементам формы):

АтрибутЗначениеОписание
onblurскриптСкрипт запустится, когда элемент потеряет фокус.
onchangeскриптСкрипт запустится при изменении элемента.
oncontextmenuскриптСкрипт запустится при вызове контекстного меню.
onfocusскриптСкрипт запустится, когда элемент получит фокус.
onformchangeскриптСкрипт запустится при изменении формы.
onforminputскриптСкрипт запустится, когда пользователь будет вводить данные в форму.
oninputскриптСкрипт запустится, когда элемент станет получать пользовательский ввод.
oninvalidскриптСкрипт запустится, когда элемент станет недействителен.
onselectскриптСкрипт запустится при выборе элемента.
onsubmitскриптСкрипт запустится при отправке формы.

События клавиатуры

События, вызываемые клавиатурой (могут применяться ко всем элементам HTML):

АтрибутЗначениеОписание
onkeydownскриптСкрипт запустится, когда будет нажата клавиша.
onkeypressскриптСкрипт запустится после того, как клавиша была нажата и отпущена.
onkeyupскриптСкрипт запустится при отпускании клавиши.

События мыши

События, вызываемые действиями мышкой или аналогичными действиями пользователя (могут применяться ко всем элементам HTML):

АтрибутЗначениеОписание
onclickскриптСкрипт запустится по клику мыши.
ondblclickскриптСкрипт запустится после двойного клика мыши.
ondragскриптСкрипт запустится при перетаскивании элемента.
ondragendскриптСкрипт запустится после операции перетаскивания.
ondragenterскриптСкрипт запустится, когда элемент будет перенесен на допустимую зону падения.
ondragleaveскриптСкрипт запустится, когда элемент отпустят в действующий зоне падения.
ondragoverскриптСкрипт запустится, если элемент тащат за допустимую зону падения.
ondragstartскриптСкрипт запустится в начале операции перетаскивания элемента.
ondropскриптСкрипт запустится после перетаскивания элемента при падении.
onmousedownскриптСкрипт запустится при нажатии кнопки мыши.
onmousemoveскриптСкрипт запустится, когда указатель мыши начнет перемещаться.
onmouseoutскриптСкрипт запустится, когда указатель мыши будет перемещаться из элемента.
onmouseoverскриптСкрипт запустится, когда указатель мыши будет перемещаться над элементом.
onmouseupскриптСкрипт запустится при отпускании кнопки мыши.
onmousewheelскриптСкрипт запустится при использовании колеса мыши.
onscrollскриптСкрипт запустится во время прокручивания полосы прокрутки элемента.

События медиа-файлов

События, вызываемые для медиа файлов, таких как видео, изображения и аудио (могут применяться ко всем элементам HTML, но чаще всего применяются к таким элементам, как <audio>, <embed>, <img>, <object>, и <video>):

АтрибутЗначениеОписание
onabortскриптСкрипт запустится при прерывании.
oncanplayскриптСкрипт запустится, когда файл будет готов, чтобы начать проигрывание (когда будет достаточно буферизирован).
oncanplaythroughскриптСкрипт запустится, когда файл может быть воспроизведен полностью (от начала до конца), не останавливаясь для буферизации.
ondurationchangeскриптСкрипт запустится при изменении длины продолжительности медиа файла.
onemptiedскриптСкрипт запустится, когда произошла какая-то неполадка и файл стал недоступен (например при разрыве связи с интернетом).
onendedскриптСкрипт запустится, когда аудио/видео файл дойдет до конца (например для вывода сообщения: спасибо за прослушивание/просмотр).
onerrorскриптСкрипт запустится, если возникнет ошибка при загрузке файла.
onloadeddataскриптСкрипт запустится при загрузке данных медиа файла.
onloadedmetadataскриптСкрипт запустится, когда загружены мета-данные (например размер и продолжительность).
onloadstartскриптСкрипт запустится при загрузке файла прежде, чем начнет загружаться на самом деле.
onpauseскриптСкрипт запустится, если воспроизведение файла приостановлено (нажали паузу) пользователем или программно.
onplayскриптСкрипт запустится, когда файл готов начать воспроизводиться.
onplayingскриптСкрипт запустится при воспроизведении файла.
onprogressскриптСкрипт запускается, когда браузер находится в процессе получения данных медиа файла.
onratechangeскриптСкрипт запускается, каждый раз, при изменении режима воспроизведения (например, когда пользователь переключается на медленное воспроизведение или режим быстрой перемотки).
onreadystatechangeскриптСкрипт запускается, каждый раз, при изменении состояния готовности (состояние готовности отслеживает состояние данных файла).
onseekedскриптСкрипт запускается, когда атрибут seeked у тегов audio или video имеет значение "false", т.е.текущая позиция воспроизведения найдена.
onseekingскриптСкрипт запускается, когда атрибут seeking у тегов audio или video имеет значение "true", т.е. текущая позиция воспроизведения перемещается.
onstalledскриптСкрипт запускается, когда браузер не может получить данные медиа файла по любой причине.
onsuspendскриптСкрипт запускается, когда получение данных медиа файла прекращается, до окончания полной загрузки по любой причине.
ontimeupdateскриптСкрипт запускается, когда позиция воспроизведения изменилась (например, когда пользователь выбрал точку воспроизведения на много дальше от текущей).
onvolumechangeскриптСкрипт запускается каждый раз при изменении значения громкости звука (включая полное отключение звука).
onwaitingскриптСкрипт запускается, когда медиа файл остановлен, но ожидается возобновление запуска (например, когда файл делает паузу для буферизации оставшихся данных).

Блочные и строчные элементы html

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

Строчные элементы

ЭлементКраткое описание
<a>Создает гиперссылку.
<abbr>Определяет текст как аббревиатуру.
<audio>Определяет звуковое содержимое.
<b>Выделяет текст жирным шрифтом.
<bdo>Определяет направление отображения текста.
<button>Создает кнопку.
<canvas>Определяет область для рисования графики.
<cite>Определяет заголовок для работы - преобразует текст в курсивный.
<code>Определяет кусок программного кода - преобразует текст в моноширинный.
<del>Определяет текст, который был удален из документа - отображается перечеркнутым текстом.
<dfn>Выделяет определения термина - преобразует шрифт в наклонный.
<em>Определяет выделенный текст - преобразует текст в курсивный.
<i>Преобразует текст в курсивный.
<iframe>Определяет встроенный frame.
<img>Определяет изображение.
<input>Создаeт поле для ввода данных.
<ins>Определяет текст, который был добавлен в документ - отображает текст подчеркнутым.
<kbd>Определяет текст вводимый с клавиатуры - преобразует текст в моноширинный.
<mark>Определяет важную часть текста.
<meter>Определяет скалярное измерение в пределах известного диапазона.
<q>Определяет короткую цитату.
<rp>Определяет, что показывать браузеру, который не поддерживает тег <ruby>.
<rt>Добавляет аннотацию сверху или снизу от символов, заключенных в элементе <ruby>.
<s>Определяет текст, который больше не является правильным - отображает текст перечеркнутым.
<samp>Определяет текст, который является результатом вывода компьютерной программы.
<small>Определяет текст маленького размера.
<select>Создает выпадающий список.
<span>Определяет строчный элемент документа.
<strong>Определяет важный текст - преобразует шрифт в полужирный.
<sub>Определяет текст в нижнем индексе.
<sup>Определяет текст в верхнем индексе.
<td>Создает ячейку таблицы.
<textarea>Создает многострочное текстовое поле.
<th>Создает заголовочную ячейку в таблице.
<var>Определяет переменную - выделяет текст курсивом.
<video>Добавляет на страницу видео файл.

Блочные элементы

ЭлементКраткое описание
<address>Определяет контактную информацию автора документа/статьи.
<artical>Определяет текст как статью, новость и др.
<aside>Определяет контент в стороне от содержимого страницы.
<blockquote>Выделяет текст с другого источника, как блочную цитату.
<dd>Cоздает описание элемента в списке определений.
<div>Определяет раздел документа.
<dl>Создает список определений.
<dt>Oпределяет термин в списке определений.
<figure>Группирует элементы страницы.
<footer>Нижняя часть документа.
<form>Определяет HTML форму.
<h1> - <h6>Определяют HTML заголовки.
<header>Задает "шапку" сайта или раздела.
<hr>Создает горизонтальную линию.
<li>Определяет элемент списка.
<nav>Определяет группу ссылок для навигации.
<ol>Создает нумерованный(упорядоченный) список.
<p>Определяет абзац.
<pre>Оставляет содержимое в первоначальном виде.
<ruby>Определяет небольшую аннотацию (для типографии Восточной Азии).
<section>Определяет разделы документа.
<table>Создает таблицу.
<tr>Создает строку в таблице.
<ul>Определяет маркированный(неупорядоченный) список.

Свойства css с кратким описанием

Данный справочник предоставляет подробное описание всех CSS свойств с максимально упрощенными примерами, для более легкого понимания работы свойства.

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

СвойствоОписаниеCSS
animationПозволяет установить несколько или все значения свойств animation в одном объявлении.3
animation-delayОпределяет, когда запустится анимация.3
animation-directionУказывает будет ли анимация проигрываться в реверсе на альтернативных циклах.3
animation-durationОпределяет сколько понадобится времени, чтобы закончить 1 цикл анимации.3
animation-iteration-countОпределяет сколько раз анимация должна будет проигрываться.3
animation-nameОпределяет имя для @keyframes.3
animation-play-stateУказывает будет анимация проигрываться или будет в режиме паузы.3
animation-timing-functionОпределяет кривую скорости для анимации.3
appearanceДелает элемент похожим на один из стандартных элементов пользовательского интерфейса.3
backface-visibilityОпределяет, должна ли быть видна задняя сторона элемента или нет.3
backgroundУстанавливает несколько или все значения свойств фона в одном объявлении.1
background-attachmentУказывает будет ли фоновое изображение фиксированным.1
background-clipОпределяет область в элементе, для которой задается фон.3
background-colorУстанавливает цвет фона для элемента.1
background-imageУстанавливает фоновое изображение в элементе.1
background-originУказывает область позиционирования для фонового изображения.3
background-positionУстанавливает начальное место для фонового изображения.1
background-repeatЗадает, как фоновое изображение будет повторяться на экране.1
background-sizeУказывает размер для фонового изображения.3
borderПозволяет использовать основные свойства границ в одном объявлении.1
border-bottomПозволяет использовать значения основных свойств для нижней границы рамки в одном объявлении.1
border-bottom-colorЗадает цвет для нижней границы рамки.1
border-bottom-left-radiusПозволяет сделать округлую границу нижнего левого угла.3
border-bottom-right-radiusПозволяет сделать округлую границу нижнего правого угла.3
border-bottom-styleОпределяет стиль для нижней границы рамки.1
border-bottom-widthОпределяет ширину для нижней границы рамки.1
border-collapseОпределяет будут ли границы рамки объединены в одну.2
border-colorЗадает цвет для границ рамки элемента.1
border-imageПозволяет использовать изображение в качестве рамки.3
border-image-outset3
border-image-repeat3
border-image-slice3
border-image-source3
border-image-width3
border-leftПозволяет использовать значения основных свойств для левой границы рамки в одном объявлении.1
border-left-colorЗадает цвет для левой границы рамки.1
border-left-styleОпределяет стиль для левой границы рамки.1
border-left-widthОпределяет ширину для левой границы рамки.1
border-radiusПозволяет изменить форму углов.3
border-rightМеняет внешний вид правой границы рамки.1
border-right-colorЗадает цвет для правой границы рамки.1
border-right-styleОпределяет стиль для правой границы рамки.1
border-right-widthЗадает ширину для правой границы рамки.1
border-spacingОпределяет расстояние между границами смежных ячеек и общей рамкой таблицы.2
border-styleЗадает стиль для границ рамки элемента.1
border-topМеняет внешний вид верхней границы рамки.1
border-top-colorЗадает цвет для верхней границы рамки.1
border-top-left-radiusПозволяет сделать округлую границу верхнего левого угла.3
border-top-right-radiusПозволяет сделать округлую границу верхнего правого угла.3
border-top-styleОпределяет стиль для верхней границы рамки.1
border-top-widthОпределяет ширину для верхней границы рамки.1
border-widthЗадает ширину для границ рамки элемента.1
bottomСдвигает элемент на указанную величину.2
box-alignОпределяет, как выравнивать дочерние элементы в блоке.3
box-directionОпределяет, в каком направлении будут отображаться дочерние элементы.3
box-flexОпределяет являются ли дочерние элементы блока гибкими в размере или нет.3
box-flex-group3
box-lines3
box-ordinal-groupУказывает порядок отображения дочерних элементов блока.3
box-orientОпределяет, как будут расположены дочерние элементы в контейнере.3
box-packУказывает, где располагаются дочерние элементы блока, когда блок больше, чем размер дочерних элементов.3
box-shadowДобавляет эффект отбрасывания тени к элементу.3
box-sizingПозволяет заставить определенные элементы заполнять область определенным способом.3
caption-sideУказывает расположение заголовка таблицы.2
clearОтменяет обтекание элементов.1
clipОпределяет видимую часть абсолютно позиционированных элементов.2
colorИзменяет цвет текста.1
column-countРазделяет элемент на колонки.3
column-fill3
column-gapЗадает расстояние между колонками элемента.3
column-ruleСвойство column-rule позволяет указать значения свойств column-rule-* (ширину, стиль и цвет) в одном объявлении.3
column-rule-colorОпределяет цвет границы между колонками.3
column-rule-styleОпределяет стиль границы между колонками.3
column-rule-widthУказывает ширину границы между колонками.3
columnsПозволяет использовать значения свойств column-width и column-count в одном объявлении.3
column-spanУказывает элементу количество колонок для обхвата.3
column-widthОпределяет ширину колонок.3
contentВставляет дополнительный контент.2
counter-incrementУвеличивает значение счетчика.2
counter-resetУстанавливает начальное значение счетчика.2
cursorИзменяет вид курсора мыши.2
directionОпределяет направление написания текста.2
displayУказывает, как будет отображаться элемент в браузере.1
empty-cellsРегулирует видимость пустых ячеек в таблице.2
floatОпределяет будет ли элемент плавающим.1
fontИзменяет стандартный вид текста.1
@font-faceПозволяет использование любого шрифта на странице.3
font-familyУказывает шрифт или семейство шрифтов для текста.1
font-sizeУказывает размер для шрифта.1
font-size-adjustКонтролирует размер неосновных шрифтов.3
font-stretchРегулирует ширину текста.3
font-styleПозволяет изменять стиль текста.1
font-variantКонвертирует строчные буквы в прописные уменьшенного размера.1
font-weightЗадает ширину символов текста.1
grid-columns3
grid-rows3
hanging-punctuation3
heightОпределяет высоту для элемента.1
icon3
@keyframesПозволяет создавать анимацию.3
leftОпределяет смещение по горизонтали для элементов с абсолютным и относительным позиционированием.2
letter-spacingКонтролирует расстояние между символами в тексте.1
line-heightОпределяет межстрочный интервал(интерлиньяж).1
list-styleУправляет маркером в списках.1
list-style-imageЗаменяет маркеры списков на изображения.1
list-style-positionОпределяет расположение маркера относительно пункта списка.1
list-style-typeУказывает вид маркера в списке.1
marginЗадает внешние отступы для элемента.1
margin-bottomЗадает нижний внешний отступ для элемента.1
margin-leftЗадает левый внешний отступ для элемента.1
margin-rightЗадает правый внешний отступ для элемента.1
margin-topЗадает верхний внешний отступ для элемента.1
max-heightУказывает максимальную высоту для элемента.2
max-widthУказывает максимальную ширину для элемента.2
min-heightУказывает минимальную высоту для элемента.2
min-widthУказывает минимальную ширину для элемента.2
nav-downОпределяет, куда направить фокус при использовании клавиши - стрелка вниз.3
nav-indexОпределяет последовательность получения фокуса, с помощью клавиш навигации.3
nav-leftОпределяет, куда направить фокус при использовании клавиши - стрелка влево.3
nav-rightОпределяет, куда направить фокус при использовании клавиши - стрелка вправо.3
nav-upОпределяет, куда направить фокус при использовании клавиши - стрелка вверх.3
opacityУстанавливает уровень прозрачности элемента.3
outlineСоздает внешнюю границу вокруг элемента.2
outline-colorОпределяет цвет внешней границы.2
outline-offsetСдвигает внешнюю границу на заданное расстояние от края элемента.3
outline-styleУказывает стиль для внешней границы.2
outline-widthУказывает ширину для внешней границы.2
overflowОпределяет, что предпринять, если содержимое элемента превосходит размер области элемента.2
overflow-xУказывает, обрезать или нет левый/правый край содержимого - если оно переполняет доступную область элемента для его содержания.3
overflow-yУказывает, обрезать или нет верхний/нижний край содержимого - если оно переполняет доступную область элемента для его содержания.3
paddingУстанавливает внутренние отступы в элементе.1
padding-bottomЗадает нижний отступ(внутреннее поле) для элемента.1
padding-leftЗадает левый отступ(внутреннее поле) для элемента.1
padding-rightЗадает правый отступ(внутреннее поле) для элемента.1
padding-topЗадает верхний отступ(внутреннее поле) для элемента.1
page-break-afterОпределяет наличие или отсутствие разрыва страницы после заданного элемента.2
page-break-beforeОпределяет наличие или отсутствие разрыва страницы перед заданным элементом.2
page-break-insideОпределяет наличие или отсутствие разрыва страницы внутри элемента.2
perspectiveОпределяет, на сколько пикселей удален 3D элемент от точки обзора.3
perspective-originОпределяет, где располагается 3D элемент на осях x и y.3
positionОпределяет метод позиционирования элементов.2
punctuation-trim3
quotesОпределяет тип кавычек для встроенных цитат.2
resizeУказывает, может ли размер элемента изменяться пользователем.3
rightОпределяет смещение по горизонтали для элементов с абсолютным и относительным позиционированием.2
rotation3
rotation-pointОпределяет точку смещения элемента от верхнего и левого края границы.3
table-layoutЗадает алгоритм использования макета таблицы.2
target3
target-name3
target-new3
target-position3
text-alignОпределяет выравнивание по горизонтали текста в элементе.1
text-decorationОпределяет добавление отличий к тексту.1
text-indentОпределяет отступ первой строки в тексте элемента.1
text-justifyИспользуется, когда свойство text-align установлено в "justify" и указывает, как текст должен выравниваться и наполняться пробелами.3
text-outline3
text-overflowУказывает, что должно произойти, когда текст переполняет содержащий элемент.3
text-shadowСоздает тень для текста.3
text-transformКонтролирует использование строчных и прописных букв в тексте.1
text-wrapУказывает правила переносов строк для текста.3
topОпределяет смещение по вертикали для элементов с абсолютным и относительным позиционированием.2
transformПрименяет 2D или 3D преобразование к элементу.3
transform-originПозволяет изменить позицию преобразованных элементов.3
transform-styleОпределяет, как вложенные элементы будут отображаться в трехмерном пространстве.3
transitionУправляет эффектом трансформации.3
transition-delayУказывает, когда должен начаться эффект трансформации.3
transition-durationУказывает продолжительность трансформации.3
transition-propertyУказывает название CSS свойства, для которого будет применен эффект трансформации.3
transition-timing-functionЗадает кривую скорости для эффекта трансформации.3
vertical-alignОпределяет вертикальное выравнивание в элементе.1
visibilityОпределяет, является ли элемент видимым.2
white-spaceОпределяет способ обработки пробелов внутри элемента.1
widthЗадает ширину для элемента.1
word-breakОпределяет правила переноса для не-CJK сценариев.3
word-spacingОпределяет ширину пробелов между словами.1
word-wrapПозволяет прерывать длинные слова для переноса на другую строку.3
z-indexУказывает порядок расположения элементов по оси Z.2

Единицы измерения CSS

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

ЕдиницаОписаниеПример
%процентыp{border: 5%;}
inдюймp{word-spacing: 2in;}
cmсантиметрыdiv {margin-left: 2cm;}
mmмиллиметрыp{font-size: 15mm;}
em1em равен текущему размеру шрифта. Если текущей размер шрифта составляет 12pt, тогда 2em будет равен 24 ptp{letter-spacing: 7em;}
ex1ex равен высоте символа "x" в нижнем регистре указанного шрифтаp{line-height: 3ex;}
pt1pt равен 1/72 дюймаbody{font-size: 18pt;}
pc1pc равен 12ptp{font-size: 20pc;}
pxпиксель - это маленькая точка на экранеp{padding: 25px;}

Абсолютные единицы

Миллиметр - mm, сантиметр - cm и дюйм - in

Само собой разумеется, что это абсолютные единицы измерения. Один cm = 0.39370in, 1in = 2.54cm и 10mm = 1cm. Компьютерные дисплеи плохо вычисляют данные единицы измерения, таким образом у этих величин ограниченное применение и обычно их используют при указании размера для вывода страниц на печать.

Пиксели - px

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

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

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

Точки - pt и пики - pc

Эти единицы измерения чаще всего используются для указания именно размера шрифта, например, в обычном блокноте, мы часто указываем размер текста равный 14, это значение как раз и есть единицы измерения pt.
Точка (1pt) равна 1/72 дюйма, в то время как пика (1pc) равна 1/6 дюйма (1pc = 12pt). Документы, предназначенные для печати будут иметь возможность сообщить устройству именно тот размер шрифта, который следует использовать при печати. Цифровым дисплеям, однако, придется самим догадываться, как конвертировать эти единицы в пиксели, и нет никаких реальных универсальных способов узнать, как это будет сделано. Поскольку точки (pt) были использованы с первых дней Интернета, большинство браузеров автоматически могут установить соотношения между пикселями и точками, но это по сути неправильно. Помните, что небольшие дисплеи сегодня могут иметь высокое разрешение, так что определить то, насколько большой «дюйм на экране» будет практически невозможно на устройствах. Для указания размера элементов на веб-страницах следует избегать использования этих единиц.

Относительные единицы

Процент - %

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

Вычисляемая x-высота - ex

Единица измерения ex используется достаточно редко. В качестве основы для размера 1ex используется высота символа "x" в нижнем регистре указанного шрифта. Большинство браузеров не поддерживает эту единицу измерения должным образом, и она не рекомендуется для использования в документах, предназначенных для браузеров.

Вычисляемая единица - em

Em является относительной единицей измерения. Один em равен 16px. Если em используется для определенного элемента, то за 1em принимается размер шрифта его родителя.

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

CSS селекторы

Селектор определяет элементы, к которым будет применен блок объявлений, содержащий форматирующие свойства.

В таблице в колонке "CSS" указывается, в какой версии CSS был добавлен данный селектор.

СелекторПримерОписаниеCSS
.class.myclassВыбор всех элементов с class="myclass".1
#id#mainВыбор элемента с id="main".1
**Выбор всех элементов.2
элементspanВыбор всех элементов <span>.1
элемент,элементdiv,spanВыбор всех элементов <div> и всех элементов <span>.1
элемент элементdiv spanВыбор всех элементов <span> внутри <div>.1
элемент>элементdiv>spanВыбор всех элементов <span>, у которых родитель <div>.2
элемент+элементdiv+pВыбор элемента <p>, который размещается сразу же после элементов <div>.2
[атрибут][title]Выбор элементов с атрибутом "title".2
[атрибут=значение][title=cost]Выбор всех элементов с title="cost".2
[атрибут~=значение][title~=cost]Выбор элементов с атрибутом title, содержащим слово cost.2
[атрибут|=значение][lang|=ru]Выбор всех элементов с атрибутом lang, значение которого начинается с "ru".2
:linka:linkВыбор всех не посещенных ссылок.1
:visiteda:visitedВыбор всех посещенных ссылок.1
:activea:activeВыбор активной ссылки.1
:hovera:hoverВыбор ссылки при наведении курсора мышки.1
:focusinput:focusВыбор элемента input, который находится в фокусе.2
::first-letterp::first-letterВыбор первой буквы каждого элемента <p>.1
::first-linep::first-lineВыбор первой строки каждого элемента <p>.1
:first-childp:first-childВыбор каждого элемента <p>, который является первым дочерним элементом своего родителя.2
::beforep::beforeВставка содержимого перед каждым элементом <p>.2
::afterp::afterВставка содержимого после каждого элемента <p>.2
:lang(язык)p:lang(ru)Выбор каждого элемента <p> с атрибутом lang, значение которого начинается с "ru".2
элемент1~элемент2p~olВыбор всех элементов <ol>, которым предшествует элемент <p>.3
[атрибут^=значение]a[src^="https"]Выбор каждого элемента <a> с атрибутом src, значение которого начинается с "https".3
[атрибут$=значение]a[src$=".png"]Выбор каждого элемента <a> с атрибутом src, значение которого заканчивается на ".png".3
[атрибут*=значение]a[src*="puzzleweb"]Выбор каждого элемента <a> с атрибутом src, в значении которого есть "puzzleweb".3
:first-of-typep:first-of-typeВыбор каждого элемента <p>, который является первым из элементов <p> своего родительского элемента.3
:last-of-typep:last-of-typeВыбор каждого элемента <p>, который является последним из элементов <p> своего родительского элемента.3
:only-of-typep:only-of-typeВыбор каждого элемента <p>, который является единственным элементом <p> своего родительского элемента.3
:only-childp:only-childВыбор каждого элемента <p>, который является единственным дочерним элементом своего родительского элемента.3
:nth-child(n)p:nth-child(2)Выбор каждого элемента <p>, который является вторым дочерним элементом своего родительского элемента.3
:nth-last-child(n)p:nth-last-child(2)Выбор каждого элемента <p>, который является вторым дочерним элементом своего родительского элемента, считая от последнего дочернего элемента.3
:nth-of-type(n)p:nth-of-type(2)Выбор каждого элемента <p>, который является вторым дочерним элементом <p> своего родительского элемента.3
:nth-last-of-type(n)p:nth-last-of-type(2)Выбор каждого элемента <p>, который является вторым дочерним элементом <p> своего родительского элемента, считая от последнего дочернего элемента.3
:last-childp:last-childВыбор каждого элемента <p>, который является последним элементом своего родительского элемента.3
:root:rootВыбор корневого элемента в документе.3
:emptyp:emptyВыбор каждого элемента <p>, который не содержит дочерних элементов (включая текст).3
:target:targetВыбор активного элемента на странице, который имеет якорную ссылку.3
:enabledinput:enabledВыбор каждого включенного элемента <input>.3
:disabledinput:disabledВыбор каждого выключенного элемента <input>.3
:checkedinput:checkedВыбор элемента <input>, выбранного по умолчанию или пользователем.3
:not(селектор):not(p)Выбор всех элементов, кроме элемента <p>.3
::selection::selectionВыбор части элемента, которую выделяет пользователь.3










Библиотека JAVASCRIPT 1997- Дизайн и сопровождение © SE@RCHER