Как в HTML / CSS сделать emoji того же размера, что и текст?
На моей веб-странице у меня есть всплывающее изображение в серии вложенных div.
В верхнем div у меня есть заголовок.
Пока загружается изображение с более высоким разрешением, в заголовке отображаются песочные часы эмодзи (⏳). По завершении снимаю песочные часы. Когда песочные часы удаляются, div с текстом заголовка становится немного меньше по вертикали.
Как я могу сделать смайлик равным размеру текста, чтобы мой div не стал выше? Вот фрагмент кода, который показывает div с голубым цветом фона и смайликами. Когда кнопка нажата, innerHTML заменяется текстом без эмодзи, и вы можете видеть, что вертикальный размер уменьшается.
document.getElementById("button").onclick = () => ;
div.textWithEmoji
Emoji Size Test Emoji Size Test
This is some text with emoji ⏳
Я не хочу устанавливать для высоты div определенное значение, поскольку размер шрифта — это переменная на моей странице. Я попытался установить размер эмодзи на 75%, и это работает в Chrome и iOS, но нет гарантии, что это будет работать на каждой платформе. Есть идеи, как я могу заставить это делать то, что я хочу? Свободный перевод вопроса In HTML/CSS how can I make emoji the same size as the text? от участника @Mike McCollister.
Добавление смайликов (emoji) в поля форм
Для возможности вставлять смайлики необходимо у элемента input или textarea добавить класс as-smile.
В форме для поля мы можем указать дополнительный класс в GetItem в SELECT 1:
-- SELECT 1 in GetItem select '' f1, 'as-smile' class_f1 from t1
Данные сохраняются в юникоде.
Кнопка вызова смайлов имеет класс emoji-btn, сам контейнер со смайлами — emoji-cont.
Вы можете подвинуть кнопку показа смайлов через CSS.
.emoji-btn
Настройки смайлов в as.systemOptions.js:
- smile.enableCommentSmile — если true, то смайлы будут работать в Комментариях. По умолчанию false.
- smile.enableChatSmile — если true, то смайлы будут работать в Чатах. По умолчанию false.
- smile.button — смайлик, который выводится на кнопке показа смайлов. По умолчанию ‘’
- smile.fontSize — размер смайлов. По умолчанию ’20px’
- smile.items — массив доступных смайлов. По умолчанию:
Falcon Space — функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- ФормыФормы. Как принимать в форму не 1 параметр (itemID), а несколько входящих параметров? data-param-p1Формы. Как создать форму для редактирования сущностиФормы. Как сделать кастомную HTML разметку для формы (jsRender)Формы. Как сделать поиск для поля, т.е. список с поиском через обращение к БД (autocomplete. search-select)Формы. Как установить некоторые поля в форме по умолчанию при загрузкеФормы. Как выводить разные данные на одной форме для разных ролейФормы. Как в форме вывести список галочек (множественный выбор поля)Формы. Как выводить и сохранять множественный список через chosen поле.Формы. Как перезагрузить страницу после сохраненияФормы. Как добавить коллбек после загрузки формы и после сохранения формы.Формы. Как динамически изменять тип колонки при рендеринге формы.Формы. Как сделать модальную форму (открывается в диалоговом окне)Формы. Как обновить таблицу (или форму) после вызова модальной формыФормы. Как вывести форму во всплывающем окне рядом с кнопкой (popover)Формы. Как сделать зависимые поля в форме (Страна, Город)Формы. Как сделать выбор адреса и сохранение координат места (lat,lng).Формы. Как правильно обрабатывать цены (дробные числа) на формеФормы. Как вывести списковые данные или таблицу внутри формыФормы. Установка фоновой панели для формыФормы. Как передать в форму скрытый параметрФормы. Как сделать списки select и chosen с категориями (optgroup)Формы. Как сделать форму в виде мастера шаговФормы. Как показывать на форме прогресс заполнения (прогрессбар заполнения формы)Формы. Как использовать Флажки и выбор радио с картинкойФормы. Как сделать поля с анимацией значений (крутящиеся числа, цифры).Формы. Как редактировать текст элементов HTML в Rich-редактореТаблицы. Как вывести в модальном окне таблицуФормы. Как использовать в форме поле Выбор файлов. Типы полей формы files, remoteFile, fileContentФормы. Как скрывать/показывать, обновлять область на странице при изменении поля формыФормы. Как работать с полем ТаймерФормы. Как в форму в SaveItem передать некий скрытый параметр (например Куки или параметр URL)Формы. Как показывать изменяющуюся информацию при изменении полейФормы. Как сделать форму с сохранением состоянияФормы. Как работать с полем типа Слайдер (ползунок)Формы. Добавление кнопки очистки формы (Reset form)Формы. Как сделать подтверждение действия в СМС (SMS) в формеУстановка графика работы (поле формы weekTime)Формы. Как сделать в форме более 1 кнопки действийКак в форме добавить примеры заполнения полей (example)Как выбрать значение списка через справочник в модальном окнеКак сделать окно подтверждения действия формыФормы. Динамическое изменение itemID у формы в зависимости от других элементов страницыФормы. Как добавить новый элемент, если в списке на форме его нетКак создать кастом форму с подтверждением действия по Email или SMSКак сделать задержку при сохранении формы (saveDelay)Подсказки-ограничители длины для полей в формеКак сохранить значение поля в браузере, чтобы каждый раз его не вбивать при загрузке (оставлять последнее сохраненное). Запоминание поля формы в браузереВставка ссылок по шаблону (ютуб ссылка, patternString)Формы. Загрузка формы по ссылкеФормы. Управление настройками поля через options_ поляФормы. Использование Google Recaptcha в формахКак указать произвольную маску для поля ввода в формеФорма. Как вывести дерево с выбором галочекФормы. Как сделать выбор цвета в формеКастом проверка полей формы через JSКак в выборе даты (datepicker) задать доступные датыЗагрузка формы в выпадающем окне (dropdown)Добавление смайликов (emoji) в поля формФорма. Обработка даты из поля datetime-localКак у формы сделать progress bar при загрузке формыРедактор текста — код поля формы html2Работа с датами в формахФорма. Как работать с полем Дробное числоКак настроить выбор вариантов для поля Интервал датВыбор из элементов с табуляцией — поле формы tabsПоказ количества символов рядом с полем в формеКнопка очистки формы Reset
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Эмодзи в сниппетах
Добавление emoji в title, description и другие источники данных для сниппетов позволяет добиться невероятно высокой кликабельности сниппета и, как следствие, роста позиций в поиске (кейс — в конце статьи). Но, даже тут не обошлось без подводных камней, о которых почему-то не задумываются даже сильные команды специалистов. Например, такие ошибки я нашёл у команды агрегатора Zoon.
Прочитав до конца эту статью ты будешь знать всё об использовании emoji при продвижении сайтов. Кстати, само это слово — японское и правильно звучит “эмодзи”, а не “эмоджи”.
Где искать emoji
Существует огромное число сервисов подбора emoji, но настоятельно советую использовать символы из данного набора. Только так вы сможете избежать проблем, которые описаны в разделе этой статьи «Проблема поддерживаемости emoji».
Методы указания emoji
Разместить символ emoji в HTML-коде страниц можно тремя способами: символом, десятичным кодом и шестнадцатеричным кодом. Причем поисковые системы поддерживают все три способа и в случае с кодовым (а не символьным) обозначением сами преобразовывают код в символ для своих сниппетов.
| Способ | Пример |
|---|---|
| Символ | |
| Десятичный код | 🌟 |
| Шестнадцатеричный код | 🌟 |
Самый простой способ — размещение символом, при нем вы просто копируете символ и вставляете в код. Но, к сожалению, не всегда так можно сделать: часто кодировка базы данных, где содержатся мета-теги и контент страниц, позволяет использовать лишь ограниченный набор символов, в который не входят символы emoji. В таких случаях и выручает использование шестнадцатеричного и десятичного кода символа.
Чтобы быстро найти код для нужного символа, воспользуйтесь поиском Google, где в качестве запроса укажите сам символ и добавьте к нему фразу «decimal code» для получения десятичного кода, либо «hexadecimal code» для получения шестнадцатеричного кода. В 90% случаев Google покажет быстрый ответ с табличкой, в которой будет указан нужный код.
Пример результата поиска по запросу « hexadecimal code»:

Зоны сниппета с emoji
В сниппете существует множество зон, в которые мы можем добавить emoji. Давайте разберемся какие зоны у него есть и на основе чего они формируются.
Сниппет зависит от запроса
У одной и той же страницы вашего сайта могут быть совершенно разные сниппеты в зависимости от запроса, который вы используете в поиске. Дело в том что поисковые системы пытаются показать в сниппете информацию релевантную запросам пользователей.
Заголовок сниппета
Заголовок сниппета — это самая заметная зона в сниппете, куда можно включить символ emoji. Дело в том что он находится выше всех остальных блоков сниппете (а как известно читаем мы сверху вниз, по F-паттерну), а также имеет наибольший размер шрифта.
Формируется заголовок сниппета на основе содержимого тега title или тега h1, а также на основе внешних ссылок и других источников. Пример такого сниппета в Яндексе:

В Яндексе заголовок сниппета часто формируется на основе содержимого поля title микроразметки Open Graph. Такой вариант указания emoji отлично подходит тем SEO-специалистам, которые не хотят включать лишние символы в содержимое тега title, что ухудшает его текстовую релевантность целевым запросам.
Вид в поиске Яндекса:


Описание сниппета
Описание сниппета — это большой блок текста под заголовком сниппета. Формируется описание на основе содержимого мета-тега description (чаще всего в Google именно так), а также на основе контента и других источников.

