Красивое оформление содержания статьи на сайте

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

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

Все примеры адаптированы для мобильных устройств.

Перейти на страницу с примерами

Пример 1.

<div class="container">
   <section class="toc-wrapper">
      <h1>Содержание</h1>
      <ol class="toc">
         <li><a href="">Что такое презентация</a></li>
         <li><a href="">Интерактивность в презентации</a></li>
         <li><a href="">Средства создания презентаций</a></li>
         <li><a href="">Виды презентаций</a></li>
         <li><a href="">Способы повышения эффективности восприятия</a></li>
      </ol>
   </section>
</div>
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;700&display=swap');

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: 'Noto Serif', serif;
   line-height: 1;
   color: #231E20;
   background: #F2D8CE;
}

a {
   text-decoration: none;
   color: #231E20;
}

.container {
   padding: 0 20px;
}

h1 {
   margin-bottom: 40px;
}

.toc-wrapper {
   width: 100%;
   max-width: 768px;
   margin: 0 auto 40px;
   padding-left: 40px;
}

.toc {
   list-style: none;
   counter-reset: li;
   background: url(https://html5book.ru/wp-content/uploads/2022/01/isolate.jpg) no-repeat;
   background-size: cover;
   padding: 50px 0;
}

.toc li {
   position: relative;
   padding: 20px 20px 20px 0;
   background: #F2D8CE;
   margin-bottom: 50px;
   line-height: 1.2;
   transition: .3s linear;
}

.toc li:last-child {
   margin-bottom: 0;
}

.toc li:before {
   counter-increment: li;
   content: counters(li, ".") ". ";
   position: absolute;
   width: 40px;
   text-align: center;
   font-weight: 700;
   font-size: 1.2em;
   left: -40px;
   top: 0;
   bottom: 0;
   display: flex;
   align-items: center;
   transition: .3s linear;
}

.toc li:hover:before {
   padding-left: 10px;
}

@media(max-width:767px) {
   h1 {
      margin-bottom: 30px;
   }

   .toc li {
      padding: 15px 20px 15px 0;
      margin-bottom: 40px;
   }
}

Пример 2.

<div class="container">
   <section class="toc-wrapper">
      <div class="logo-wrapper">
         <div class="logo"><span></span></div>
      </div>
      <div class="content-wrapper">
         <h1>Содержание</h1>
         <ol class="toc">
            <li><a href="">Что такое презентация</a></li>
            <li><a href="">Интерактивность в презентации</a></li>
            <li><a href="">Средства создания презентаций</a></li>
            <li><a href="">Виды презентаций</a></li>
            <li><a href="">Способы повышения эффективности восприятия</a></li>
         </ol>
      </div>
   </section>
</div>
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&display=swap');

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: 'Montserrat', sans-serif;
   line-height: 1;
   background: #1C1A30;
}

a {
   text-decoration: none;
   color: #1C1A30;
}

.container {
   padding: 0 20px;
}

h1 {
   margin-bottom: 40px;
   color: #1C1A30;
   text-transform: uppercase;
}

.toc-wrapper {
   width: 100%;
   max-width: 960px;
   margin: 0 auto 40px;
}

