Сейчас: 18:56:55   25-го апреля 2024 г.
UsefulScript.ruСкриптыРазныеCSS спойлер для сайта
13
45

Код CSS спойлера для сайта

Данный код спойлера является обновлением кода из темы Спойлер для сайта на CSS.


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


Для тестирования работы предлагаемых нами спойлеров на CSS, обратите внимание на пару спойлеров, находящихся ниже:


Показать

Первый пример, в заголовке которого могут быть как слова "Открыть/Закрыть", так и слова "Показать/Скрыть".

Скрыть
Открыть

Второй пример, в заголовке которого могут быть как слова "Открыть/Закрыть", так и слова "Показать/Скрыть".

Закрыть






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

HTML код:
<style type="text/css">
 .
spoiler_desc {
    
background#333333;
    
padding0 5px;
    
border-radius0 0 5px 5px;
 }
 .
spoiler_desc>{
    
cursortext;
    
color#FFFFFF;
    
margin4px;
 }
 .
spoiler_close {
    
displaynone;
    
positionabsolute;
 }
 .
spoiler_open {
    
displayblock;
    
margin5px 0 0 15px;
    
outlinenone;
    
floatleft;
    
positionrelative;
    
overflowhidden;
 }
 .
spoiler_close, .spoiler_open {
    
height23px;
    
width240px;
    
top0;
    
left0;
    
background#FFFF66;
    
border-radius5px 5px 0 0;
    
text-indent10px;
    
cursor: default;
    
border-bottom1px dotted #000000;
 
}
 .
spoiler_close:hover, .spoiler_open:hover background#F5FF27; }
 
.spoiler_open:focus {
    
overflowvisible;
    
background#333333;
    
padding0;
    
border-radius7px 7px 5px 5px;
    
border-bottomnone;
 }
 .
spoiler_open:focus .spoiler_close displayblock; }
 .
spoiler_open:focus:before displaynone; }
</
style>

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

HTML код:
<div class="spoiler_open" tabindex="1">Показать
 
<div class="spoiler_desc">
  <
p>Первый примерв заголовке которого могут быть
  как слова 
"Открыть/Закрыть"так и слова "Показать/Скрыть".</p>
 </
div>
 <
span tabindex="0" class="spoiler_close">Скрыть</span>
</
div>

<
div class="spoiler_open" tabindex="2">Открыть
 
<div class="spoiler_desc">
  <
p>Второй примерв заголовке которого могут быть
  как слова 
"Открыть/Закрыть"так и слова "Показать/Скрыть".</p>
 </
div>
 <
span tabindex="0" class="spoiler_close">Закрыть</span>
</
div>

В результате у Вас должны получиться вполне неплохие спойлеры созданные на CSS без использования JavaScript кода.


В случае если Вам все же хочется сделать плавное открытие и закрытие тела спойлера при помощи CSS, то добавьте внутрь стиля .spoiler_open строчку: transition: height 0.4s ease;, а строчку overflow: visible; замените на height: 105px;. Но, стоит учитывать что в таком случае размер всех раскрытых спойлеров будет одинаков. Именно поэтому мы и отказались от плавного разворачивания и сворачивания спойлера на CSS.

Дата создания: 16:40:36 08.06.2014 г.
Посещений: 8978 раз(а).

Комментарии посетителей (14 шт.):
7Lexus
3
# 1748
(19:09:44  07.07.2014 г.)

Я ещё с самого начала хотел спросить насчет разных заголовков.
Очень приятно видеть, что у вас получилось это сделать.
Ответить

Владимир
0
# 1912
(10:58:17  26.09.2014 г.)

У меня почему-то не раскрывается спойлер, отображается только показать - скрыть на желтом фоне, а предыдущий пример с одинаковыми заголовками норм работал.
Ответить

Administrator
1
# 1913
(11:44:45  26.09.2014 г.)

Попробуйте сделать спойлер на пустой страничке, а уже потом встраивайте на сайт. У нас же на этой страничке работает.
Ответить

Max
0
# 1981
(19:36:17  21.10.2014 г.)

У меня какой-то глюк с этим спойлером. Если внизу есть место для текста, как у вас в примере, то все ок. Но у меня ниже идет таблица уже с другими данными. Если нажать правый спойлер, то все ок, она уезжает вниз, а если левый, то она смещается вправо. Как сделать, чтобы и при нажатии на левый спойлер она смещалась вниз?
Ответить

Administrator
0
# 1983
(22:28:17  21.10.2014 г.)

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

Max
0
# 1986
(23:28:03  22.10.2014 г.)

Виноват, просто тестировал оба кода, новый и старый, а написал комментарий под этим. Убрал один спойлер, теперь ничего вправо не уезжает. Но, хотелось бы все-таки использовать этот код (обновленный), а не старый, из-за того, что тут размер регулируется под содержимое. Правда новый идет поверх текста, а не смещает его вниз, как старый спойлер. Нельзя этот как-то изменить, чтобы спойлер смещал содержимое вниз, как это делал старый код спойлера.
Ответить

Administrator
-1
# 1992
(20:03:00  25.10.2014 г.)

Просто добавьте в стиль .spoiler_open:focus строчку height: auto;
В старом коде таким же образом можно сделать размер спойлера по содержимому.
Ответить

Ivan
0
# 2175
(12:42:11  10.01.2015 г.)

Доброго времени!
Большое спасибо за исходники - спойлер действительно симпатичный!
Один только вопрос: хочу добавить под спойлер область Input текста - влазит всё хорошо, но: разворачиваю спойлер и нажимаю на Input область, как он сразу же закрывается; что-то поковырял css, не помогло :(
Не подскажите, какой код может помочь в решении?
Заранее большое спасибо!
Ответить

Administrator
0
# 2176
(14:01:19  10.01.2015 г.)

Боюсь, что тут не все так просто, и без JavaScript не обойтись.
Ответить

Евгений
-2
# 2302
(16:05:59  05.03.2015 г.)

Прекрасный спойлер! Долго искал! И вот нашел! Огромное спасибо!
Но, аналогичная проблема, что и у "Ivan", кликая на ссылку в спойлере, он закрывается. Не имею никакого представления как бы сделать что бы заработало.
Ответить

Борис
1
# 2823
(00:34:02  23.11.2015 г.)

Я в программировании 0, никак не могу понять, как спойлера переместить в левую часть экрана. Какие значения необходимо поменять?
Ответить

Дмитрий
1
# 3043
(14:01:13  13.02.2016 г.)

У меня при открытии второго спойлера, закрывается первый - как победить?
Ответить

Vasya
0
# 3306
(22:11:57  04.07.2016 г.)

Почему в спойлере не работают все ссылки? Работают только верхние ссылки. Как можно исправить это?
Ответить

Олег
0
# 5052
(13:37:51  25.03.2024 г.)

Поставил под спойлер чекбоксы и строки для ввода данных. При нажатии на них спойлер сворачивается. Появилось какое то решение? Так как jQuery использовать не могу. Все крутится на МК только HTML и скрипы.
Ответить

Закрыть
Ваше имя:
301 + 9 =
Добавить комментарий:
Ваше имя:
301 + 9 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 9

Мешает ли Вам реклама?