From 0e62abbff83e1433425416be6f8d0424b8385842 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Sat, 21 Feb 2015 16:37:10 +0300 Subject: [PATCH] renovate webcomponents --- .../1-webcomponents/3-shadow-dom/article.md | 353 +----------------- .../4-link-import/import-libs.view/index.html | 4 - .../4-link-import/import-libs.view/libs.html | 4 - .../import-libs.view/ui-dialog.html | 2 - .../import-libs.view/ui-tabs.html | 2 - .../1-webcomponents/4-link-import/index.html | 7 - .../1-webcomponents/4-link-import/timer.html | 25 -- .../1-webcomponents/4-template-tag/article.md | 58 +++ .../1-webcomponents/5-css-scoping/article.md | 291 +++++++++++++++ .../ui-slider.view/jquery.html | 2 - .../article.md | 76 ++-- .../import-show.view/index.html | 4 +- .../import-show.view/timer.html | 2 +- .../import-style.view/index.html | 0 .../import-style.view/timer.html | 0 .../article.md | 59 +-- .../message.view/index.html | 0 .../message.view/ui-message.html | 0 .../ui-slider.view/index.html | 0 .../ui-slider.view/jquery.html | 2 + .../ui-slider.view/ui-slider.html | 6 +- 21 files changed, 421 insertions(+), 476 deletions(-) delete mode 100755 3-more/1-webcomponents/4-link-import/import-libs.view/index.html delete mode 100755 3-more/1-webcomponents/4-link-import/import-libs.view/libs.html delete mode 100755 3-more/1-webcomponents/4-link-import/import-libs.view/ui-dialog.html delete mode 100755 3-more/1-webcomponents/4-link-import/import-libs.view/ui-tabs.html delete mode 100755 3-more/1-webcomponents/4-link-import/index.html delete mode 100755 3-more/1-webcomponents/4-link-import/timer.html create mode 100644 3-more/1-webcomponents/4-template-tag/article.md create mode 100644 3-more/1-webcomponents/5-css-scoping/article.md delete mode 100755 3-more/1-webcomponents/5-webcomponent-build/ui-slider.view/jquery.html rename 3-more/1-webcomponents/{4-link-import => 6-link-import}/article.md (66%) rename 3-more/1-webcomponents/{4-link-import => 6-link-import}/import-show.view/index.html (67%) mode change 100755 => 100644 rename 3-more/1-webcomponents/{4-link-import => 6-link-import}/import-show.view/timer.html (91%) mode change 100755 => 100644 rename 3-more/1-webcomponents/{4-link-import => 6-link-import}/import-style.view/index.html (100%) mode change 100755 => 100644 rename 3-more/1-webcomponents/{4-link-import => 6-link-import}/import-style.view/timer.html (100%) mode change 100755 => 100644 rename 3-more/1-webcomponents/{5-webcomponent-build => 7-webcomponent-build}/article.md (80%) rename 3-more/1-webcomponents/{5-webcomponent-build => 7-webcomponent-build}/message.view/index.html (100%) mode change 100755 => 100644 rename 3-more/1-webcomponents/{5-webcomponent-build => 7-webcomponent-build}/message.view/ui-message.html (100%) mode change 100755 => 100644 rename 3-more/1-webcomponents/{5-webcomponent-build => 7-webcomponent-build}/ui-slider.view/index.html (100%) mode change 100755 => 100644 create mode 100644 3-more/1-webcomponents/7-webcomponent-build/ui-slider.view/jquery.html rename 3-more/1-webcomponents/{5-webcomponent-build => 7-webcomponent-build}/ui-slider.view/ui-slider.html (87%) mode change 100755 => 100644 diff --git a/3-more/1-webcomponents/3-shadow-dom/article.md b/3-more/1-webcomponents/3-shadow-dom/article.md index cbdb0bfe..0a32ebc3 100644 --- a/3-more/1-webcomponents/3-shadow-dom/article.md +++ b/3-more/1-webcomponents/3-shadow-dom/article.md @@ -1,4 +1,4 @@ -# Shadow DOM, шаблоны и стили +# Shadow DOM Спецификация [Shadow DOM](http://w3c.github.io/webcomponents/spec/shadow/) является отдельным стандартом. Частично он уже используется для обычных DOM-элементов, но также применяется для создания веб-компонентов. @@ -44,7 +44,7 @@ Shadow DOM можно создать внутри любого элемента Например: ```html - +

Доброе утро, страна!

- - - -``` - -У нас получилось, что: -
    -
  1. В элементе `#elem` содержатся данные в некоторой оговорённой разметке.
  2. -
  3. Шаблон `#tmpl` указывает, как их отобразить, куда и в какие HTML-теги завернуть содержимое `#elem`.
  4. -
  5. Это содержимое добавляется в Shadow DOM тега. Технически, шаблон можно использовать и без Shadow DOM, но тогда не сработает тег ``.
  6. -
- -Важные детали: - - -## Стили - -Стилизация Shadow DOM покрывается более общей спецификацией ["CSS Scoping"](http://drafts.csswg.org/css-scoping/). - -**По умолчанию стили внутри Shadow DOM относятся только к его содержимому.** - -Например: - -```html - -

Жили мы тихо-мирно, и тут...

- -

Доброе утро, страна!

- - - - -``` - -При запуске окрашенным в красный цвет окажется только `

` внутри Shadow DOM. - -...Но при помощи специальных селекторов переходить через эту границу! - -### Извне стиль для Shadow DOM - -Если нужно со страницы стилизовать или выбрать элементы внутри Shadow DOM, то можно использовать селекторы: - -

- -[warn header="Нельзя получить содержимое встроенных элементов"] -Описанные CSS-селекторы можно использовать не только в CSS, но и в `querySelector`. - -Исключением являются встроенные элементы типа ``, для которых CSS-селекторы работают, но получить их содержимое нельзя. - -Например: - -```html - -

- - -``` - -[/warn] - -### Стиль Shadow DOM в зависимости от хозяина - -Следующие селекторы позволяют выбрать элемент-хозяин: - - - -Пример использования селектора `:host()` для темизации содержимого: - -```html - -*!* -

Доброе утро, страна!

-*/!* - -*!* -

Внимание-внимание! Говорит информбюро!

-*/!* - - - - -``` - -### Стиль для содержимого - -Тег `` не меняет DOM, а указывает, что где показывать. Поэтому если элемент изначально находится в элементе-хозяине -- внешний документ сохраняет к нему доступ. - -К нему будут применены стили и сработают селекторы, всё как обычно. - -Например, здесь применится стиль для ``: - -```html - - - -

Доброе утро, страна!

- - - - -``` - -В примере выше заголовок "Доброе утро, страна!", который пришёл как `` из внешнего документа, будет подчёркнут, - -...Но, поскольку эти узлы показываются внутри Shadow DOM, то ему тоже может понадобится к ним доступ. - -**Для обращения к "содержимому" `` используется псевдоэлемент `::content`.** - -Например, `content[select="h1"]::content span` найдёт элемент `` и *в его содержимом* отыщет ``. - -Селектор `::content` подразумевает `*::content`, так что `::content span` стилизует все `` внутри всех ``. - -Например: - -```html - - - -

Доброе утро, страна!

- - - - -``` - -Если запустить пример выше, то текст внутри `