.logo {
   width: 200px;
   height: 200px;
   position: relative;
   background:
      linear-gradient(45deg, #F5AF69 50%, #F4EED7 50.9%),
      linear-gradient(90deg, #FC5135 50%, #4E203C 50%),
      linear-gradient(-45deg, #F5AF69 50%, #E8D9A0 50.9%),
      linear-gradient(#FC5135 50%, #4E203C 50%),
      linear-gradient(-45deg, #F5AF69 50%, #E8D9A0 50.9%),
      linear-gradient(90deg, #FC5135 50%, #4E203C 50%),
      linear-gradient(45deg, #FC5135 50%, #F5AF69 50.9%);
   background-size: 50px 50px, 100px 50px, 50px 50px, 200px 100px, 50px 50px, 100px 50px, 50px 50px;
   background-repeat: no-repeat;
   background-position: 0 0, 50px 0px, 150px 0, 0 50px, 0 150px, 50px 150px, 150px 150px;
}

.logo:before {
   content: "";
   position: absolute;
   top: 30px;
   left: 30px;
   width: 140px;
   height: 140px;
   transform: rotate(45deg);
   background: linear-gradient(45deg, #F4EED7 50%, #E8D9A0 50%);
}

.logo:after {
   content: "";
   position: absolute;
   top: 55px;
   left: 55px;
   width: 90px;
   height: 90px;
   transform: rotate(45deg);
   background: linear-gradient(45deg, #FC5135 50%, #4E203C 49.9%),
      linear-gradient(-45deg, #F5AF69 50%, transparent 50%),
      linear-gradient(#FC5135 50%, #FC5135 50%),
      linear-gradient(-45deg, #4E203C 50%, transparent 50%);
   background-size: 45px 45px;
   background-repeat: no-repeat;
   background-position: 0 0, 0 45px, 45px 45px, 45px 0;
   border-radius: 0 50% 50% 50%;
}

.logo span {
   display: block;
   background: #4E203C;
   width: 29px;
   height: 32px;
   position: absolute;
   top: 99.5px;
   left: 130px;
   border-radius: 0 50% 50% 0;
}

.logo span:before {
   content: "";
   width: 10px;
   height: 10px;
   background: #E8D9A0;
   border-radius: 50%;
   position: absolute;
   top: 11px;
   left: 10px;
   z-index: 2;
}

.content-wrapper {
   background: white;
   padding: 40px;
}

.toc {
   list-style: none;
   counter-reset: li;
}

.toc li {
   position: relative;
   padding: 10px 0 0 60px;
   margin-bottom: 50px;
   border-top: 1px solid #4E203C;
   line-height: 1.2;
   transition: .3s linear;
}

.toc li:last-child {
   margin-bottom: 0;
}

.toc li:before {
   counter-increment: li;
   content: "0"counters(li, "");
   font-family: georgia;
   color: #4E203C;
   font-weight: bold;
   font-size: 20px;
   position: absolute;
   left: 5px;
   top: 7px;
   transition: .3s linear;
}

.toc li:after {
   content: "";
   position: absolute;
   top: -2px;
   left: 0;
   width: 40px;
   height: 2px;
   background: #4E203C;
   transition: .3s linear;
}

.toc li:hover {
   border-color: #FC5135;
}

.toc li:hover:before {
   color: #FC5135;
}

.toc li:hover:after {
   background: #FC5135;
}

@media(max-width:767px) {
   .logo-wrapper {
      display: none;
   }
}

@media(min-width:768px) {
   .toc-wrapper {
      display: flex;
   }

   .logo-wrapper {
      width: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
   }

   .content-wrapper {
      width: 50%;
      padding: 60px;
   }
}

Пример 3.

<div class="container">
   <section class="toc-wrapper">
      <h1>Содержание</h1>
      <ol class="toc">
         <li><a href="">Что такое презентация</a></li>
         <li><a href="">Интерактивность в презентации</a></li>
         <li><a href="">Средства создания презентаций</a></li>
         <li><a href="">Виды презентаций</a></li>
         <li><a href="">Способы повышения эффективности восприятия</a></li>
      </ol>
   </section>
</div>
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&display=swap');

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: 'Montserrat', sans-serif;
   line-height: 1;
   color: #231E20;
   background: #F2E5D0;
}

a {
   text-decoration: none;
   color: #231E20;
}

.container {
   padding: 0 20px 0 80px;
}

h1 {
   margin-bottom: 20px;
}

.toc-wrapper {
   width: 100%;
   max-width: 768px;
   position: relative;
   padding: 10px 0 10px 20px;
   margin: 80px auto 40px;
   border-left: 4px solid #D9AA63;
}

.toc-wrapper:before {
   content: "";
   position: absolute;
   top: -60px;
   left: -60px;
   width: 60px;
   height: 60px;
   background: url(toc.svg) 50% 50% no-repeat #D9AA63;
   background-size: 30px;
   border-radius: 10px 10px 0 50%;
}

.toc {
   list-style: none;
   counter-reset: li;
}

.toc li {
   margin-bottom: 20px;
   transition: .3s linear;
}

.toc li:last-child {
   margin-bottom: 0;
}

.toc li:before {
   counter-increment: li;
   content: counters(li, "");
   margin-right: 10px;
   font-weight: 700;
   width: 28px;
   height: 28px;
   text-align: center;
   line-height: 28px;
   display: inline-block;
   border: 1px solid transparent;
   border-radius: 50%;
   transition: .3s linear;
}

.toc li:hover:before {
   border-color: #D9AA63;
   color: #D9AA63;
}

Пример 4.

<div class="container">
   <section class="toc-wrapper">
      <h1>Содержание</h1>
      <ol class="toc">
         <li><a href="">Что такое презентация</a></li>
         <li><a href="">Интерактивность в презентации</a></li>
         <li><a href="">Средства создания презентаций</a></li>
         <li><a href="">Виды презентаций</a></li>
         <li><a href="">Способы повышения эффективности восприятия</a></li>
      </ol>
   </section>
</div>
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&display=swap');

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: 'Montserrat', sans-serif;
   line-height: 1;
   color: #231E20;
   background: #EAE9E4;
}

a {
   text-decoration: none;
   color: #231E20;
}

.container {
   padding: 0 20px;
}

h1 {
   margin-bottom: 20px;
   text-transform: uppercase;
}

.toc-wrapper {
   display: table;
   margin: 0 auto;
}

.toc {
   list-style: none;
   counter-reset: li;
}

.toc li {
   position: relative;
   margin-bottom: 20px;
   padding-left: 50px;
   line-height: 28px;
   transition: .3s linear;
}

.toc li:last-child {
   margin-bottom: 0;
}

.toc li:before {
   counter-increment: li;
   content: counters(li, "");
   position: absolute;
   top: 50%;
   margin-top: -14px;
   left: 0;
   font-size: 14px;
   width: 28px;
   height: 28px;
   text-align: center;
   line-height: 28px;
   color: white;
   border-radius: 50%;
   background: rgb(46, 43, 31);
}

.toc li:nth-child(2):before,
.toc li:nth-child(2):after {
   background: rgba(46, 43, 31, .8);
}

.toc li:nth-child(3):before,
.toc li:nth-child(3):after {
   background: rgba(46, 43, 31, .6);
}

.toc li:nth-child(4):before,
.toc li:nth-child(4):after {
   background: rgba(46, 43, 31, .4);
}

.toc li:nth-child(5):before,
.toc li:nth-child(5):after {
   background: rgba(46, 43, 31, .2);
}

.toc li:after {
   content: "";
   position: absolute;
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: rgb(46, 43, 31);
   top: 50%;
   left: 34px;
   margin-top: -4px;
   opacity: 0;
   transition: .3s linear;
}

.toc li:hover:after {
   opacity: 1;
}

Пример 5.

<div class="container">
   <section class="toc-wrapper">
      <h1>Содержание</h1>
      <ol class="toc">
         <li><a href="">Что такое презентация</a></li>
         <li><a href="">Интерактивность в презентации</a></li>
         <li><a href="">Средства создания презентаций</a></li>
         <li><a href="">Виды презентаций</a></li>
         <li><a href="">Способы повышения эффективности восприятия</a></li>
      </ol>
   </section>
</div>
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&display=swap');

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: 'Montserrat', sans-serif;
   background: #E0E7F3;
   line-height: 1;
   color: #231E20;
}

a {
   text-decoration: none;
   color: #393939;
}

.container {
   padding: 0 20px;
}

h1 {
   font-weight: 600;
   text-transform: uppercase;
}

.toc-wrapper {
   max-width: 768px;
   margin: 0 auto;
}

.toc {
   list-style: none;
   counter-reset: li;
}

.toc li {
   position: relative;
   left: -60px;
   margin-bottom: 30px;
   padding-left: 70px;
   line-height: 1.2;
}

.toc li:last-child {
   margin-bottom: 0;
}

.toc li:before {
   counter-increment: li;
   content: "0"counters(li, "");
   color: white;
   position: absolute;
   left: 0;
   top: 50%;
   transform: translateY(-50%);
   font-size: 20px;
   font-weight: 600;
   width: 60px;
   text-align: center;
}

.toc li:after {
   content: "";
   position: absolute;
   left: 0;
   right: 0;
   bottom: -10px;
   height: 1px;
   background: linear-gradient(to right, white, white 60px, #393939 60px);
}

@media(max-width:599px) {
   .toc-wrapper {
      padding-left: 80px;
      padding-bottom: 30px;
      position: relative;
   }

   .toc-wrapper:before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 80px;
      bottom: 0;
      background: #393939;
   }

   h1 {
      padding-left: 10px;
      padding-top: 10px;
      margin-bottom: 15px;
   }
}

@media(min-width:600px) and (max-width:767px) {
   h1 {
      font-weight: 600;
      padding: 60px 30px;
   }

   .toc {
      padding-top: 170px;
      padding-bottom: 70px;
   }
}

@media(min-width:600px) {
   .toc-wrapper {
      display: flex;
   }

   h1 {
      padding: 100px 60px;
      background: #393939;
      color: white;
   }
}

@media(min-width:768px) {
   .toc {
      padding-top: 200px;
      padding-bottom: 100px;
   }
}

Поделиться: