Обновить
61.31

HTML *

Стандартный язык разметки web-страниц

Сначала показывать
Порог рейтинга
Уровень сложности

Делать ли мобильную версию? 5 распространенных проблем, которые решает адаптивная верстка. Опыт Яндекса

Время на прочтение9 мин
Охват и читатели116K

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


Сайт smashingmagazine.com на различных размерах экранов


Вскоре многим стало понятно, что разработка отдельной мобильной версии — это долго и дорого в поддержке. Кроме того, это противоречит идеологии веба, который подразумевает, что размеченный документ универсален и может быть прочитан практически на любом устройстве вывода. Для решения возникшего противоречия в CSS был добавлен стандарт Media Queries. Появились новые возможности по определению особенностей устройства, в частности появилась возможность применять различное оформление страницы для произвольных размеров окна.

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

Создание игры Doodle Jump для Android в Intel XDK за 2 часа на JavaScript с нуля

Время на прочтение11 мин
Охват и читатели27K
Здравствуй, Хабр.

Непривычно для меня писать статьи спустя такое долгое время, так как я привык к записи материала на видео, где можно свободно что-либо рассказывать. И так уж получилось, что решил написать статью об Intel XDK, но не просто обзор возможностей, а разобрать среду на примере вполне конкретного проекта. Проектом таким для меня стал «клон» игры «Doodle Jump».

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

Библиотека, облегчающая разработку форм на сайтах (v3)

Время на прочтение6 мин
Охват и читатели23K

Привет, Хабр!


Как-то, год назад я писал о своей небольшой библиотеке, которая облегчает разработку форм на сайтах. Недавно я выпустил 3-ю версию, которая, по-сути, была переписана с нуля, чтобы стать правильней и удобней. Но в своей статье я не буду повторять README и ДЕМО, а лучше покажу на практике, каким образом она помогает писать меньше кода.

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

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

Время на прочтение6 мин
Охват и читатели76K


Вероятно, вы все уже слышали про технологию «Веб-push» в составе Push API и Notifications API. Я уверен, что среди вас есть те, кто возлагает надежды на эту технологию, как на новый канал коммуникации с пользователем. И я не исключаю возможность, что данную статью будут читать основатели тех немногочисленных стартапов, которые всерьёз занялись окучиванием технологии «Веб-push» для рекламы и маркетинга. Сегодня я вам расскажу, о том как можно использовать данную технологию.
Читать дальше →

Кэш, хэш и няш-меш

Время на прочтение6 мин
Охват и читатели15K

UPD0 (2016-07-19 23-31): судя по всему, первая половина моей статьи — успешно изобретённый велосипед. Спасибо хабравчанам за ссылку на спецификацию
Статья ценна не более, чем вольное описание уже придуманной технологии.


Предыстория


Июльский субботний вечер подходил к концу. Нарубив дров на шашлык, я повесил USB-модем на багету, скомандовал sudo wvdial, развернул браузер и обновил вкладку с открытым гитхабом. Вернее, попытался обновить. Скорость не радовала, и в итоге страница-то обновилась, но явно не хватало какого-то из стилевых файлов; и дело было не в блокировке, поскольку аналогичные проблемы я наблюдал и с другими сайтами, и зачастую они решались просто многократным обновлением страницы. Во всём был виноват перегруз 3G-сети.


Стоп! А как же кэш?

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

Сражаясь с БЭМ: 10 основных ошибок и как их избежать

Время на прочтение13 мин
Охват и читатели89K

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

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

Пишем адаптивный шаблон для Emlog CMS

Время на прочтение5 мин
Охват и читатели2.6K
Сегодня хотелось бы рассказать о Emlog CMS, о данной системе мало кто слышал, но она является хорошим вариантом для ведения личного сайта. Emlog работает быстро и стабильно, но уступает по функционалу Wordpress, например, и у этого скрипта меньше плагинов и шаблонов. Скрипт китайский, но имеет русскую локализацию, правда, шаблоны к нему только на китайском и, в основном, не адаптивные, напишем подходящий шаблон для ведения блога, например.
Работа с Emlog немногим отличается от Wordpress, дефолтный шаблон включает в себя такие файлы, как:
  • 404.php
  • echo_log.php – Полная новость.
  • footer.php
  • header.php
  • log_list.php – Короткая новость.
  • main.css – Все css шаблона.
  • module.php – Подключаемые модули и комментарии.
  • page.php — Страница открытой новости.
  • side.php – Боковая панель.
  • t.php – Микроблог.

Примеры функций для шаблона:
<?php require_once View::getView('module'); ?> //Подключение модулей.
<?php include View::getView('side'); ?> //Подключение боковой панели с модулями.
<?php echo $site_title; ?> //Заголовок страницы.
<?php blog_navi(); ?> //Панель со ссылками.
<?php echo $footer_info; ?> //Информация в конце страницы.

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

Книга «Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5. 4-е изд.»

Время на прочтение3 мин
Охват и читатели30K
image Новое 4-ое издание признанного бестселлера, охватывающего как клиентские, так и серверные аспекты веб-разработки. Эта книга поможет вам освоить динамическое веб-программирование с применением самых современных технологий. Книга изобилует ценными практическими советами, содержит исчерпывающий теоретический материал. Для закрепления материала автор рассказывает, как создать полнофункциональный сайт, работающий по принципу социальной сети.

  • Изучите важнейшие аспекты языка PHP и основы объектно-ориентированного программирования.
  • Познакомьтесь с базой данных MySQL.
  • Управляйте cookie-файлами и сеансами, обеспечивайте высокий уровень безопасности.
  • Пользуйтесь фундаментальными возможностями языка JavaScript.
  • Применяйте вызовы AJAX, чтобы значительно повысить динамику вашего сайта.
  • Изучите основы CSS для форматирования и оформления ваших страниц.
  • Освойте продвинутые возможности HTML5: геолокацию, обработку аудио и видео, отрисовку на холсте.

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

Делаем крутые Single Page Application на basis.js — часть 2

Время на прочтение12 мин
Охват и читатели26K
Всем доброго времени суток.
Продолжаю увлекательный цикл статей про создание мощных Single Page Application на basis.js.
В прошлый раз мы немного пофилософствовали, а так же познакомились с токеном — одной из важнейших вещей в basis.js.
Сегодня речь пойдет о работе с данными.
Читать дальше →

Параллакс в 2D игре. Интересный эффект движения при создании игры на JavaScript (canvas)

Время на прочтение1 мин
Охват и читатели7.7K
При создании игры наткнулся на интересную идею, как можно реализовать эффект трехмерного движения, при создании, например, платформера. Данная возможность, думаю, подойдет для большинства 2D игр, завязанных на скроллинге игрового мира.
image
Читать дальше →

Делаем крутые Single Page Application на basis.js — часть 1, вступительно-теоретическая

Время на прочтение7 мин
Охват и читатели32K
Всем доброго времени суток!
Данная статья начинает цикл публикаций, посвященных basis.js – фреймворку для создания полноценных Single Page Application.
Читать дальше →

Позвольте представить, Shadow DOM API на основе слотов

Время на прочтение9 мин
Охват и читатели12K
Предлагаю вашему вниманию перевод статьи «Introducing Slot-Based Shadow DOM API» автора Ryosuke Niwa, написанную им в блоге WebKit осенью прошлого года.

Мы рады анонсировать что базовая поддержка нового Shadow DOM API на основе слотов, которую мы предлагали в апреле (прим. переводчика: речь идёт об апреле 2015) уже доступна в ночных сборках WebKit после r190680. Shadow DOM это часть Веб Компонентов – набора спецификаций, изначально предложенных Google для того чтобы сделать возможным создание переиспользуемых виджетов и компонентов в вебе. Shadow DOM, в частности, предоставляет легковесную инкапсуляцию DOM дерева, позволяя создавать на элементе параллельное дерево, так называемое «теневое shadow дерево», с помощью которого изменяется отрисовка элемента без изменения DOM. Пользователи такого компонента не смогут ненароком что-то в нём изменить, ведь его shadow дерево не является привычным потомком элемента-хоста. Кроме того, действие стилей также ограничено областью действия (scope), а значит CSS правила, объявленные снаружи shadow дерева не применяются к элементам внутри такого дерева, а правила, объявленные внутри – к элементам снаружи.
Читать дальше →

Подборка уроков для начинающего разработчика игр на JavaScript

Время на прочтение1 мин
Охват и читатели29K
В этой подборке уроков рассматриваются основы создания игр на JavaScript, изучив которые вы научитесь:
— Работать с позицией курсора мыши
— Вращать объекты внутри CANVAS элемента
— Выделять объекты мышью внутри CANVAS
— Перетаскивать объекты внутри CANVAS
— Создавать эмуляцию гравитации для объектов внутри CANVAS
— Определять скорость мыши
— Использовать мультиязычность в своих игровых проектах.
Все уроки полностью на русском языке и выполнены в наглядной форме.
image
Читать дальше →

Ближайшие события

Опрос: насколько строго вы следуете стандартам и лучшим практикам на фронтенде?

Время на прочтение1 мин
Охват и читатели12K
Как-то так получилось, что за последнюю неделю я посмотрел довольно большое количество выступлений на разных крупных и не очень конференциях. И часто там говорили об очень важных, в теории, вещах: производительности, доступности, прогрессивном улучшении.
Но, судя по моему опыту и ощущениям, на практике никто этим не занимается, кроме самых крупных компаний. Эти ощущения подтверждает, например, подкаст Веб-стандартов: там при обсуждении каких-то технологий или практик, постоянно звучат слова "мы это у себя не используем", "только если заказчик пнёт".
Я бы хотел проверить, так ли это, проведя небольшой опрос. Думаю, результаты будут интересны многим, приглашаю обсудить вопросы, ответы и вообще эту тему в целом в комментариях.
P.S. Я в опросе довольно вольно использую термин "стандарты". Понятно, что для некоторых вещей стандартов нет, но придумывать какое-то альтернативное название не вижу смысла.
14 вопросов

Как стать профессиональным веб-разработчиком: практическое руководство

Время на прочтение12 мин
Охват и читатели680K

Дорога длинна и трудна, но интересна и полезна!

Статья задумывалась как практическое руководство для желающих стать профессиональным веб-разработчиком. Я уже более 20 лет пишу код для веба. Я ежедневно работаю с веб-разработчиками и помогаю им. В статье я опишу, что вам нужно выучить, когда вам нужно это выучить и где взять информацию (чаще всего даже бесплатно). Затем я дам совет по получению реального опыта, и что самое важное – по получению денег за написание кода.

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

Что нужно помнить:

1. Статью разрешается пролистывать

Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:

Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.
Читать дальше →

Как называть css-классы

Время на прочтение6 мин
Охват и читатели170K
Основываясь на моих любимых статьях по данной теме и личном опыте, вот мои 5 копеек о том, как называть CSS-классы.

0. Прежде чем думать о названии класса, выберите подходящее название для HTML-элементов



Если это поле, используйте элемент input

Читать HTML-документ будет гораздо легче.

Пример:

<div class='submit'/> <!-- Чёёё? -->
<input class='submit'/> <!-- Аа, ясно -->


Источник: Рафаэль Гоитер (французская статья)
Читать всю статью

GrabDuck: От Ньютона до вебсайта

Время на прочтение10 мин
Охват и читатели1.4K
Приветствуем вас друзья и недруги сервиса GrabDuck, мы рады вам всем (хотя друзья нам конечно же нравятся больше) и сегодня хотим поговорить о многом: о всеобщей эволюции, интернет сервисах, web 2.0 и конечно же о том, каким же должен быть хороший сервис закладок. Заходите, будет философия, много картинок, и совсем без примеров исходного кода ;-)

image

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

Facebook Messenger был уязвим к атаке, требующей базовые знания HTML

Время на прочтение1 мин
Охват и читатели18K
image

Команда специалистов Check Point security обнаружила в стандартном функционале Facebook, а так же в Facebook Messenger, уязвимость, которая позволяла получить доступ к любым отправленным через социальную сеть сообщениям пользователей.

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

Создание арканоида на чистом JavaScript с нуля. CANVAS

Время на прочтение1 мин
Охват и читатели21K
Началось все с небольших уроков на тему того, как сделать игровой цикл, как организовать отрисовку, как заставить работать клавиатуру и т.д. И на фоне этих небольших уроков пришла мысль сделать полноценную (почти) игру, так же, с нуля.
Желание воплотилось в виде 7 уроков, которые я бы и хотел представить ниже.
Читать дальше →

Front-end шаблонизатор

Время на прочтение18 мин
Охват и читатели40K
Прошлую свою статью я посветил описанию «велосипеда» (загрузчика и шаблонизатора в рамках «легкого» framework’а). Волею судеб, для пары проектов я был вынужден выделить шаблонизатор и сделать его standalone версию, обогатив при этом рядом новых возможностей. Именно об front-end шаблонизаторе и пойдет речь.

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

  • Вы front-end разработчик, и вам интересно использование шаблонов.
  • Вы back-end разработчик, и вам интересно использование шаблонов на front-end’е.
  • Вы давно ищете какой-нибудь инструмент для систематизации своей коллекции UI-control'ов, накопившуюся за несколько лет.
  • Вы интересуетесь разработкой web-компонентов.
  • Вам хочется высказать критические замечания и порекомендовать angularJS.
  • У вас есть свободное время и вам интересно почитать об очередном велосипеде.
  • У вас нет свободного времени, но вам интересно.
  • Вы хороший и любознательный человек.

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