` станет зелёным и подчёркнутым одновременно. - -Приоритет селекторов расчитывается по [обычным правилам специфичности](http://www.w3.org/TR/css3-selectors/#specificity), если же приоритеты стилей на странице и в Shadow DOM и на странице равны, то, как описано в секции [Cascading](http://dev.w3.org/csswg/css-scoping/#cascading), побеждает страница, а для `!important`-стиля побеждает Shadow DOM. - - - -[summary] -Если обобщить -- инкапсуляция Shadow DOM имеет односторонний характер: -
    -
  • Изнутри Shadow DOM можно стилизовать только сам Shadow DOM и узлы, показываемые в ``.
  • -
  • Со страницы можно иметь доступ и стилизовать элементы, изначально находящиеся внутри хозяина -- напрямую, а узлы внутри Shadow DOM -- при помощи селекторов `::shadow` и `/deep/`.
  • -
-[/summary] - ## Итого @@ -493,16 +164,12 @@ Shadow DOM -- это средство для создания отдельног
  • Ряд браузерных элементов со сложной структурой уже имеют Shadow DOM.
  • -
  • Можно создать Shadow DOM внутри любого элемента вызовом `elem.createShadowRoot()`. В дальнейшем его корень будет доступен как `elem.shadowRoot`.
  • +
  • Можно создать Shadow DOM внутри любого элемента вызовом `elem.createShadowRoot()`. В дальнейшем его корень будет доступен как `elem.shadowRoot`. У встроенных элементов он недоступен.
  • Как только у элемента появляется Shadow DOM, его изначальное содержимое скрывается. Теперь показывается только Shadow DOM, который может указать, какое содержимое хозяина куда вставлять, при помощи элемента ``. Можно указать селектор `` и размещать разное содержимое в разных местах Shadow DOM.
  • -
  • Стили и `querySelector`, объявленные внутри Shadow DOM, по умолчанию относятся только к его содержимому, могут обращаться к содержимому ``, но не к основной странице.
  • -
  • Стили и `querySelector` с внешней страницы могут преодолевать границу между DOM при помощи селекторов `::shadow` и `/deep/`.
  • +
  • Элемент `` перемещает содержимое исходного элемента в Shadow DOM только визуально, в структуре DOM оно остаётся на тех же местах.
-Спецификации, затрагивающие Shadow DOM: +Подробнее спецификация описана по адресу [](http://w3c.github.io/webcomponents/spec/shadow/). + +Далее мы рассмотрим работу с шаблонами, которые также являются частью платформы Web Components и не заменяют существующие шаблонные системы, но дополняют их важными встроенными в браузер возможностями. -
    -
  • [Shadow DOM](http://w3c.github.io/webcomponents/spec/shadow/) -- самая полная спецификация по свойствам и методам Shadow DOM, деталям обработки событий.
  • -
  • [Introduction to Web Components](http://w3c.github.io/webcomponents/explainer/) -- обо всём понемногу.
  • -
  • [CSS Scoping](http://drafts.csswg.org/css-scoping/) -- спецификация по CSS-селекторам, в том числе Shadow DOM.
  • -
diff --git a/3-more/1-webcomponents/4-link-import/import-libs.view/index.html b/3-more/1-webcomponents/4-link-import/import-libs.view/index.html deleted file mode 100755 index 0c335249..00000000 --- a/3-more/1-webcomponents/4-link-import/import-libs.view/index.html +++ /dev/null @@ -1,4 +0,0 @@ - - -... - diff --git a/3-more/1-webcomponents/4-link-import/import-libs.view/libs.html b/3-more/1-webcomponents/4-link-import/import-libs.view/libs.html deleted file mode 100755 index fc35034a..00000000 --- a/3-more/1-webcomponents/4-link-import/import-libs.view/libs.html +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/3-more/1-webcomponents/4-link-import/import-libs.view/ui-dialog.html b/3-more/1-webcomponents/4-link-import/import-libs.view/ui-dialog.html deleted file mode 100755 index cf5ffc4b..00000000 --- a/3-more/1-webcomponents/4-link-import/import-libs.view/ui-dialog.html +++ /dev/null @@ -1,2 +0,0 @@ - -...template и код для диалогов... diff --git a/3-more/1-webcomponents/4-link-import/import-libs.view/ui-tabs.html b/3-more/1-webcomponents/4-link-import/import-libs.view/ui-tabs.html deleted file mode 100755 index fbd5bd0a..00000000 --- a/3-more/1-webcomponents/4-link-import/import-libs.view/ui-tabs.html +++ /dev/null @@ -1,2 +0,0 @@ - -...template и код для табов... diff --git a/3-more/1-webcomponents/4-link-import/index.html b/3-more/1-webcomponents/4-link-import/index.html deleted file mode 100755 index 5250c1d8..00000000 --- a/3-more/1-webcomponents/4-link-import/index.html +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/3-more/1-webcomponents/4-link-import/timer.html b/3-more/1-webcomponents/4-link-import/timer.html deleted file mode 100755 index 6f4fdef4..00000000 --- a/3-more/1-webcomponents/4-link-import/timer.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - -

0

- - - - - \ No newline at end of file diff --git a/3-more/1-webcomponents/4-template-tag/article.md b/3-more/1-webcomponents/4-template-tag/article.md new file mode 100644 index 00000000..221c1bec --- /dev/null +++ b/3-more/1-webcomponents/4-template-tag/article.md @@ -0,0 +1,58 @@ + +# Шаблоны