- Как сделать содержание (оглавление, меню) для статьи на сайте?
- Преимущества краткого содержания в статье
- Как сделать содержание статьи в блоге: код оглавления
- Как сделать красивое содержание статьи: прописываем стили
- Как сделать содержание (оглавление) в статье сайта/блога | HTML5
- Как сделать нумерованное содержание в статье сайта
- Многоуровневый нумерованный список HTML
- Четверостишия
- Бычок
- Зайка
- Мишка
- Стихи
- Подсвечивание разделов, к которым был сделан переход на CSS
- Бычок
- Зайка
- Мишка
- Фиксированное сверху меню и отступ от края окна браузера
- Фиксированное меню, в т.ч. для сайтов с параллакс эффектом, с подсветкой текущего пункта
- Бычок
- Зайка
- Мишка
- Меню с плавной прокруткой страницы
- Для пользователей Blogger
- 24 комментария:
- Ссылки внутри страницы
- Псевдокласс :target
Как сделать содержание (оглавление, меню) для статьи на сайте?
Краткое содержание (оглавление) в статье с кликабельными ссылками-якорями – очень полезная плюшка, как для читателей, так и для владельца блога.
Такое меню в статьях вы, наверное, уже неоднократно встречали у меня на SEO Блоге Лентяйки и на других сайтах. Сложно ли сделать такую фишку? Очень просто!
Преимущества краткого содержания в статье
Содержание статьи решает сразу несколько задач.
- Читатель с первого взгляда может понять, о чем статья, и решит ли она его проблему.
- Читателю удобно перемещаться по смысловым блокам текста.
- Внимание посетителя может зацепить какой-нибудь пункт меню в оглавлении, и он задержится на странице.
- В содержании статьи можно использовать ключевые фразы, под которыми продвигается статья. Нередко фрагмент краткого содержания попадает в сниппет поисковой выдачи. И смотрится он там очень эффектно!
Как сделать содержание статьи в блоге: код оглавления
Все очень просто. У меня на рабочем столе компьютера хранится текстовый файл с кодами, которыми я часто пользуюсь.
Там хранится код для вывода содержания статьи. Вот он.
Я его просто вставляю в начале статьи в редакторе WordPress в режиме HTML. При переключении между визуальным редактором и HTML редактором он никуда не пропадает.
Вместо «пункт меню 1» и «пункт меню 2» я просто пишу подзаголовки статьи. Если нужно, то удаляю лишние пункты оглавления или добавляю новые.
Потом рядом с подзаголовками я ставлю якоря, чтобы при клике на ссылку читатель переместился к нужному подзаголовку.
Код якоря рядом с подзаголовком такой:
Просто вставляю этот код якоря перед той строчкой, к которой хочу перенести читателя моего повествования.
Из чего состоит этот код содержания статьи? Он представляет собой HTML запись, служащую для вывода списка с цифрами.
Стандартный нумерованный список выводят так:
- список с цифрами
- пункт 1
- пункт 2
- пункт 3
- пункт 4
- пункт 5
Для списка оглавления задан конкретный стиль с помощью идентификатора:
Это значит, что в файл style.css нужно добавить конкретное правило отображения блока с оглавлением статьи. Тогда у сдержания статьи появится приятный фон и любые финтифлюшки, какие вы захотите. Чуть ниже, я объясню, как это сделать.
В каждом конкретном пункте меню содержится ссылка на ярлык:
Каждой ссылке на ярлык соответствует конкретный ярлык в тексте:
В режиме HTML редактора вы вставляете код для вывода содержания статьи, а потом по тексту в этом же режиме разбрасываете ярлыки.
Вроде все просто объяснила. Если есть вопросы – задавайте в комментариях.
Если все понятно, то нам осталось только настроить стиль содержания статьи.
Как сделать красивое содержание статьи: прописываем стили
Открываете в админке WordPress «Внешний вид» – «Редактор».
Там, где описываются стили нумерованных и маркированных списков, вставляете код, описывающий правила стиля оглавления статьи.
У меня на блоге такие правила:
ol#sod < padding: 0px 20px 10px 51px; margin: 0.5em 0 0em 1em; color: #2E2E2E; list-style-type: none; background: #CCFFFF; border-left: #66FFCC 4px solid; display: inline-block; >ol#sod li<> ol#sod li:before
Для вашего дизайна вы можете прописать другие правила: изменить цвет, отступы, шрифты, – все, что захотите.
Если вам нужно подобрать код нужного вам цвета, то можете посмотреть мою «Таблицу безопасных HTML цветов». Безопасными цвета называются потому, что они одинаково хорошо, без искажений, отображаются во всех браузерах пользователей.
Если вы совсем ничего не понимаете в style.css, то просто вставьте код стиля меню статьи в конец файла. Он все равно будет работать.
В общем, вы сохранили файл style.css, отредактировали статью и обновили страницу на сайте. Получилось у вас красивое содержание статьи? Расскажите мне в комментариях! Мне будет приятно, что я кому-то помогла сделать краткое оглавление статьи в блоге.
Ну, а если вам понравилось наводить красоту у себя на сайте, то вы еще можете поколдовать с дизайном:
Запись опубликована автором Вероника в рубрике Создание сайта с метками дизайн. Добавьте в закладки постоянную ссылку.
Для отправки комментария вам необходимо авторизоваться.
Как сделать содержание (оглавление) в статье сайта/блога | HTML5
Код блока с содержанием, где href у ссылок точно такой же как id заголовков, за исключением символа #:
Как сделать нумерованное содержание в статье сайта
Всё тоже самое, только ul нужно заменить на ol
Многоуровневый нумерованный список HTML
Здесь уже нужна помощь CSS
Логика призывает к такому построению тегов в статье
Четверостишия
Бычок
Идет бычок, качается, Вздыхает на ходу: - Ох, доска кончается, Сейчас я упаду!Зайка
Зайку бросила хозяйка - Под дождем остался зайка. Со скамейки слезть не мог, Весь до ниточки промок.Мишка
Уронили мишку на пол, Оторвали мишке лапу. Все равно его не брошу - Потому что он хороший.Стихи
Подсвечивание разделов, к которым был сделан переход на CSS
При переходе к четверостишию «Зайка» страница не перематывается к началу стиха (см. тут). Чтобы более явно обозначить секцию, можно использовать псевдокласс :target .
Бычок
Идет бычок, качается, Вздыхает на ходу: - Ох, доска кончается, Сейчас я упаду!
Зайка
Зайку бросила хозяйка - Под дождем остался зайка. Со скамейки слезть не мог, Весь до ниточки промок.
Мишка
Уронили мишку на пол, Оторвали мишке лапу. Все равно его не брошу - Потому что он хороший.
Фиксированное сверху меню и отступ от края окна браузера
Хэш-ссылка отматывает страницу к верхнему краю тега соответствующего id. Отчего получается, что фиксированное сверху меню закрывает часть элемента, в моём случае заголовок. Вот так.
Чтобы страница прокручивалась несколько выше элемента, нужно прописать тегу псевдоэлемент :before
Фиксированное меню, в т.ч. для сайтов с параллакс эффектом, с подсветкой текущего пункта
Когда верхняя часть окна браузера проходит раздел веб-страницы, нужно выделить тот пункт меню, допустим поменять цвет его фона, нажав на который пользователь будет перемещён к началу этого раздела. Лучше посмотрите пример . Для разнообразия на этот раз пункты меню отмечены зелёными точками и прикреплены к правой части страницы.
Бычок
Идет бычок, качается, Вздыхает на ходу: - Ох, доска кончается, Сейчас я упаду!
Зайка
Зайку бросила хозяйка - Под дождем остался зайка. Со скамейки слезть не мог, Весь до ниточки промок.
Мишка
Уронили мишку на пол, Оторвали мишке лапу. Все равно его не брошу - Потому что он хороший.
Меню с плавной прокруткой страницы
var linkNav = document.querySelectorAll('[href^="#nav"]'), V = 2; // скорость, может иметь дробное значение через точку for (var i = 0; i < linkNav.length; i++) < linkNav[i].onclick = function()< var w = window.pageYOffset, hash = this.href.replace(/[^#]*(.*)/, '$1'); t = document.querySelector(hash).getBoundingClientRect().top, start = null; requestAnimationFrame(step); function step(time) < if (start === null) start = time; var progress = time - start, r = (t < 0 ? Math.max(w - progress/V, w + t) : Math.min(w + progress/V, w + t)); window.scrollTo(0,r); if (r != w + t) else > return false; > >
Для пользователей Blogger
Если использовать вкладку «Создать» при редактировании Сообщения, Blogger относительные ссылки вида
Чтобы избежать проблем, следует использовать абсолютные ссылки вида (текущая страница + хэш)
24 комментария:
Александр Нужная информация. Попробую использовать NMitra Хорошо, разовью тему в следующем посте. Анонимный Наталья, спасибо.
Скажите, пожалуйста, вы знаете как сделать так, чтобы страница не быстро перескакивала к целевому заголовку, а плавно (эластично) прокручивалась? (Я имею ввиду последний пример поста) NMitra Я поняла что вы имеете ввиду. Тоже об этом думала. Если у вас подключен JQuery, то http://stackoverflow.com/questions/7717527/jquery-smooth-scrolling-when-clicking-an-anchor-link
Если нужен только JavaScript, то отпишитесь, но код там получается не маленьким. Анонимный Наталья, спасибо за отклик.
Чтобы работал JQuery, надо подключать его библиотеки.
А код в этих библиотеках тоже не маленький.
С другой стороны, может не стоит изобретать велосипед. Но я читал, что jQuery не такой скоростной.
Может, самописный код будет шустрее. NMitra Я считаю, что подключать jQuery стоит если нужно несколько функций из библиотеки. Ради одной вешать весь арсенал не стоит. Я подумаю над скриптом. NMitra Сделала, есть замечания http://shpargalkablog.ru/2014/03/table-of-contents-html5.html#scroll ? NMitra А то уже и код, и результат примелькался, могла что-то упустить. Vegan Boom Сделала нумерованное оглавление внутри статьи блога http://veganboom.blogspot.com/2013/11/vegan-questions.html, но нумерация почему-то не отражается в оглавлении поста, хотя при редактировании сообщения вижу, что номера проставлены.
И второе. Поскольку у меня меню сверху закрывает начало заголовка закладки, то решила добавить css стиль, как вы советуете здесь http://shpargalkablog.ru/2010/09/postroenie-ssylok-v-html.html#zdes. Выставила там height: 3em; margin-top: -3em;
Почти нормально, но всё-таки как-то по-разному везде отступы отображаются (где-то есть пространство над заголовком, где-то заголовок чуть ли не обрезан). Подскажите, пожалуйста, что надо подправить, чтобы ссылка на закладку вела точно к началу соответствующего названия и чтобы моё главное меню не перекрывало это название. NMitra У вас в шаблоне прописано
ol, ul list-style: outside none none;
>
Сделайте приблизительно так
.toc ol list-style: decimal;
>
Пощелкала, проблем не увидела, вот только из-за скрипта у вас при переходе по хэш ссылке страница перезагружается. Надежда Хачатурова Очень помог Ваш материал. Не мудрствуя, сделала, чтобы было удобно на длинной странице переходить к нужному месту. Спасибо большое! NMitra Хочу материал дополнить парой ссылок, но как правило самое простое — самое востребованное. К тому же и Гугл, и Яндекс стараются учитывать такие меню в сниппетах. Анонимный Ссылки не открываются. Печалька((. Прошу посмотрите как сделано здесь http://html5.by/blog/scroll-effects/ . Особенно интересно эффект 8. Staging (Сцена). Если можно ознакомьте. Спасибо
NMitra Какие именно ссылки не открываются?
Спасибо, прочитала. Анонимный Сейчас ссылки все работают. Почему-то раньше на работали и выдавали ошибку. Тимур тим Не хватает кнопки чтоб вернутьс яна верх NMitra
http://shpargalkablog.ru/2011/05/kak-sdelat-ssylku-k-nachalu-stranitsy.html Alex ZaJW Здравствуйте! Полезная информация. Но Вы показали здесь не все пункты.
Содержание:
steer»>Бычок
bunny»>Зайка
bear»>Мишка
Подскажите, пожалуйста, а как выделять (id) 4, 5. и до 10 пункта содержание? NMitra Здравствуйте, по аналогии: присваиваете id (не должен повторяться на странице) заголовкам, а потом ссылки на них ставите с #id
Наверно лучше всего вам посмотреть исходный код страницы: в адресную строку браузера введите
Ссылки внутри страницы
Ссылки допустимо указывать не только на другой сайт или документ, но и на элемент внутри страницы. Такая возможность применяется для добавления оглавления страницы с быстрым переходом к нужному разделу (так делает, например, Википедия) или для создания различных элементов интерфейса вроде вкладок.
Элемент, на который требуется сделать ссылку, обозначается идентификатором, а адрес ссылки меняет свой вид на #id, как показано в примере 1.
Пример 1. Ссылка на заголовок
Результат данного примера показан на рис. 1. К каждому заголовку добавлен уникальный идентификатор через атрибут id , а сама ссылка имеет вид #id, где id — идентификатор элемента на который делается переход.
Рис. 1. Ссылки на заголовки
Как видите, по своему виду такие ссылки ничем не отличаются от ссылок на другой сайт. Но стоит открыть любую ссылку в примере, как браузер переместит фокус к заголовку, на который ведёт ссылка. При этом немного поменяется и адресная строка, в конец пути будет добавлено #t1 или подобное. Если нажать кнопку «Назад» в браузере, то мы вернёмся обратно к началу страницы и адресная строка примет исходный вид. Это позволяет передавать ссылки вида webref.ru/layout/#title, при открытии такой ссылки в браузере будет загружена страница и сделан переход к элементу с идентификатором title.
Псевдокласс :target
CSS позволяет управлять видом элемента, на который был сделан переход, с помощью псевдокласса :target , как показано в примере 2.
Пример 2. Использование :target
Теперь, если переходить по ссылкам оглавления, то заголовки будут менять свой цвет и фон (рис. 2).
Рис. 2. Стиль заголовка при переходе