Сейчас: 03:42:29   20-го апреля 2024 г.
61
262

Создание вкладок при помощи HTML и CSS

В данной теме мы рассмотрим простой скрипт создания вкладок при помощи HTML и CSS.


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


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


Наш скрипт является легким и быстрым т.к. не использует JavaScript код или какие-либо плагины и библиотеки.


Ниже Вы можете наблюдать пример создаваемых данным скриптом вкладок:


Произвольное содержимое...

Произвольное содержимое...

Произвольное содержимое...

Вторая вкладка

Размеры содержимого вкладок

могут отличаться по высоте!

Лого

Как видно из примера, содержимое каждой вкладки может быть различным по высоте, чего частенько не встретишь в других подобных скриптах (у них все вкладки одинаковые по высоте). Количество вкладок и их оформление также можно легко изменить.


При создании вкладок HTML разметка вкладок выглядит следующим образом:

HTML код:
<div class="tabs">
    <
input type="radio" name="inset" value="" id="tab_1" checked>
    <
label for="tab_1">Вкладка № 1</label>

    <
input type="radio" name="inset" value="" id="tab_2">
    <
label for="tab_2">Вкладка № 2</label>

    <
input type="radio" name="inset" value="" id="tab_3">
    <
label for="tab_3">Вкладка № 3</label>

    <
input type="radio" name="inset" value="" id="tab_4">
    <
label for="tab_4">Вкладка № 4</label>

    <
div id="txt_1">
        <
p>Произвольное содержимое...</p>
        <
p>Произвольное содержимое...</p>
        <
p>Произвольное содержимое...</p>
    </
div>
    <
div id="txt_2">
        <
p>Вторая вкладка</p>
    </
div>
    <
div id="txt_3">
        <
p>Размеры содержимого вкладок</p>
        <
p>могут отличаться по высоте!</p>
    </
div>
    <
div id="txt_4">
        <
img src="image/logo.png" width="533" height="77" alt="Лого">
    </
div>
</
div>

Для того чтобы вкладки функционировали и были похожи на те, что приведены в примере выше, в шапке сайта между тегами <head> и </head> добавьте следующие стили оформления:

HTML код:
<style type="text/css">
.
tabs width100%; padding0pxmargin0 auto; }
.
tabs>input displaynone; }
.
tabs>div {
    
displaynone;
    
padding12px;
    
border1px solid #C0C0C0;
    
background#FFFFFF;
}
.
tabs>label {
    
displayinline-block;
    
padding7px;
    
margin-5px -1px 0;
    
text-aligncenter;
    
color#666666;
    
border1px solid #C0C0C0;
    
background#E0E0E0;
    
cursorpointer;
}
.
tabs>input:checked label {
    
color#000000;
    
border1px solid #C0C0C0;
    
border-bottom1px solid #FFFFFF;
    
background#FFFFFF;
}
#tab_1:checked ~ #txt_1,
#tab_2:checked ~ #txt_2,
#tab_3:checked ~ #txt_3,
#tab_4:checked ~ #txt_4 { display: block; }
</style>

В результате использования вот такого нехитрого кода можно значительно сэкономить место на страничках сайта и систематизировать размещение контента.

Дата создания: 17:14:04 04.12.2016 г.
Посещений: 57950 раз(а).

Комментарии посетителей (44 шт.):
Владимир
22
# 4058
(18:10:03  29.08.2017 г.)

Спасибо за такой пример. Шикарный код! По-другому и не скажешь. Главное, что он БЕЗ всяких скриптов, и очень лёгкий.
А я-то раньше думал, что подобное только с помощью jQuery UI можно сделать, а там кода всякого "выше крыши". Оказывается - нет! Можно, и как Вы показали.
Спасибо за науку!
С уважением, Коротеев Владимир.
Ответить

Разработчик-любитеь
9
# 4115
(14:07:32  28.10.2017 г.)

Коротко, толково и по делу!
Уважение таким профессионалам, как этот автор.
Ответить

Gop
5
# 4196
(01:16:35  16.12.2017 г.)

Еще бы на телефонах работал. Проверил. Не на всех робит. Да и выбор ограниченный.
Ответить

Никита
3
# 4220
(22:28:30  09.01.2018 г.)

Подскажите, какой код нужно написать, чтобы "внутренность" вкладки выводилась не внизу заголовка, а в другой части сайта?
Ответить

Никита
3
# 4391
(23:38:44  27.12.2018 г.)

Скажите, как разместить табы по центру?
Ответить

Administrator
1
# 4392
(17:15:49  30.12.2018 г.)

В класс tabs добавьте text-align: center;, а в класс .tabs>div добавьте text-align: left;
Ответить

Александр
2
# 4393
(18:25:12  30.12.2018 г.)

Подскажите, как можно модифицировать css, для случая если количество закладок заранее неизвестно, т.е. чтобы не писать в css для каждой закладки
#tab_1:checked ~ #txt_1 и т.д. - как-то более универсально описать эти div?
Ответить

Деним
1
# 4399
(15:18:46  08.01.2019 г.)

"Как видно из примера, содержимое каждой вкладки может быть различным по высоте". Привет, а как сделать, чтобы размер был фиксированным?
Ответить

Administrator
0
# 4400
(19:10:41  08.01.2019 г.)

Например, так: .tabs>div { height: 200px; }
Ответить

Анна
0
# 4457
(14:25:08  17.04.2019 г.)

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

Денис
0
# 4467
(22:19:27  06.05.2019 г.)

Здравствуйте!
Спасибо большое за материал.
Подскажите, пожалуйста, можно ли на css сделать автоматический перенос не помещающихся в одну строку вкладок на вторую строку при уменьшении ширины браузера.
Ответить

Никита
1
# 4486
(17:41:39  30.06.2019 г.)

Супер! А как сделать так, чтобы первая вкладка была по умолчанию скрытой, а открывалась только при нажатии?
Ответить

Administrator
-1
# 4487
(22:28:27  30.06.2019 г.)

Удалите checked из input первой вкладки. Если нужно чтобы была первоначально открыта другая вкладка, то пропишите checked в input нужной вкладки.
Ответить

Алекс
0
# 4903
(12:28:43  30.03.2022 г.)

А также закрывалась при повторном нажатии?
Ответить

Владимир
2
# 4492
(16:40:31  18.07.2019 г.)

Здравствуйте, а как сделать так, чтобы верхняя панель вкладок была зафиксирована при прокрутке контента?
Ответить

Кристина
0
# 4504
(11:44:11  14.08.2019 г.)

Скажите, пожалуйста, как можно растянуть вкладки на всю ширину таблицы?
Ответить

Дмитрий
-2
# 4509
(18:10:59  14.09.2019 г.)

Все круто! Спасибо большое!
Подскажите, как изменить размер шрифта в тексте и в названии вкладки, и желательно конечно же шрифт тоже изменить?
Ответить

Александр
1
# 4564
(09:46:26  28.11.2019 г.)

Здравствуйте, подскажите, как отцентрировать вкладки?
Ответить

Administrator
0
# 4566
(19:54:34  28.11.2019 г.)

Об этом уже писал в сообщении # 4392:
В класс tabs добавьте text-align: center;, а в класс .tabs>div добавьте text-align: left;
Ответить

илья
0
# 4581
(20:55:21  22.12.2019 г.)

Как добавить ещё кладку? У меня не получается. Повторяю код и нечего. Я проверил его раз пять. Вкладка 5, а в ней пусто, хотя и писал там текст.
Ответить

Administrator
1
# 4585
(00:01:11  24.12.2019 г.)

По аналогии с предыдущими вкладками:
<input type="radio" name="inset" value="" id="tab_5">
<label for="tab_5">Вкладка №5</label>

<div id="txt_5">5555555555</div>

И не забываем о CSS: #tab_5:checked ~ #txt_5 { display: block; }
Ответить

Евгений
2
# 4610
(15:17:49  03.02.2020 г.)

А как сделать вкладки внизу?
Ответить

Александр
0
# 4631
(15:44:43  14.04.2020 г.)

Скажите, пожалуйста, как сделать, чтоб при нажатии вкладки открывалась др. страница?
Ответить

Administrator
0
# 4632
(21:19:32  14.04.2020 г.)

А зачем тогда вообще делать вкладки, если их содержимое все равно никто не увидит. Почему не обойтись обычными оформленными ссылками.
Ответить

Александр
0
# 4633
(17:39:36  15.04.2020 г.)

Чтоб сделать вкладки под разные нужды.
Ответить

Александр
0
# 4640
(14:30:43  29.04.2020 г.)

Можно ли сделать, чтобы содержимое вкладок обновлялось?
Ответить

Давид
0
# 4663
(04:35:31  06.06.2020 г.)

Ох ребята спасибо большое! Какие вы молодцы!!! И вы лучшие!
Ответить

Олег
0
# 4664
(09:34:25  08.06.2020 г.)

Почему, когда я размещаю кнопку на второй вкладке:
<div id="txt_2">
<h3>Формат</h3>
<input type="submit" name="baddFormat" id="id_addFormat" value="Add"/>
<p>Добавить новый формат.</p>
</div>,
поле нажатия на нее, переходит на первую вкладку? Как это победить?
Ответить

Ирина
0
# 4671
(12:08:44  29.06.2020 г.)

Такой же вопрос.
Скажите пожалуйста, как сделать так, чтобы при обновлении страницы оставаться на открытой вкладке?
Ответить

Давид
0
# 4685
(15:42:00  21.07.2020 г.)

Почему не работает?
Ответить

Administrator
1
# 4687
(19:40:44  21.07.2020 г.)

На данной страничке пример работы скрипта тоже не работает?
Ответить

Рома
0
# 4745
(04:42:39  17.10.2020 г.)

Почему, например, оставив открытой вкладку № 4 из пяти вкладок и перезагрузив страницу открывается страница с уже открытой вкладкой № 4, а не с первой, у которой стоит checked.
Ответить

Екатерина
0
# 4757
(16:18:24  01.12.2020 г.)

А как быть, если хочется внутри одной страницы добавить несколько таких полей со вкладками и чтобы при этом во всех полях первые вкладки были открытыми по умолчанию?
Ответить

Кристиан
0
# 4771
(19:53:19  22.12.2020 г.)

Екатерина, по-моему надо просто прописать checked к id и тогда автоматически будет стоять открытой нужная вам вкладка. Вот вам код:

<div class="tabs">
<input type="radio" name="inset" value="" id="tab_1" >
<label for="tab_1">Вкладка №1</label>

<input type="radio" name="inset" value="" id="tab_2" checked>
<label for="tab_2" >Вкладка №2</label>

<input type="radio" name="inset" value="" id="tab_3">
<label for="tab_3">Вкладка №3</label>

(в этом случае 2 вкладка будет открыта первой при загрузке страницы! Удачи.
Ответить

Кристиан
0
# 4769
(19:46:16  22.12.2020 г.)

Отличное решение, ни с какими стилями на сайте не конфликтует. Работает на раз два! Советую стили вообще удалить визуальные и тогда прям вообще шикарно смотрится.
Ответить

Dmitry
0
# 4778
(21:26:15  03.01.2021 г.)

Привет, подскажите как свернуть обратно вкладку по клику?
Ответить

Лариса
0
# 4820
(04:49:56  13.04.2021 г.)

Почему, когда добавила в файл style.css не работает?
Ответить

Дмитрий
0
# 4835
(02:25:07  11.06.2021 г.)

Доброе время суток подскажите как сделать чтобы вкладки были с левой стороны в колонку, а правее в центре открывалось содержимое вкладок.
Ответить

владимир
0
# 4843
(14:01:06  12.07.2021 г.)

Как сделать вкладки сбоку?
Ответить

Flexo
0
# 4923
(15:36:13  20.05.2022 г.)

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

Альбина
0
# 4946
(03:41:02  26.11.2022 г.)

Спасибо за код!
Подскажите пожалуйста, как сделать, чтобы вкладки были разных цветов?
Ответить

Роман
0
# 4947
(09:04:43  09.12.2022 г.)

Всем привет. Подскажите как вставить вкладки. Коды все вставляю, а не работает. У меня все показывает. Вкладки не открываются. На сайте отображается списком все.
Ответить

Aleksander
0
# 4978
(23:20:08  25.04.2023 г.)

Все кратко и ясно. Благодарочка.
Ответить

Валерий
0
# 5005
(08:29:45  09.10.2023 г.)

Здравствуйте! Как добавить на одной станице еще один блок с табами.
Ответить

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

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

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

Какой браузер Вы используете?