Как сделать раскрывающийся блок в html
Dobrovoi Master
Раскрывающиеся блоки с скрытым содержанием с помощью CSS3
В процессе создания сайта или блога и дальнейшего его наполнения содержанием, по разным причинам, порой возникает необходимость скрыть какую-то часть текста, разместить более объёмную информацию в спрятанный до поры до времени блок, но при этом всё же указать пользователю на то, что имеется ещё кое что, и предоставить ему возможность просмотреть скрытое содержание без перехода на следующую строку или страницу.
Раньше для реализации такого решения использовалась груда javascript, теперь же всё это можно очень легко исполнить с помощью удивительных свойств CSS3.
Сегодня мы рассмотрим простейший способ создания на страницах сайта и в отдельных сообщениях, скрытых блоков с содержанием, раскрывающихся при нажатии на определенный элемент текста, используя исключительно свойства CSS3. Переключателем может служить и отдельное слово, и выделенное словосочетание, а так же целое предложение, или информативная иконка.
Такие блоки часто используются на страницах с большим количеством содержания, для того чтобы сделать его более структурированным и компактным, все содержание при этом делится на так называемые группы, в которых на обозрение пользователю представлены только заголовки, весь текст по умолчанию скрыт и увидеть его можно нажав на определенный элемент(см. выше).
Давайте, постараемся обойтись без лишней воды, посмотрите весь этот простейший механизм в действии, на наглядном примере, так же можете и подредактировать что-нибудь при желании:
Пример №1
В роли переключателей раскрывающихся блоков с дополнительной информацией используется никак не выделенный и не обозначенный текст, с недвусмысленным предложением нажать на него, что вы без страха и сомнений обязательно сделайте, чтобы увидеть скрытый текст)))
Как видите всё более-чем прекрасно работает, скрытое содержание, как появляется без проблем, так и исчезает от легкого нажатия мышкой, и при этом мы задействовали самый минимум исполняемого кода, и в html-каркасе, и в формировании стилей css. Без подключения дополнительных javascript библиотек, с извечной тревогой, а не отключены ли они на стороне пользователя.
Реализовать всё это действо, стало возможным благодаря CSS3 псевдоклассу :checked, применяемым к элементам интерфейса, таким как переключатели (checkbox). Что мы собственно и сделали, в теге атрибуту type мы присвоили значение checkbox , а так же идентификатор id=”hd-1″ соответствующий уникальному идентификатору for=”hd-1″ переключателя текущего блока. Чекбоксы спрячем основательно и навсегда, прописав в классе .hide свойство display: none;
Собственно здесь, объяснять-то особо и нечего, весь механизм включения и выключения скрытых блоков состоит из трех элементов:
- Флажок (Checkbox) — тег со значением checkbox атрибута type и с определённым связующим идентификатором
- Заголовок (текст переключатель) — тег со значением уникального идентификатора для атрибута for, (идентификатор обязательно должен быть таким же, как идентификатор тега input со значением checkbox атрибута type).
- Блок с содержимым — тег div , в котором и будет содержаться до лучших времен, пока пользователь не кликнет, различный скрытый контент (текст, изображения и т.д. и т.п.)
Надеюсь, из моего сумбурного пояснения, все же стало понятно в чём вся фишка. CSS применяет новые стили (с помощью псевдокласса checked), чтобы показать блок контента, который до этого был скрыт, только тогда, когда пользователь нажимает на элемент, который связан с флажком(checkbox) по уникальному идентификатору.
Из всего этого следует важное замечание:
когда вы используете несколько скрытых блоков на одной странице, каждый переключатель должен иметь уникальный идентификатор, который будет отличаться от идентификаторов в других блоках.
Так, на словах мы разобрали, что куда и зачем, теперь, давайте посмотрим на html-каркас всей коннструкции:
Раскрывающиеся блоки для подсказок или дополнительной информации
Здравствуйте уважаемые начинающие веб мастера.
Очень часто возникает необходимость разместить на странице подсказку или дополнительную информацию к какому либо слову, словосочетанию или абзацу.
Делать это открытым текстом не всегда удобно, так как возможно будет теряться основная нить статьи, поэтому в таком случае лучше будет применить скрытый текст открывающийся по клику мыши.
Объектом для клика может быть выделенная часть текста или кнопка “Справка” размещёная в удобном месте.
Дополнительная информация будет открываться под выделенной частью текста отдельным абзацем, при этом весь остальной контент будет сдвигаться в низ, освобождая место для вкладки.
При повторном клике на выделенный текст или кнопку, вкладка с подсказкой закроется.
1. Выделенная часть текста.
Бла-бла-бла-бла-бла Справка бла-бла-бла-бла-бла
Бла-бла-бла-бла-бла-бла-Бла-бла-бла-бла-бла-бла Бла-бла-бла-бла-бла-бла-Бла-бла-бла-бла-бла-бла Бла-бла-бла-бла-бла-бла-Бла-бла-бла-бла-бла-бла
.story <
display : none ;
>
.reference + label <
font-size : 16px ;
padding : 0 ;
color : green ;
cursor : pointer ;
display : inline-block ;
>
.reference:checked
.story <
display : block ;
background : Snow ;
padding : 10px ;
>
2. Кнопка, которую можно разместить в любой части контента.
Бла-бла-бла-бла-бла Справка бла-бла-бла-бла-бла
Бла-бла-бла-бла-бла-бла-Бла-бла-бла-бла-бла-бла Бла-бла-бла-бла-бла-бла-Бла-бла-бла-бла-бла-бла Бла-бла-бла-бла-бла-бла-Бла-бла-бла-бла-бла-бла
Html тот-же что и в первом примере.
.story <
display : none ;
>
.reference + label <
position : absolute ;
top : 0 ;
left : 200px ;
border : 1px solid #333 ;
border-radius : 4px ;
background : #F0FFF0 ;
padding : 3px ;
color : green ;
font-size : 16px ;
cursor : pointer ;
display : inline-block ;
>
.reference:checked
.story <
display : block ;
background : Snow ;
padding : 10px ;
>
.spravca <
position : relative ;
>
Можно дополнительно оформить раскрывающиеся блоки в css под стиль вашего сайта.
В HTML5 похожая опция заложена по умолчанию.
Реализуется она тегами
1. — контейнер, который можно развернуть и свернуть.
2. — заголовок, по которому можно щёлкнуть, чтоб развернуть контейнер. Повторный щелчёк сворачивает контейнер.
Смотрится и работает эта опция так:
текст текст текст текст
Теги details и summary по умолчанию блочные элементы, поэтому, если нужно вставить контейнер в строку, ему нужно будет задать свойство display: inline-block;
Можно так же задать и другое стилевое оформление.
Раскрывающиеся блок с скрытым текстом CSS
Создавая тему, где иногда нужно скрыть информацию, чтоб по клику она показалась, что здесь отличный метод создан, который работает на CSS. Веб мастер при разработке сайта, и наполнение его контентом для пользователя, старается сделать все аккуратно и понятно. Но иногда, так бывает, что просто информации много, и здесь нужно ее скрыть, где при открытии страницы ее не было видно по умолчанию. Но чтоб была яркая запись или кнопка, которая извещала, что здесь скрыта какая-то информация по теме.
Но, во-первых, изначально место мало занимает, во вторых, как по мне, все это смотрится современно. Но главным плюсом идет, что вы скрыли, также видят поисковые роботы, что попадет или будет учитываться при ранжировании. Ранее такой вид можно было видеть, но он только работал на javascript, но теперь все намного легче.
Так как все можно производить на чистых стилях, где совершенно нет нагрузка на заданный материал. Сами записи можно заменить на кнопки, но и сменить тему, и что по тематике выставить, но главное подать подачу, что здесь есть по принадлежащему материалу. Форма сделана красиво и современно, которая может подойти на темный стиль интернет ресурса, также на светлый, что здесь уже настроен.
1. Здесь видим, что все скрыто, но главная, это надпись оповещение в зеленом оттенке.
2. Вот вся стилистика развернуто, где по всем сторонам красиво смотрится, также добавил обвод на 2 пикселя, и как можно заметить, что уже текст в алой палитре.
Приступаем к установке:
Раскрывающийся блок для HTML
Раскрывающийся блок для CSS
.gamutom-esoutasto + label, .gamutom-esoutasto:checked + label <
border-bottom: 1px dotted #04b904;
padding: 0;
color: #0d920d;
cursor: pointer;
font-size: 15px;
font-weight: bold;
>
.gamutom-esoutasto:checked + label <
color: #f11a0e;
border-bottom: 0;
>
.gamutom-esoutasto:checked + label + div <
display: block;
background: #e8e5e5;
-moz-box-shadow: inset 3px 3px 10px #7d8e8f;
-webkit-box-shadow: inset 5px 5px 12px #929898;
box-shadow: inset 4px 4px 9px #818688;
padding: 8px;
-webkit-animation: fadeIn ease-in 0.7s;
-moz-animation: fadeIn ease-in 0.5s;
animation: fadeIn ease-in 0.7s;
border: 2px solid #cecbcb;
border-radius: 3px;
>
Надеюсь вам понятна основная работа этого элемента, да это тот же спойлер, который идет в другом формате, где при желании его можно изменить. Вероятно будет, это лучше в реальности посмотреть этот весь механизм, как он работает.
Важно: Класс komentas отвечает за ширину открытого окна, оставил его, вдруг пригодится, если установка происходит на отдельной странице.
Источники:
https://dbmast.ru/raskryvayushhiesya-bloki-s-skrytym-soderzhaniem-s-pomoshhyu-css3
https://starper55plys.ru/css/raskryivayushhiesya-bloki-dlya-podskazok/
https://zornet.ru/load/raskryvajushhiesja_blok_s_skrytym_tekstom_css/145-1-0-8949