Учимся использовать @import в CSS. Определение пользовательских элементов

Как работать с текстом в фотошопе? Как создать красочную надпись для праздничного поздравления? Можно ли в фотошопе вписать слово в какую-нибудь фигуру? Есть ли возможность в программе Adobe Photoshop разместить текст по выбранной траектории? Можно ли деформировать буквы? Что нужно сделать, чтобы залить текст узором или градиентом? Эти вопросы задавали себе многие.

Ответ на них дал Альваро Гузман в статье «Всеобъемлющее Введение в Type Tool» . В ней Вы найдете все ответы на вопросы по использованию инструмента фотошопа Type Tool (Текст). В статье много скриншотов, иллюстрирующих все настройки на конкретных примерах. Читайте и смотрите примеры!

Инструментом Type Tool (Текст) один из самых мощных и полезных инструментов в программе Adobe Photoshop. Мы все использовали его хотя бы раз, но знаете ли Вы весь его потенциал? Именно поэтому я решил написать полное руководство об использовании инструмента Type Tool (Текст) и наиболее важных особенностях этого инструмента.

Основные понятия.

Type Tool (Текст) – это инструмент Фотошопа, представляющий собой набор векторных контуров и математических фигур для определения символов шрифта. Он расположен на Панели инструментов в Photoshop в виде буквы Т. Инструмент множественный.

Горячая клавиша «T» - текст. Если вы нажмете кнопку Т и будете удерживать ее нажатой, вы увидите четыре варианта этого инструмента:
- Horizontal Type Tool (Горизонтальный текст) - инструмент для создания горизонтальной стандартного текста (слева направо и сверху вниз), обычный текст по умолчанию. Пишет тем цветом, который выбран в качестве Foreground Color (Цвет переднего плана).
- Vertical Type Tool (Вертикальный текст) - инструмент для создания вертикального текста (сверху вниз и справа налево), полезно для создания надписей на восточных языках, таких как японский или китайский.
- Horizontal Type Mask Tool (Горизонтальный текст-маска) - создает быструю маску, используя выделение в форме введенного текста.
- Vertical Type Mask Tool (Вертикальный текст-маска) - создает быструю маску, вертикальное выделение.

Создание текстового слоя.

Есть два способа создать текстовый слой:

Point Type: - эта опция позволит создать текстовый слой в одну линию. Щелкните мышкой там, где хотите написать текст. На месте щелчка появится мигающий вертикальний курсор. После того, как введёте текст, нажмите на галочку на панели параметров (05) (применить текущую правку) или кликнув один раз на слое с текстом, или нажмите сочетание клавиш Ctrl+Enter, можно также нажать Enter на цифровой клавиатуре. Если Вы просто нажмёте Enter, то курсор перейдёт на следующую строку, предлагая продолжать ввод текста.

Paragraph Type: позволяет создать текстовый слой в ограничительной рамке. Это очень полезно для печати и веб-дизайна. Используя инструмент Type, выделите для текста место. Начините с верхнего левого угла и тяните курсор по диагонали до нужного размера, введите текст и нажмите Ctrl+Enter. Текст можно не только вводить (с клавиатуры), но и вставлять из других редакторов.

Важно: Инструмент Type Tool (Текст) всегда создает новый слой для нового текста.

Если Вы, завершив ввод текста, посмотрите на палитру Слои(Layers), то обнаружите, что ваша надпись находится на новом слое, обозначенном буквой Т.

Изменение размера и формы текста.

Вы можете изменять размеры и перемещать каждый текстовый слой как любой другой при помощи инструмента Move Tool (Перемещение). При помощи команды Free Transform (Свободное трансформирование) можно изменять размеры текста, поворачивать, деформировать и искажать так же, как с другими объектами. Можно применять разнообразные для созданного текста.

Еще вы можете изменять размер текста при помощи рамки выделения Paragraph Type: квадратики по углам прямоугольника и в середине отрезков называются узлами, перетаскивая их можно выполнить любое преобразование формы выделенного текста. Чтобы сохранить пропорции, удерживайте клавишу Shift.

Для изменения размера созданного ранее текста выберите инструмент Type Tool (Текст) и щёлкните курсором мышки по текстовому слою поверх надписи.

Щелкните и тяните узел, чтобы изменить размеры рамки редактирования.

Чтобы повернуть текст выберите инструмент Type Tool (Текст) и щёлкните по текстовому слою поверх надписи.

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

Удерживая Ctrl, тяните узел и получите угловое изменение.

Форматирование текста

После ввода какого-нибудь текста у вас может возникнуть потребность изменить гарнитуру шрифта, цвет и другие параметры. Выберите команду меню Window (Окно)> Character (Символ) и перед вами откроется палитра Character (Символ), весьма полезная при работе с текстом. На этой палитре вы можете изменять следующее параметры: (Внимание! Символы, которые будете изменять нужно выделить):

Font Family, Font Style – выбирать гарнитуру и начертание шрифта.
Font Size – настраивать кегль (размер) шрифта
Text Color – изменять цвет текста

Kerning – настроить кернинг (расстояние между определенными парами символов)
Тracking – задавать межзнаковое расстояние, разреженный или уплотненный текст.

Vertical and Horizontal Scaling – масштабировать текст вертикально и горизонтально. Вы можете изменять размер текстового слоя в окне
Vertical Scalе и Horizontal Scalе. Эти настройки искажают форму символов, что бывает нежелательно.

Baseline Shift – смещение базовой линии. Этот параметр позволяет поднимать или опускать отдельные знаки относительно всей строки на заданную величину.

Не все шрифты имеют жирное начертание и курсив. Если все же есть необходимость сделать текст жирным или наклонным используют функции Faux Bold (ложный полужирный) и Faux Italic (ложный курсив). Эта функция создает полужирный вариант автоматически. Щёлкните на кнопке Faux Bold, и текст будет написан полужирным шрифтом.
Faux Italic (ложный курсив). Если для выбранного вами шрифта отсутствует вариант курсива, просто щёлкните кнопку Faux Italic и вы получите текст, написанный курсивом.

Некоторые художественные шрифты, стилизованные под рукописный текст, изначально имеют наклонные символы. При применении Faux Italic букви становятся еще более наклонными. Во многих шрифтах изначальное начертание символов Italic отличается от Normal. Функция Faux Italic этого не учитывает.

Ниже приведены примеры: Faux Bold для шрифта Arial, который не искажает форму шрифта, и Faux Italic для шрифта Myriad Pro, который искажает первоначальный курсивный стиль шрифта (посмотрите на символ "а", например)

Также можно легко превратить символы в прописные, используя All Caps (Верхний регистр). При нажатой кнопке All Caps все символы будут отображаться в верхнем регистре так, как если бы вы нажали клавишу Caps Lock.
Small Caps (Маленькие капиталы). Нажатие этой кнопки приводит к написанию прописными буквами, но меньшего размера, такого же как строчные. Изменения не касаются при этом букв, написанных в верхнем регистре.
Subscript (Нижний индекс) и Superscript (Верхний индекс)
Эта функция уменьшается размер букв, а верхняя граница строки сдвигается вниз, при этом нижняя граница остаётся прежней. Если в конкретном шрифте не поддерживается начертание в нижнем индексе, то Photoshop генерирует его. Кроме того, в фотошопе вы можете редактировать оформления текста как подчеркивание или зачеркивание. При помощи функции Underline (Подчёркивание) под строчкой задаётся горизонтальная линия того же цвета, что и текст. При выборе вертикального расположения текста возможно правое и левое вертикальное подчёркивание.
Strikethrough (Перечёркивание). Эта функция создаёт горизонтальную линию посередине строки при горизонтальном расположении текста или вертикальную линию при вертикальном расположении.

Anti-aliasing. Этот параметр предназначен для сглаживания, устранения неровностей мелких шрифтов. Есть варианты сглаживания: нет, резкое, чёткое, насыщенное, плавное.

Leading (Интерлиньяж). Эта функция позволяет настраивать расстояние между базовыми линиями соседних строк.

Обзор палитры Paragraph(Абзац)

