Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 10648 сообщений
Cообщения с меткой

html - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

Язык описания шаблонов Snakeskin

Вторник, 24 Мая 2016 г. 19:25 (ссылка)


Snakeskin

This is Frank, a snake-cowboy who loves templates.






Привет! Хочу рассказать о своей разработке — языке программирования текстовых шаблонов «Snakeskin». Проекту больше трех лет, всеми детскими болезнями, я полагаю, он благополучно переболел (и излечился), поэтому хочу поделиться результатом.



Демка



Основной репозиторий



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



Плагины для Gulp, Grunt, Webpack и прочее



Gitter — здесь можно задать любой интересующий вопрос

Читать дальше →

https://habrahabr.ru/post/301646/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

JavaScript-only: гомогенная архитектура веб-проектов

Вторник, 24 Мая 2016 г. 16:48 (ссылка)


Работа фронтенд-разработчика наполнена задачами по оптимизации кода, переносу готовых фрагментов между версиями проектов и т.п., сложность которых зачастую определяется исторически сложившимся подходом к самой разработке. В своём докладе на конференции HolyJS, которая пройдет 5 июня в Санкт-Петербурге, фронтенд-разработчик Алексей Иванов расскажет, как объем этих проблем можно сократить отказом от привычного подхода, когда приложение состоит из разрозненных частей, в пользу «всё-в-JS». Мы же в преддверии конференции поговорили с Алексеем о том, от каких именно сложностей избавляют предлагаемые им идеи (сами идеи будут подробнее раскрыты в докладе).







— Расскажи вкратце о себе и своей работе.



— Меня зовут Алексей Иванов, я фронтенд-разработчик в компании «Злые марсиане» (Evil Martians). Это распределенная группа разработчиков, помогающая крупным компаниям, вроде eBay или Groupon, а также различным стартапам в короткие сроки и без проблем запускать интернет-проекты с расчётом на быстрый рост.

В Марсианах я сейчас занимаюсь фронтендом сервиса под названием eBay Social для российского офиса eBay. Это классическое приложение на Ruby on Rails с отдельными интерактивными частями, написанными на React.

До Марсиан я делал первую версию SPA-приложения для ridero.ru на Backbone, помогал запускать пару сервисов для Яндекса с использованием bem-tools, а также занимался разработкой других серверных и SPA-приложений разного размера, что позволило мне потрогать кучу разных инструментов и методологий разработки. Мне нравится изучать и сравнивать разные способы организации кода, работы с зависимостями и разрешения конфликтов, используемые в разных методологиях и инструментах.



Откуда вообще появилась идея о каком-то глобальном изменении подхода к разработке?



— Фронтендеры Марсиан работают с двумя основными типами проектов.

Во-первых, мы создаем классические проекты на Ruby on Rails. В таких проектах рендер шаблонов происходит на сервере внутри самих Rails, а сборка CSS и JavaScript живет отдельно в Node.js и Gulp'е или другом сборщике. Мы пользуемся  пре- и постпроцессорами, собираем отдельные файлы в общие бандлы и сжимаем код Clean CSS и UglifyJS, но при этом CSS и JavaScript друг о друге знают очень мало, а про HTML, с которым они работают, вообще ничего не знают.

Читать дальше →

https://habrahabr.ru/post/301588/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Анимированная заглушка “Sorry, your browser doesn't support WebGL”

Среда, 18 Мая 2016 г. 18:25 (ссылка)


Приветствую тебя читатель. Сегодня я хочу рассказать о своем опыте создания заглушки с ошибкой “Sorry, your browser don't support WebGL”. Эту заглушку я придумал, работая над одним из своих компонентов, где я использовал технологию WebGL.

Читать дальше →

https://habrahabr.ru/post/301136/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Prirodnay

HTML5 | HTMLBOOK.RU

Среда, 18 Мая 2016 г. 20:11 (ссылка)

Это цитата сообщения Irina_Gizhdeu Оригинальное сообщение

HTML5 | htmlbook.ru

