Оформление информационных блоков и цитат на сайте

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

Информация для справки
Полезная информация
Предупреждение
Ошибка, критическое замечание
Цитата

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

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

Перейдём непосредственно к реализации. Будьте внимательны при выполнении инструкций.

Стилизация и добавление кнопок в HTML-редактор WordPress

Первым делом добавим в HTML-редактор WordPress кнопки для быстрой вставки элементов, для этого в файл functions.php нужно добавить код:

add_action('admin_footer', 'eg_quicktags');
function eg_quicktags() {
 ?>
 <script>
 jQuery(document).ready(function(){
 if(typeof(QTags) !== 'undefined') {
	QTags.addButton( 'Info', 'Info', '<div class="info">', '</div>');
	QTags.addButton( 'Success', 'Success', '<div class="success">', '</div>');
	QTags.addButton( 'Warning', 'Warning', '<div class="warning">', '</div>');
	QTags.addButton( 'Error', 'Error', '<div class="error">', '</div>');
 }
 });
 </script>
 <?php
}

Сохраните файл и перейдите в редактор записи или страницы, на панели инструментов должны появиться новые кнопки: Info, Success, Warning, Error. Вы можете заменить названия кнопок и классы элементов на своё усмотрение. Кнопка для вставки цитаты b-quote присутствует по-умолчанию. Скриншот из моего редактора:

Кнопки HTML-редактора

Переходим к следующему шагу и добавим в таблицу стилей style.css свойства для селекторов. С помощью позиционирования, отступов и высоты строки центрируем иконки по вертикали, они размещены в псевдоэлементе :before и выводятся перед текстом. Стили для цветных блоков:

.info,
.success,
.warning,
.error {
	position: relative;
	padding: 20px 10px 20px 70px;
}
.info:before,
.success:before,
.warning:before,
.error:before {
	position: absolute;
	top: 50%;
	width: 70px;
	margin-left: -70px;
	line-height: 0!important;
	font-family: FontAwesome;
	font-size: 40px;
	text-align: center;
}
.info {color: #084298; background: #bde5f8;}
.info:before {content: "\f129";}
.success {color: #0f5132; background: #dff2bf;}
.success:before {content: "\f00c";}
.warning {color: #5f5000; background: #feefb3;}
.warning:before {content: "\f12a";}
.error {color: #842029;	background: #ffccba;}
.error:before {content: "\f00d";}

Стили для блока цитат:

blockquote {
	position: relative;
	margin: 0;
	padding: 5px 10px 5px 70px;
	color: #222;
	background: #eff1f5;
}
blockquote:before {
	position: absolute;
	top: 50%;
	width: 70px;
	margin-left: -70px;
	line-height: 0!important;
	content: "\f10e";
	font-family: FontAwesome;
	font-size: 40px;
	color: #333;
	text-align: center;
}

Значения свойства content соответствуют hex-коду выбранных иконок Font Awesome. На этом урок закончен, можете использовать красивые блоки для оформления своих статей.

Добавление кнопок форматирования в визуальный редактор

Скажу откровенно, что я не использую визуальный редактор и даже отключил его в настройках пользователя. Причина простая — при переключении из одного режима в другой порой пропадает синтаксическая подсветка кода, которую использую в статьях с примерами кода.

По просьбе одного из читателей обновляю статью и добавляю инструкцию по добавлению кнопок в визуальный редактор WordPress. Для этого в тот же файл functions.php вставляем:

function info_buttons($buttons) {
	array_unshift($buttons, 'styleselect');
	return $buttons;
}
add_filter('mce_buttons_2', 'info_buttons');
 
function my_mce_before_init_insert_formats( $init_array ) {
	$style_formats = array(
		array(
			'title' => 'Info',
			'block' => 'div',
			'classes' => 'info',
			'wrapper' => false,
		),
		array(
			'title' => 'Success',
			'block' => 'div',
			'classes' => 'success',
			'wrapper' => false,
		),
		array(
			'title' => 'Warning',
			'block' => 'div',
			'classes' => 'warning',
			'wrapper' => false,
		),
		array(
			'title' => 'Error',
			'block' => 'div',
			'classes' => 'error',
			'wrapper' => false,
		)
	);
	$init_array['style_formats'] = json_encode( $style_formats );
	return $init_array;
}
add_filter( 'tiny_mce_before_init', 'my_mce_before_init_insert_formats' );

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

Визуально

Выносить демонстрацию на отдельную страницу я не стал, т.к. выше разместил пример. Оставляйте отзывы, вопросы и пожелания в комментариях!

Добавление блоков в блочный редактор Гутенберг

Перешли на WordPress 5.0 и используете новый блочный редактор? Предлагаю установить мой плагин Simple Note, размещённый в каталоге. Загрузить плагин можно на официальной странице:

Поставьте плагину высокую оценку, если он вам понравился 😳

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(11 голосов, в среднем: 5 из 5)
  1. Юлия

    Попробовала установить у себя коды таких блоков внимания. Кнопки в режиме HTML появились, а стили чего-то не работают. Не подскажете, в чем может быть проблема?

    Ответить

  2. Webliberty

    Юлия, насколько я вижу, у вас на сайте не подключен шрифт Font Awesome, поэтому иконки не видны. И после всех изменений не забывайте чистить кэш браузера.

    Ответить

  3. Юлия

    А что нужно со шрифтом сделать? Можете подсказать как подключить? Или может у Вас есть материал на эту тему, чтобы я могла разобраться?

    Ответить

  4. Webliberty

    Юлия, внимательно изучите статью, ссылка на инструкцию по установке шрифта в ней есть.

    Ответить

  5. Сергей Саранчин

    Приветствую!
    Тоже давно сделал у себя вывод блоков цитат в своих статьях на блоге. Хорошая штука, улучшает восприятие текста 😉

    Ответить

  6. Виталий

    Вообще-то есть специальный плагин вывода таких инфоблоков. Не стоит копаться в коде

    Ответить

  7. Webliberty

    Виталий, конечно есть! Давайте расскажу о преимуществах кода)

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

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

    Ответить

  8. Айк

    Спасибо огромное Денис!

    Давно искал, а самое главное для меня то что без плагина, так как любой плагин создает нагрузку, чем меньше их количество тем лучше для вашего блога или сайта. Плагин кончено быстрое решение, но не всегда, если можно обойтись кодом с исчерпывающим описанием как например здесь, то спешите делать БЕЗ ПЛАГИНОВ!

    Да и вообще сайт крутой — ничего лишнего 😮

    Ответить

  9. Юлия

    Подскажите, пожалуйста, почему у меня корректно не отображаются блоки выделения. Текст получается в блоке, а картинка (в данном случае восклицательный знак) убежала в район заголовка статьи. Ссылку прописала в графе «сайт».

    Ответить

  10. Айк

    Юлия, привет!

    Я бы посоветовал вам обратится в кворк и за 500 рублей решить вопрос быстро. Сэкономите кучу времени и нервов, просто покажите данную статью и опытный программист все сделает за вас быстро и качественно 😮

    Ответить

  11. Webliberty

    Юлия, для начала попробуйте сделать все по инструкции и удалить дублирование стилей в style.css — сейчас я вижу они вставлены два раза подряд. Затем очистите кэш плагина Hyper Cache.

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

    Добавлю: где вы увидели, чтобы строки в CSS комментировались символами // ?
    Если хотите правильно закомментировать, то используйте такую конструкцию:

    /* стили для блоков внимания */

    Скорее всего дело именно в этом!

    Ответить

  12. Юлия

    Webliberty, продела все манипуляции заново по шагам. Все равно картинка убежала к заголовку статьи. Может попробовать поиграться с изменением значений отступов?

    Ответить

  13. Webliberty

    Юлия, нужно очистить кэш, я вижу что на вашем сайте всё работает!

    Ответить

  14. Юлия

    Webliberty, да! Все заработало! Извините за такие глупые вопросы — с кодами всегда плохо дружу. Спасибо за новые знания и уделенное внимание 😉

    Ответить

  15. Иван

    Спасибо! Все работает. А как можно сделать, чтобы кнопки блоков были в визуальном редакторе и при выделении текста и нажатии на кнопку блока сразу оборачивались в нужные теги?

    Ответить

  16. Webliberty

    Иван, специально по вашей просьбе обновил статью и добавил инструкцию по размещению кнопки форматирования в визуальном редакторе. Попробуйте)

    Ответить

  17. Иван

    Webliberty, работает))) Спасибо большое!

    Ответить

  18. 1informer.com

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

    Я чувствую, что у этой статьи будет еще продолжение, так как в рунете видел и покруче оформление, но почти никто так подробно не описывает инструкцию как Денис.

    • я бы хотел видеть видеоинструкцию
    • сделайте пожалуйста другие виды оформления

    Приятно читать ваш блог, видно что человек старается 🙂

    Ответить

  19. Артём

    Денис, здравствуйте. Заметил такую мелочь — при ширине меньше 950 пикселей оформление цитат пропадает. Просто уменьшить окно браузера — и оформления уже нет. А если раскрыть окно браузера на весь экран — тогда все нормально. То есть, на смартфонах и планшетах (с маленькими экранами) эти цитаты почему-то не работают. Как это можно исправить?

    Ответить

  20. Webliberty

    Артём, проверьте в своем файле style.css секцию медиа-запросов @media, возможно для ширины экрана менее 950px установлены иные стили оформления для цитат.

    Ответить

  21. Seosko

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

    Ответить

  22. Виктория

    Красивое оформление статей — однозначно повышает читабельность текста, и визуально приятнее смотреть.

    Ответить

  23. Дмитрий

    Отличная статья, все по полочкам — попробую к реализации на своем сайте.
    Через редактор и управлять потом проще, и код чище без плагинов.
    Автору спасибо!

    Ответить

  24. Наталья

    Спасибо, очень полезно 🙂 Использую такие блоки уже давно. Но у меня только три вида — зеленый, желтый и розовый. Пожалуй, сделаю как у вас еще голубой и цитату. Мой блог на Джумле. Насколько я знаю, таких расширений, чтобы автоматом вставлять такие блоки, на Джумле нет. Я использую просто тег <blockquote></blockquote> и при верстке просто меняю класс, а стили каждого вида блоков прописаны в css-файле.

    У меня тоже были иконки в левой части каждого вида блоков, но я их удалила из-за отображения в мобильной версии. В мобильной версии с левой стороны блока остается пустое поле из-за иконки, которое съедает много места. Если в блоке достаточно много текста, то это может быть существенно, блок сильно вытягивается вертикально. Хотя с иконками лучше конечно, но надо сделать так, чтобы они обтекались текстом. А как это прописать в стилях, я не знаю 🙁

    Ответить

  25. Webliberty

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

    @media only screen and (max-width: 1000px) {
    	.wp-block-simple-note-success {
    		color: #4f8a10;
     		background: #dff2bf no-repeat 15px center;
    		padding: 20px 10px 20px 20px;
    	}
    }

    Ответить

  26. Dmitry Pavlenko

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

    Например, если текст в выделенном блоке будет более чем из 5-7 строк, то выровненная по центру иконка смотрится не так привлекательно, если бы она выравнивалась по верхнему краю.

    Ответить

  27. Webliberty

    Dmitry Pavlenko, в дополнительные стили своей темы вы можете добавить свойства, изменяющие положение иконки, например:

    .wp-block-simple-note-error {
    	background-position: 15px 10px;
    }

    Здесь я заменил center (вертикальное выравнивание иконки по центру) на 10px (отступ сверху). Попробуйте!

    Ответить

  28. Сергей

    Привет! Установил плагин в один из блогов (для Гутенберга). Так его и не сразу найдёшь через поиск по плагинам в админке. В конце страницы затерялся. Установок маловато, пришлось пост-инструкцию о Simple Note написать. Пусть больше пользователей WP узнают о нём. Хороший плагин, спасибо!

    Ответить

  29. Webliberty

    Сергей, благодарю за отзыв 🙂

    Ответить

  30. Dmitry Pavlenko

    Webliberty, благодарю за ответ.

    Последовал вашему совету — добавил код в дополнительные стили темы. К сожалению, никаких изменений не произошло. Не понятно, почему… Иконка как была выровнена по центру, так и осталась. Дополнительный стиль добавлял через «Внешний вид» — «Настроить» — «Дополнительные стили».

    Параллельно появился еще один вопрос: как можно заменить пиктограмму из 5 предустановленных? В Font Awesome есть пиктограммы, который я хотел бы использовать вместо «плюса», например.

    Еще раз спасибо за очень нужный плагин.

    Ответить

:) ;) :D :( :cry: :| :o :P 8-) :oops: :roll: :idea:

Отправляя комментарий, вы соглашаетесь с политикой конфиденциальности.