Палитра Paragraph(Абзац) предназначена для выравнивания текста. Это диалоговое окно можно открыть, выполнив команду Window (Окно) > Paragraph (Абзац). Так как текстовый слой может содержать несколько строк, отформатировать их очень важно для качества любого дизайна.
Создайте текстовый слой, напечатайте какой-то текст и нажмите на миниатюру слоя, чтобы активировать параметры для всего текста. Кроме того, можно сделать выделение части текста с помощью мышки и применять форматирование абзацев только в выбранной части вашего текстового слоя.
Рассмотрим способы выравнивания текста в Photoshop.
Align (Выравнивание текста). Как хорошо видно на кнопках, вы можете выбрать выравнивание текста по левому краю, центру и правому краю

Justification (Интервалы) и Hyphenation (Перенос) – в эти диалоговые окна можно войти, нажав стрелочку в верхнем правом углу палитры Paragraph(Абзац). Существенное значение имеет язык ввода текста, словарь можно выбирать.

Justification (Интервалы). Здесь вы можете изменять значения Word Spacing (Расстояние между словами) и Letter Spacing (Межбуквенные расстояния), Масштаб гифа (Glyph Scaling).
Hyphenatе (Перенос). Здесь можно устанавливать различные параметры расстановки переносов. Если вы установите флажок Hyphenatе (Перенос), то переносы будут расставляться автоматически. (На всякий случай, не забывайте проверять правильность переносов)
Отступы между абзацами задать легко: просто выберите текстовый слой, или сделайте выделение нужного текста, и укажите нужный параметр в диалоговом окне, как показано ниже.
Indent Left Margin (Отступ левого края)
Indent Right Margin+ Indent First Line (Отступ правого края + отступ первой строки абзаца)
Add Space After Paragraph (Задать пробел после абзаца)

Деформация (Warp) текста.

Один из наиболее мощных функций инструмента Type Tool является возможность деформации любого текстового слоя в соответствии с вашими конкретными потребностями. Чтобы деформировать текстовый слой дважды щелкните на миниатюре текстового слоя и нажмите на кнопку Create Warped Text (создать деформированный текст) в меню Options (Параметры). Вам будет предложено выбрать Warp Style (Стиль деформации).
Переключатель Vertical (Вертикаль) или Horizontal (Горизонталь) применяет выбранный стиль в горизонтальной или вертикальной плоскости.
Регулятор Bend (Степень) определяет степень деформации.
Регуляторы Horizontal and Vertical Distortion (Горизонтальное и Вертикальное Искривление) дополнительно деформируют текст в горизонтальной и вертикальной плоскостях.
Ниже приведены примеры деформации текста при различных значениях параметров:

Вы можете создать деформацию текста как в «Звездных войнах» при помощи Vertical Distortion (Вертикальное искажение) и инструмента Gradient (Градиент) в Layer Mask (Маска-слоя), который применяют для частичного скрытия текста в верхней части.

Инструменты деформации текста в фотошоп дают интересные эффекты. Вы можете попробовать различные способы деформации текста, но деформация не будет работать, если ранее к тексту применяли Faux Bold и Faux Italic.

Как написать текст по контуру. Type on a Path (Текст по Контуру)

Вы можете создать текст, который искривляется вдоль контура. Контур можно создать инструментами Pen Tool (Перо) или Vector Shape Tool (Векторная фигура)
Создайте любую кривую пером, выберите инструмент Type Tool (Текст) и поместите курсор где-нибудь на контуре. Указатель мыши изменит вид. Теперь можно ввести текст.

Процесс создания текста по фигуре так же прост. Создаёте нужную вам фигуру, с помощью инструмента Path Selection Tool (Выделение контура) активизируете контур. Как только контур отобразился - выбираете инструмент Type Tool (Текст) и печатаете. Хороший эффект можно получить если немного увеличить базовую линию – создастся пространство между фигурой и текстом. Пример ниже.

Иногда нужно перевернуть текст относительно контура или поместить его внутрь фигуры. Для этого выберите инструмент Path Selection (Выделение контура), поместите курсор над текстом, пока не получите тип курсора в виде маленькой черной стрелки и тяните курсор ниже базового уровня. Текст перевернется. Используйте тот же метод, чтобы перевернуть текст и поместить его в форму.

Преобразование текста в форму

Иногда нужно иметь возможность вносить изменения в форму символов. Например, для создания логотипов. Для этого просто создайте текстовый слой или выберите ранее созданный и перейдите на Layer (Слой) > Type (Текст)> Преобразовать в Shape (Преобразовать в фигуру). Этот инструмент преобразует текст в Vector Layer Mask (векторную маску слоя) и его можно редактировать, как любую другую векторную форму. Вы также можете создать рабочий контур, зайдя в меню Layer (Слой) > Type (Текст)> Convert Work Path (Преобразовать в рабочий контур). Контур можно редактировать просто перетягивая опорные точки, создавая таким образом новое начертание выбранных символов.

Инструмент Type Mask Tool (Текст-маска)

Наконец, нужно еще рассмотреть инструменты выделения: Horizontal Type Mask (Горизонтальный текст-маска) и Vertical Type Mask (Вертикальный текст-маска) .

Эти инструменты создают область выделения в активном слое в виде текстовой фигуры. С его помощью вы можете создать Layer Mask (Маска слоя) or Quick Mask mode (Быстрая маска). Это выделение в форме текста можно легко заполнить цветом, градиентом, узором или использовать как маску слоя. Созданный таким образом текст невозможно форматировать – это растровое изображение. Ниже пример использования Horizontal Type Mask (Горизонтальный текст-маска) чтобы создать маску слоя на картине.

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

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

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

Что надо сделать в первую очередь

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

Функциональность существующего сайта

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

  • Формы для контактов, подписки и регистрации
  • Управление медиа-файлами
  • Многоязыковая поддержка
  • Поддержка работы нескольких авторов
  • Членство и разделенные права доступа

Кроме того, на этом этапе лучше всего подобрать подходящие вашим задачам плагины для WordPress.

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

Насколько у вас хороший контент?

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

Познакомьтесь с WordPress

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

Переносим обычный HTML-сайт на WordPress

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

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

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

HTML Import 2 - хороший бесплатный плагин, который поможет перенести HTML-сайт на WordPress. Он поможет перенести и сберечь контент со всем форматированием, но вот с адаптацией к новому сайту и соблюдению нового дизайна в рамках старых постов у него "туговато".

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

Миграция на WordPress в этом случае может стать для вас хорошим поводом кардинально обновить свой дизайн: чем морочиться с переносом существующего кода и стиля, может лучше подобрать себе новый из числа доступных платных и бесплатных тем для оформления сайтов на новом движке?

Перенос сайта с Joomla

Joomla - это популярная CMS, и если вы решили с нее перейти на WordPress, то стоит знать: такая миграция происходит сравнительно легко. Однако есть пару моментов, которые стоит принять во внимание:

  • Дизайн и шаблоны придется восстанавливать и подыскивать сразу после импорта основного контента с вашего старого сайта.
  • Функциональность из модулей и плагинов тоже придется восстанавливать за счет плагинов-аналогов для WordPress.

Для миграции выполните последовательность следующих действий:

  • Установите WordPress на новый домен.
  • Установите бесплатный плагин FG Joomla to WordPress на свой новый WP-сайт.
  • Перейдите к экрану импорта во вкладке Инструменты → Импорт и выберите Import Joomla .
  • Введите требуемые детали о сайте на движке Joomla и кликните на кнопку Import Content .
  • Подождите некоторое время, пока импортируется сайт.
  • После завершения автоматического импорта вы получите напоминание о том, что надо изменить внутренние ссылки , после чего кликните по кнопке Modify internal links .
  • Если в ходе процедуры импорта сайта вы получите уведомления о том, что произошли ошибки, то почитайте FAQ для этого плагина .

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

Перенос сайта с Drupal

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

Если у вас небольшой сайт на Drupal, тогда вам проще вручную скопировать и вставить материалы на WP. Чтобы не "потерять" ссылки и связь между материалами, советуем составить таблицу со ссылками и внутренними связями постов и страниц.

Поскольку процедура миграции с Drupal 6 на WordPress 3 давно изучена в интернете, то вот вам список полезных ресурсов, ознакомившись с которыми, вы сможете безболезненно осуществить миграцию на новый движок:

  • Migrating Drupal 6 to WordPress 3
  • Migrate to WP
  • CMS to CMS

Если вы решили перенести свой старый сайт с Drupal на WP, убедитесь, что у вас есть резервная копия всего сайта, и почитайте советы по тестированию ресурса после миграции на новую платформу в конце этого поста.

Миграция с других платформ

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

Тестируем сайт после миграции

Закончив процесс миграции с одного движка на другой, вы должны убедиться, что всё работает так, как было намечено. Для небольших сайтов достаточно перейти по всем ссылкам и зайти на каждую страницу, чтобы убедиться, что весь контент отображается нормально, а ссылки работают. Но для больших проектов вам понадобится плагин наподобие Broken Link Checker .

Вот несколько ключевых шагов для тестирования сайта после того, как вы перенесли его на WordPress с другого движка:

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

Правило CSS import позволяет импортировать внешние таблицы стилей не только на HTML-страницу , но и в другой стилевой документ. Это упрощает управление файлами и их интеграцию.

Импорт в HTML

Чтобы воспользоваться правилом @import в HTML-файле , добавьте следующий код в шапку страницы:

@import url("/styles/default.css");

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

В качестве альтернативного способа применения import url CSS в HTML можно сослаться на таблицу стилей следующим образом:

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

Импорт в CSS

Применение в приведенном выше примере позволит внедрить файл «default.css » в HTML-страницу . Внутри этого CSS-файла находятся различные правила стилизации. Эти стили можно разместить как на одной странице, так и разбить их на отдельные фрагменты. А также импортировать в основной файл CSS .

Предположим, что мы используем четыре отдельных CSS-файла : один для разметки, второй для шрифтов и третий для картинок. Четвертым будет основной файл, в котором указаны ссылки на все остальные файлы. В самом верху основного файла (так как правила импорта должны размещаться над всем остальным содержимым ) добавьте следующий код CSS import :

@import url("/styles/layout.css"); @import url("/styles/type.css"); @import url("/styles/images.css");

Уже после этих правил можно добавлять любой CSS-код для оформления страниц.

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

Используем @import в медиа-запросах

Разделение основного CSS-файла может пригодиться при адаптации сайта под мобильные устройства, где для разных разрешений и размеров экрана применяются различные стили. Главная проблема заключается в том, что подключения CSS import расположены в самом верху страницы, поэтому медиа-запросы будут загружены после стилей. При разработке адаптивных дизайнов важно учитывать производительность сайта. Рекомендуется не разделять CSS адаптивного сайта и использовать @import для их загрузки на ресурс.

Всегда ли нужно использовать @import?

Вовсе нет. На многих сайтах весь CSS расположен прямо в коде страниц, и в этом нет ничего страшного.

Поддержка браузерами

У старых браузеров наблюдаются некоторые проблемы поддержки правила CSS import , но сейчас этими версиями программ практически никто не пользуется. Времена Internet Explorer уже давно позади.

Перевод статьи “Using @import in Cascading Style Sheets ” был подготовлен дружной командой проекта .

Хорошо Плохо

    Подключение CSS-кода на странице можно производить четырьмя способами: в тело документа, встроить код в заголовочную часть страницы (header), указать ссылку на внешний…

Веб-компонентов.

Подключение шаблонов Вложенный импорт

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

Снизу представлен реальный пример из Полимера . Это компонент tab () использующий компоненты layout и selector . Эти зависимости загружаются при помощи HTML-импорта.

polymer-ui-tabs.html

Вот так разработчики могут использовать этот элемент:

Когда выйдет новая версия селектора, например Вы сможете подменить И сразу же начать пользоваться новой версией. Благодаря импорту и веб-компонентам, это обновление не заденет код использующий компонент polymer-ui-tabs .

Управление зависимостями

Как вы знаете, если дважды подключить JQuery, это приведет к ошибкам. Не будет ли это проблемой, если несколько компонентов используют одну библиотеку? Нет, если мы будем использовать HTML-импорт! Использование импорта само по себе разрешает проблему управления зависимостями.

Оборачивая используемые библиотеки в импорт, вы автоматически избегаете их повторной загрузки. Импортируемый документ парсится только один раз. Скрипты в нем тоже выполняются только раз. Для примера вы можете импортировать jquery.html, который загружает сам JQuery.

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

Hello, I"m import 2

ajax-element.html