http://htmlbook.ru/html5

Сделать эту ссылку меня подтолкнула статейка:
"В Google Chrome будет заблокирован Flash Player"

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


Медленный переход в мир без Flash продолжается. Google планирует отказаться от Flash Player в пользу HTML 5 до конца этого года. Опция “HTML5 by Default” будет включена по умолчанию, а для проигрывания Flash-контента потребуется ручная активация плагина, хотя Flash Player будет по-прежнему поставляться с браузером.

Разработчики планируют оставить использование Flash Player по умолчанию в течение года только для 10 самых популярных сайтов в мире, включая YouTube, Facebook, Yahoo, Twitch и Amazon. Flash Player на остальных сайта можно будет запустить только после активации плагина в ручном режиме и перезагрузки страницы. Такой подход компании вызван желанием предотвратить отображение нежелательного и вредоносного контента.


Ранее Adobe призвала пользователей отказаться от технологии Flash в пользу открытых стандартов. Компания намерена продолжить поддержку проигрывателя, поскольку он активно используется для онлайн-игр, обучения и просмотра платного видеоконтента.

В этом месяце Adobe устранила 25 уязвимостей в Adobe Flash, в том числе 1 уязвимость нулевого дня. Flash Player в настоящий момент является огромной проблемой для обеспечения безопасности корпоративного сегмента, а многие компании уже давно оказались от использования этого ПО.



Поскольку я ничего толком не поняла, пошла искать ответы на свой вопрос:
Что такое все же HTML5 в свете применения на YouTube вместо Adobe Flash Player и вот что нашла:
сначала короткая формулировка:Его/т.е. HTML5/ разработали для обеспечения взаимодействия страниц в разных браузерах. Сегодня мы используем различные браузеры (к примеру, на работе у нас может стоят IE, в телефоне — Safari или Opera, а дома -Firefox) и было бы неразумно и досадно, если бы сайт не работал бы в чем-то из них.

вся статья "HTML5 простыми словами" - ЗДЕСЬ

статья "Google Chrome откажется от Flash-контента по умолчанию" - ЗДЕСЬ

Заключительная выдержка из статьи "HTML5 простыми словами"чтоб понять до конца разницу и проблему:

Вытеснит ли HTML5 Adobe Flash?

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

Apple приняли решение не включать поддержку Flash своими iOS устройствами, что дает огромный толчок видео HTML5. Однако, стоит заметить, что iOS — не самая лучшая платформа и для HTML5.

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



Серия сообщений "HTML":

Часть 1 - 33 полезные кнопочки
Часть 2 - самые необходимые ТЕГИ для оформления записей
...
Часть 25 - Специальные символы для Ника : звёздочки , сердечки , короны и другое
Часть 26 - Примеры и коды текста с тенью
Часть 27 - HTML5 | htmlbook.ru
Часть 28 - Учебник Ли.ру
Часть 29 - МОИ ПОДПИСИ на Лирушке + КУРСОРЫ(вверху)+Мои рамочки(много)+HTML
Часть 30 - "КАК ПЕРЕНЕСТИ ЗАПИСИ из БЛОГА в ДНЕВНИК"
Часть 31 - Странички майла(по 35 штук)


Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Irina_Gizhdeu

HTML5 | htmlbook.ru

Среда, 18 Мая 2016 г. 12:46 (ссылка)
htmlbook.ru/html5

Сделать эту ссылку меня подтолкнула статейка:
"В Google Chrome будет заблокирован Flash Player"

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


Медленный переход в мир без Flash продолжается. Google планирует отказаться от Flash Player в пользу HTML 5 до конца этого года. Опция “HTML5 by Default” будет включена по умолчанию, а для проигрывания Flash-контента потребуется ручная активация плагина, хотя Flash Player будет по-прежнему поставляться с браузером.