Список в описании
Список в описании сниппета — особый блок с маркированным списком, который отображается в сниппетах Яндекса. Формируется он на основе HTML-списков (ol-li, ul-li и dl-dd).


Навигационная цепочка
Навигационная цепочка (хлебные крошки) — это блок ссылок, отражающих положение страницы в структуре сайта. Формируется этот блок на основе микроразметки хлебных крошек (Microdata или JSON-LD) и внутренней перелинковки сайта.
Ни разу не встречал включение emoji в навигационную цепочку в Яндексе, зато в Google попадается регулярно.
Вид в поиске Google:


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


Часто задаваемые вопросы
Часто задаваемые вопросы — это блок расширенного сниппета в Google, содержащий спойлеры с популярными вопросами и ответами на них. Из-за того что вебмастеры слишком сильно спамили в этом блоке символами emoji, Google стал вырезать символы в случае если они не отображаются на странице.
Вид в поиске до вмешательства Google:

Вид в поиске после вмешательства Google:


События
События — это ещё один блок расширенного сниппета в Google, формирующийся на микроразметке Event и её дочерних схемах (например, SaleEvent). Указав эмоджи в названии каждого события микроразметки мы увидим их в сниппете.
Вид в поиске Google:


Списки параметров
Поисковая система Google также может выводить расширенные сниппеты с параметрами, в которые можно включить эмодзи. По данной теме для участников Rocket Club у нас даже написано отдельное большое руководство и сделан закрытый инструмент, используя которые можно получить такой сниппет:

Проблема поддерживаемости emoji
Стоит понимать, что ваши emoji могут не всегда отображаться так как вам хочется. А иногда вообще могут не отображаться у пользователей.
Некорректное отображение
Вид символа emoji в первую очередь зависит от устройства на котором его просматривают. Чаще всего основные платформы вроде Windows, Android и MacOS/iOS создают схожие изображения для символов эмоджи, но бывают и случаи когда вид его значительно отличается в зависимости от платформы. Как например, в данном случае отличается цвет и форма символов:

Бывает что отображение отличается так сильно, что теряется ощущение, которое передает символ. В следующем примере есть милый фиолетовый пиксельный инопланетянин на MacOS/iOS, который превращается в опасного зубастого зеленого монстра при просмотре в Windows.
Отсутствие поддержки
Если вы не гонитесь за последними айфонами новинками техники, то наверняка встречались с ситуацией, когда вместо символа эмодзи у вас отображался пустой квадрат. Это связано с тем, что на вашем устройстве ещё не поддерживается та версия Unicode, в которую включен этот символ.
Какой сниппет мы хотим получить:

Какой сниппет видят 32% пользователей:

Почему это вообще проблема? Потому в указанном примере рост CTR сниппета будет на 32% меньше, чем мог бы быть при выборе поддерживаемого символа.
Чтобы выяснить какие символы emoji поддерживает большинство популярных операционных систем, я поставил их себе на компьютер и проверил отображение. Получилась большая табличка, часть которой показана на скриншоте.

После чего свел эти данные с популярностью операционных систем в мире и получил поддерживаемость каждой версии Unicode с символами emoji (100% — отображается везде, 0% — не отображается нигде).

Да, всё верно, если в момент публикации этой статьи вы попробуйте открыть набор emoji входящий в Unicode версии 13.0, то увидите что ни один символ не отображается.
Популярные ошибки
Изо дня в день встречаю одни и те же ошибки при использовании emoji у SEO-специалистов и вебмастеров.
Экранирование амперсанда и точка с запятой
Во многих CMS осуществляется автоматическое экранирование вводимых спецсимволов, в частности символа амперсанда «&». То есть вводимый символ & заменяется на & .
Если при это вы используете код символа emoji (например, 🌟 ) и забыли указать точку с запятой в конце, то амперсанд в начале при экранировании будет заменён и получится что-то вроде 🌟 , что приведёт к тому что в сниппете появится не нужный нам символ, а его код, как в следующем примере.


После размещения emoji в CMS проверять его в HTML-коде страницы, чтобы избежать такой обидной ошибки.
Введение пользователей в заблуждение
Не стоит пытаться вводить пользователей в заблуждение своими символами emoji. Опытные пользователи это заметят в Яндексе, а Google просто вырежет emoji из сниппета. Например, Джон Мюллер уже признавался что Google вырезают последовательность символов звездочек из сниппета, так как они похожи на рейтинг в сниппете.
Сниппет, вводящий в заблуждение (Яндекс):

Сниппет той же страницы в Google:

В итоге данный сайт имеет CTR у сниппетов в Google значительно ниже того, который мог бы быть.
Агрессивность
Излишняя агрессивность сниппетов — отталкивает, не стоит пытаться на коммерческом сайте сделать что-то вроде такого.

Ведь, согласитесь, такая реклама же у вас не вызывает доверия:

У пользователей поиска тоже не вызывает. А значит не надо так.
Сложность восприятия
Злоупотребляя различными символами эмодзи в сниппетах мы усложняем его восприятие пользователями поиска. Гораздо лучше использовать 1-2 тематических символа в одном цвете, чем нашпиговать сниппет всем подряд.
К слову, это даже не моё мнение, а результаты проведенного мной опроса. Спросив коллег и знакомых, по какому из двух сниппетов они скорее всего бы кликнули (сами сниппеты представлены на скриншотах далее), оказалось что 67% опрошенных больше доверяют сайтам с лаконичными сниппетами.

Кейс по внедрению emoji
Чтобы проверить эффективность использования эмодзи в Google, мной был взят свой статейный сайт с идеями подарков (ru.giftbox.pro). На нём уже больше года ничего не делалось, а потому это лучшая площадка для проведения достоверного эксперимента, на результаты которого не будут влиять другие работы по сайту.

Были проработаны мета-теги Description, куда в качестве разделителей пассажей были включены символы эмодзи (в виде их десятичного кода).

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

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

Сниппет после внедрения:

Согласитесь, сниппет стал более заметным, особенно на фоне скучной серо-синей выдачи Google. Эффект от этого можно заметить в фактических данных, CTR сниппетов сайта вырос в 2 раза, а также значительно выросла средняя позиция сайта. И самое приятно — доход с AdSense вырос на 33%.

Так как выросли позиции и кликабельность сниппетов, то должен был вырасти и поисковый трафик с Google. И он действительно вырос:

Хейтеры скажут, что это фотошоп сезонность, ведь сайт про подарки и время — декабрь. Но, нет, так как Google вырос в том числе и на фоне Яндекса.

Используйте символы эмодзи в своей стратегии продвижения сайта и делайте это максимально эффективно!
Добавить эмоджи с помощью Unicode
Эмоджи (смайлики) — это пиктограммы лиц, объектов, символов для общения в интернете, в том числе в email. Несмотря на то, что эмоджи выглядят как картинка, технически — это код, который в браузерах и других приложениях автоматически превращается в изображение. Каждому эмоджи присвоен свой уникальный набор символов в формате Unicode.
В Unisender эмоджи можно добавить в тему и в текст письма.

Несколько примеров писем с эмоджи в теме
Где взять эмоджи
- Unicode.org — полный список эмоджи с официального сайта Unicode. В таблице показано, как эмоджи выглядят на разных платформах.
- Unicode-table.com — ещё один список эмоджи с разделением по категориям. Есть поиск на русском языке, просмотр внешнего вида на разных платформах, HTML-код для копирования.
- Блочный конструктор Unisender. Смайлики доступны на панели редактирования текста.
Как добавить эмоджи в тему письма
Создайте рассылку, следуя инструкции из урока №5 .
На втором шаге создания рассылки, поставьте курсор в то место, куда нужно добавить переменную, и нажмите на смайлик в поле «Тема письма».
Откроется выпадающее окно со списком эмоджи, которые разделены по категориям.

Кликните на нужный эмоджи, и он добавится в тему письма.

Как добавить эмоджи в текст письма
В конструкторе
Создайте письмо в конструкторе , следуя инструкции из урока №5 .
Перейдите к редактированию текстового блока . Поставьте курсор в то место, куда нужно добавить эмоджи, после чего нажмите на смайлик на панели инструментов .

Выберите эмоджи, которое хотите добавить в письмо.


В HTML-редакторе
Создайте письмо в HTML-редакторе, следуя инструкции .
Чтобы перейти к коду, нажмите «Источник» на панели инструментов сверху.

Нажмите Ctrl+F и в поле для поиска введите текст, с помощью которого вам будет проще найти часть кода, куда нужно добавить эмоджи.

Поставьте курсор в то место, куда надо вставить эмоджи.

Скопируйте HTML-код нужного эмоджи из любого сервиса с наборами эмоджи.

Вставьте HTML-код эмоджи в редактор. Затем нажмите на кнопку «Источник», чтобы вернуться к визуальному отображению письма.

Так выглядит добавленный эмоджи в письме:

Отображение эмоджи на разных устройствах
У разных получателей эмоджи могут отображаться по-разному. Это зависит от устройства, версии операционной системы, почтового клиента. Например, Windows не отображает эмоджи с флагами стран, а внешний вид некоторых эмоджи в iOS отличается от вида в Android. Учитывайте этот факт при использовании эмоджи в теме или текста письма. Особенно, если текст связан с цветом или формой эмоджи.
Для примера добавим в тему письма 10 эмоджи и протестируем его на разных платформах.
Перед отправкой рассылки получателям рекомендуем отправить пробное письмо себе на почту и открыть его в разных устройствах, чтобы проверить отображение.