var proto = Object.create(HTMLElement.prototype); proto.makeRequest = function(url, done) { return $.ajax(url).done(function() { done(); }); }; document.registerElement("ajax-element", {prototype: proto});

Если понадобится, главный документ также может использовать jquery.html:

... $(document).ready(function() { var el = document.createElement("ajax-element"); el.makeRequest("http://example.com"); });

Несмотря на то, что jquery.html подключается в нескольких разных документах, его загрузка и исполнение происходит только один раз. Это можно увидеть заглянув на панель network:

Соображения производительности

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

Объединение импорта

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

Браузерное кеширование импорта

HTML-импорт также хорошо справляется с логикой кеширования. Импорт http://cdn.com/bootstrap.html содержит вложенные ресурсы, но они так же кешируются.

Содержимое используется, только когда оно добавлено в DOM

Содержимое никак не вызывается, до тех пор пока оно не использовано в скриптах. Для примера у нас есть динамически созданная таблица стилей:

Var link = document.createElement("link"); link.rel = "stylesheet"; link.href = "styles.css";

Браузер не запросит styles.css, до тех пор пока элемент link не будет добавлен в DOM:

Document.head.appendChild(link); // browser requests styles.css

Другой пример, это динамически созданная разметка:

Var h2 = document.createElement("h2"); h2.textContent = "Booyah!";

Элемент h2 ничего не изменит, пока вы не добавите его в DOM.

Оптимизация для асинхронной загрузки

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

console.log("I block page rendering");

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

Сценарий #1 (предпочтительный): у вас нет скриптов в элементе или по ходу тела документа

вот пример:

... // Other scripts n" stuff. // Bring in the import content. var link = document.querySelector("link"); var post = link.import.querySelector("#blog-post"); var container = document.querySelector("#container"); container.appendChild(post.cloneNode(true));

Все скрипты расположены снизу.

Сценарий 1.5: импорт добавляется самостоятельно

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

... var me = document.currentScript.ownerDocument; var post = me.querySelector("#blog-post"); var container = document.querySelector("#container"); container.appendChild(post.cloneNode(true));

Сценарий #2: у вас есть скрипты в элементе или по ходу тела документа

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

function addImportLink(url) { var link = document.createElement("link"); link.rel = "import"; link.href = url; link.onload = function(e) { var post = this.import.querySelector("#blog-post"); var container = document.querySelector("#container"); container.appendChild(post.cloneNode(true)); }; document.head.appendChild(link); } addImportLink("/path/to/import.html"); // Import is added early:) // other scripts ...

Как вариант, вы можете добавить весь импорт в конце .

// other scripts ... function addImportLink(url) { ... } addImportLink("/path/to/import.html"); // Import is added very late:(

Примечание : Самый последний вариант - наименее предпочтителен. Парсер не начинает работать с содержимым страницы до самого окончания страницы.

Что стоит запомнить
  • mime-тип импорта, это text/html
  • Ресурсы с других доменов должны разрешать междоменное разделение ресурсов(CORS)
  • Импорт с одним URL запрашивается и выполняется только один раз. Это также значит, что скрипты внутри импорта выполняются только один раз.
  • Скрипты в импорте выполняются по порядку но не останавливают парсинг главного документа.
  • Элемент импорта не говорит браузеру "#добавь содержимое прямо сюда". Он говорит «пойди и возьми этот документ, чтобы я в дальнейшем мог его использовать». Скрипты в импорте выполняются автоматически, а разметка, стили и другие ресурсы должны быть явно добавлены на главную страницу. Примечание: элементы также добавляются автоматически. Это все составляет огромную разницу между HTML-импортом и , который говорит браузеру «загрузи и отобрази контент прямо здесь».
Заключение

HTML-импорт позволяет предоставлять набор HTML/CSS/JS кода, как единый ресурс. Это полезно, как само по себе, так и в контексте веб-компонентов. Разработчики могут создавать повторно используемые компоненты, для их потребления другими разработчиками при помощи .

HTML-импорт это простая идея, но она предоставляет нам несколько интересных полезностей.

Полезности


1 . В оригинале предложение звучит так «Yo dawg. I hear you like imports, so I included an import in your import.», это отсылка к известному выражению репера Xzibit



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: