Выдвижная боковая панель на css
- Информация о материале
- Категория: Админ
- Просмотров: 554
Пример создания выдвижной боковой панели средствами CSS
Пример:
Данное решение сделано с использованием флажка checkbox
и не требует скриптов. Использовать такую панель можно как угодно, например, для создания меню, формы обратной связи, регистрации/авторизации или любой другой информации
В данном коде обязательным условием является, чтобы боковая панель
<div class="side-panel">...</div>
следовала сразу за флажком checkbox
Т.к. панель имеет фиксированное позиционирование, ее можно разместить в любом месте страницы. Основываясь на этом, можно сделать кнопку, которая будет менять свой стиль и текст: side-button-1 (для нее, тоже важна последовательность html тегов.
Если изменять переключатель не нужно, как у кнопки side-button-2, то ее можно ставить где угодно, как угодно и сколько угодно раз. Например:
<label class="my-button-1" for="side-checkbox">Моя кнопка 1</label> <label class="my-button-2" for="side-checkbox">Моя кнопка 2</label>
HTML:
<div class="container"> <div class="row"> <div class="col"> <input type="checkbox" id="side-checkbox" /> <div class="side-panel"> <label class="side-button-2" for="side-checkbox">+</label> <div class="side-title">Выдвижная панель:</div> <p>Информация в панеле</p> </div> <div class="side-button-1-wr"> <label class="side-button-1" for="side-checkbox"> <div class="side-b side-open">Открыть</div> <div class="side-b side-close">Закрыть</div> </label> </div> </div> </div> </div>
CSS:
/* Оформление панели */ #side-checkbox { display: none; } .side-panel { position: fixed; z-index: 999999; top: 0; left: -360px; background: #337AB7; transition: all 0.5s; width: 320px; height: 100vh; box-shadow: 10px 0 20px rgba(0,0,0,0.4); color: #FFF; padding: 40px 20px; } .side-title { font-size: 20px; padding-bottom: 10px; margin-bottom: 20px; border-bottom: 2px solid #BFE2FF; } /* Оформление кнопки на странице */ .side-button-1-wr { text-align: center; /* Контейнер для кнопки, чтобы было удобнее ее разместить */ } .side-button-1 .side-b { margin: 10px; text-decoration: none; position: relative; font-size: 20px; line-height: 20px; padding: 12px 30px; color: #FFF; font-weight: bold; text-transform: uppercase; background: #337AB7; cursor: pointer; border: 2px solid #BFE2FF; } .side-button-1 .side-b:hover, .side-button-1 .side-b:active, .side-button-1 .side-b:focus { color: #FFF; } .side-button-1 .side-b:after, .side-button-1 .side-b:before { position: absolute; height: 4px; left: 50%; bottom: -6px; content: ""; transition: all 280ms ease-in-out; width: 0; } .side-button-1 .side-open:after, .side-button-1 .side-open:before { background: green; } .side-button-1 .side-close:after, .side-button-1 .side-close:before { background: red; } .side-button-1 .side-b:before { top: -6px; } .side-button-1 .side-b:hover:after, .side-button-1 .side-b:hover:before { width: 100%; left: 0; } /* Переключатели кнопки 1 */ .side-button-1 .side-close { display: none; } #side-checkbox:checked + .side-panel + .side-button-1-wr .side-button-1 .side-open { display: none; } #side-checkbox:checked + .side-panel + .side-button-1-wr .side-button-1 .side-close { display: block; } #side-checkbox:checked + .side-panel { left: 0; } /* Оформление кнопки на панеле */ .side-button-2 { font-size: 30px; border-radius: 20px; position: absolute; z-index: 1; top: 8px; right: 8px; cursor: pointer; transform: rotate(45deg); color: #BFE2FF; transition: all 280ms ease-in-out; } .side-button-2:hover { transform: rotate(45deg) scale(1.1); color: #FFF; }