Разработчики планируют оставить использование Flash Player по умолчанию в течение года только для 10 самых популярных сайтов в мире, включая YouTube, Facebook, Yahoo, Twitch и Amazon. Flash Player на остальных сайта можно будет запустить только после активации плагина в ручном режиме и перезагрузки страницы. Такой подход компании вызван желанием предотвратить отображение нежелательного и вредоносного контента.


Ранее Adobe призвала пользователей отказаться от технологии Flash в пользу открытых стандартов. Компания намерена продолжить поддержку проигрывателя, поскольку он активно используется для онлайн-игр, обучения и просмотра платного видеоконтента.

В этом месяце Adobe устранила 25 уязвимостей в Adobe Flash, в том числе 1 уязвимость нулевого дня. Flash Player в настоящий момент является огромной проблемой для обеспечения безопасности корпоративного сегмента, а многие компании уже давно оказались от использования этого ПО.



Поскольку я ничего толком не поняла, пошла искать ответы на свой вопрос:
Что такое все же HTML5 в свете применения на YouTube вместо Adobe Flash Player и вот что нашла:
сначала короткая формулировка:Его/т.е. HTML5/ разработали для обеспечения взаимодействия страниц в разных браузерах. Сегодня мы используем различные браузеры (к примеру, на работе у нас может стоят IE, в телефоне — Safari или Opera, а дома -Firefox) и было бы неразумно и досадно, если бы сайт не работал бы в чем-то из них.

вся статья "HTML5 простыми словами" - ЗДЕСЬ

статья "Google Chrome откажется от Flash-контента по умолчанию" - ЗДЕСЬ

Заключительная выдержка из статьи "HTML5 простыми словами"чтоб понять до конца разницу и проблему:

Вытеснит ли HTML5 Adobe Flash?

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

Apple приняли решение не включать поддержку Flash своими iOS устройствами, что дает огромный толчок видео HTML5. Однако, стоит заметить, что iOS — не самая лучшая платформа и для HTML5.

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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Meteor + MVVM =

Понедельник, 09 Мая 2016 г. 12:15 (ссылка)



Тут мелькнула статья, как чувак, выбирая инструментарий, ничего не мог написать. Это про меня! Под Новый год нашёл ViewModel.org. А внутри прекрасный Two-Way Binding. Но не проходит ощущение ящика в гараже, заваленного гаечными ключами вперемешку с "лишними" деталями. Наглядный пример, как в собственной же демке пришлось ввернуть костыль, гы-гы. И я застрял на четыре месяца — хобби по вечерам после работы. Перебрал все пакеты, хоть как-то полезные для Blaze. Приставал к авторам с мольбами… Собрал в итоге новый велосипед с громким именем Template2.



Очень сложно сделать просто, как известно. Зацените:




  • Совместимость с Blaze Template. Мы его любим.

  • Минимальные изменения для миграции вашего гениального проекта.

  • Декларация переменных модели нужна только один раз через атрибут (что отдельно полезно для дебага кода пришельцев).

  • Валидация входных данных и получение ассоциативного массива документа для записи в Mongo — это всё вообще без кодинга.

  • Поддержка SimpleSchema и возможность расширения для других моделей (только что вышла Astronomy 2.0, например).




{{> hello param="123"}}




// Тюнинг - наше всё!
Template2.mixin('hello', {
// Валидация параметров, переданных из родительского шаблона
propsSchema: new SimpleSchema({
param: { type: String }
}),
// Устанавил схему модели
modelSchema: Posts.simpleSchema(),
// Установил реактивные состояния шаблона
states: {},
// Хелперы и События работают как прежде, но с контекстом Template.instance()
helpers: {}, events: {},
// Колбеки живут своей жизнью без изменений, как в стандартном Blaze
onCreated() {}, onRendered() {}, onDestroyed() {},
});

// Хелперы и События можно декларировать в старом стиле, но с контекстом Template.instance()
Template.hello.eventsByInstance({
'submit form': function(e) {
e.preventDefault();
// Get doc after clean and validation for save to model
this.viewDoc(function(error, doc) {
if (error) return;
Posts.insert(doc);
});
}
});

// Колбеки старой школы можно использовать без изменений.
Template.hello.onRendered(function() {
var self = this;
this.autorun(function() {
var doc = Posts.findOne();
if (doc) {
// Set doc from model to view
self.modelDoc(doc);
}
});
});


Запустить демку? Легко:



$ git clone https://github.com/comerc/meteor-template2.git
$ cd meteor-template2
$ meteor


http://localhost:3000



А зачем картинка? Так я себя ощущаю после коктейля Meteor + MVVM.








Метеор-перекличка






































Проголосовало 11 человек. Воздержалось 13 человек.




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





Original source: habrahabr.ru.

https://habrahabr.ru/post/283152/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Перевод] Как вы можете использовать отзывчивые веб-компоненты сегодня

Среда, 04 Мая 2016 г. 18:43 (ссылка)



Пару лет назад я впервые услышал про веб-компоненты (Web Components). Сперва меня это действительно заинтересовало, но как только шумиха вокруг них приутихла, они тут же вылетели у меня из головы. Но, как оказалось, в последнее время прошло интересное движение и поддержка этой технологии значительно выросла. Отзывчивые веб-компоненты, в частности, призваны упростить наш подход к адаптивному дизайну. Как многообещающе звучит!

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


  • Поддержка технологии;

  • Кроссбраузерная работа;

  • Возможность адаптации в среде удельного проекта;

  • Модульный подход.



В этой статье мы рассмотрим каждый из этих пунктов в отдельности...



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




Что такое веб-компоненты?



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



Почему я хочу их использовать?



Хорошим примером того, когда вы можете захотеть использовать веб-компоненты является задача, где вам требуется создать пользовательский интерфейс, которого нативно не существует в браузере — такие элементы, как селектор цвета, карусель, аккордеон, поле с автодополнением. Можно использовать в качестве альтернативы одним и тем же компонентам, которыми вы пользуетесь из проекта в проект, предварительно лениво кастомизируя их под требования текущего. Это такие вещи, как социальные кнопки, формы подписки или уведомления. С помощью веб-компонентов вы можете связать разметку, стили и скрипты в один герметизированный модуль и использовать HTML-тег (как ), чтобы ссылаться на него. Это довольно таки знакомо, если вы уже использовали Angular-директивы или компоненты React, но преимущество здесь в том, что данный подход является родным для браузера и «агностиком» фреймворков.



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



Другое большое преимущество использования веб-компонентов — это возможность упаковать свой модуль и поделиться ним с другими разработчиками/владельцами сайтов. По сути, пользователю всего лишь остаётся добавить оператор импорта на свой веб-сайт:








А затем использовать кастомный тег элемента, что определён для данного веб-компонента. Так пользователь может добавить на свой веб-сайт столько кастомных веб-компонентов, сколько он захочет. К примеру, для формы подписки вы можете использовать тег — , таким образом размещая её в одном, или нескольких местах на странице. Конечно, перед тем как сделать это, вы должны убедиться в том, что созданный вами веб-компонент достаточно гибок и будет адекватно работать в ряду различных устройств и размеров экранов.



Переходим от теории к практике



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



К примеру возьмём форму, которую я создал ранее:







Внутри данного шаблона я создал некую базовую разметку для формы:

















Моя разметка и стили спрятаны внутри веб-компонента с помощью возможностей, которые предоставляет Shadow DOM спецификация. Данный способ организовывает некую инкапсуляцию, которая даёт мне возможность использовать label и input селекторы свободно, не боясь влияния на них стилей родительского веб-сайта.



Для ясности и краткости, я не буду описывать написание стилей, кроме тех, которые я использовал для отображения разметки. Я использовал комбинацию свойств float: left и display: table для реализации данного интерфейса и избегания поломки при любой ширине.



.form__item {
display: table;
float: left;
width: 50%;
}

label {
display: table-cell;
width: auto;
}

input {
display: table-cell;
width: 100%;
}




По ходу урока я буду использовать скриншоты для демонстрации проделанной нами работы:







Теперь у нас все готово, давайте рассмотрим некоторые техники достижения адаптивности.



Медиа запросы



Классический подход, который мы все знаем и любим, так же хорошо работает и в отзывчивых веб-компонентах. Вы можете использовать медиа запросы внутри вашего шаблона в случае, если вы хотите создать какие-либо дефолтные контрольные точки. С другой стороны вы можете использовать «крючки» (к примеру, создавая классы) и применяя их к родительскому контейнеру, таким образом оставляя возможность пользователю самостоятельно принимать решение. В нашем случае, всё, что нам нужно, — это создать контрольную точку, достигая которую мы отменяем свойство float для дочерних элементов и задаём им ширину в 100%.



@media (max-width: 30em) {
.form__item {
float: none;
width: 100%;
}
}






Однако, одних медиа запросов тут будет не достаточно.



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







Это происходит потому, что веб-компонент не видит своих границ — не имеет представления о контексте.



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



Flexbox-хак



Если вы задумали использовать веб-компоненты в своём проекте и готовы пожертвовать поддержкой старых браузеров (таких как IE9 и тд.), то чуточку Flexbox-магии вам совсем не навредит. Это отличное решение, которое, к тому же, совершенно не требует использование JavaScript.



Опять же, код ниже содержит только стили, которые я использовал для отображения разметки.



.form {
display: flex;
flex-wrap: wrap;
}

.form__item {
align-items: center;
display: flex;
flex: 1 0 320px;
flex-wrap: wrap;
max-width: 100%;
}

label {
flex: 1 0 90px;
}

input {
flex: 1 0 230px;
width: 100%;
}




Устанавливая родительскому контейнеру display: flex и flex-wrap: wrap, дочерние .form__item выстроются один к одном, блок-о-блок, но нам всё ещё нужно определить несколько правил, чтоб в случае, если контейнер становится слишком мал, дочерние элементы спрыгивали один под другой.



Внутри .form__item мы использовали краткое записание свойства — flex: 1 0 320px, которое можно разложить как: flex-grow: 1, flex-shrink: 0, flex-basis: 320px. Установив flex-wrap: wrap, мы определили, что ширина нашего элемента не станет меньше указанной в 320px, в то время как указав свойство flex, мы разрешили нашему элементу расти и занимать оставшееся свободное место в строке.



Такой же подход я использовал для элементов input и label. Их суммарное значение flex будет равно 320px, что подразумевает, что они будут адекватно отображены и при меньших размерах контейнера.



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







Гораздо лучше! Тем не менее, это не единственный способ решения данной проблемы, их бесчисленное множество.



Запросы соответствующие веб-элементам



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



.form__item[max-width~="30em"] {
/* Styles here */
}




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



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



В моём примере я использовал CSS Element Queries, созданный человеком по имени Marc J Schmidt. Этот плагин является действительно хорошей реализацией решения данной задачи. Есть также следующие похожие проекты:



По сути, данные плагины используют JavaScript для определения ширины веб-элемента и добавляют ему соответствующий атрибут, тем самым позволяя определять новые соответствующие стили элементу посредством CSS.



.form__item[max-width~="30em"] {
float: none;
width: 100%;
}




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



Атрибуты



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








Таким образом создаём крючок, что определяет дополнительные CSS-свойства.



В Shadow DOM спецификации контейнер, содержащий в себе элемент, определён как :host. Пример будет выглядеть так:



:host { 
display: block;
}

:host([layout = "small"]) .form__item {
float: none;
width: 100%;
}

:host([layout = "large"]) .form__item {
display: table;
float: left;
width: 50%;
}




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



Вывод



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



Если вы ещё не пробовали использовать веб-компоненты, я настоятельно рекомендую вам сделать это. К сожалению, все возможности данной технологии пока доступны только в Chrome и Opera, но и другие производители браузеров не сидят без дела, и повсеместная поддержка данной технологии не за горами.

Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/280636/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<html - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda