Вопрос задан
Изменён 5 месяцев назад
Просмотрен 44 раза
Я хочу сделать так, чтобы в определённый момент (когда мы долистаем к footer) боковое навигационное меню (aside) перестало быть со свойством sticky, и чтобы оно не заступало footer. Можно ли это реализовать, и как ?
Вот мой HTML код:
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>тест</title> <link rel="stylesheet" href="style_of_main_page. css" type="text/css"> </head> <body> <div> <div> <header>1</header> <nav>2</nav> <main>3</main> <aside>4</aside> <footer>5</footer> </div> </div> </body> </html>
Вот мой Css Grid код:
.grid-header { grid-area: header; } .grid-navigation { grid-area: nav; } .grid-content { grid-area: content; } .grid-side { grid-area: side; } .grid-footer { grid-area: footer; } .grid__body { display: grid; grid-template: 0px ; grid-template: [start] "header header" 200px [row2] [row2] "nav nav" 150px [row3] [row3] "content side" 800px [row4] [row4] "footer footer" 600px [row-end] / 1fr 150px; } header, nav, main, aside, footer { border-style: dotted; border-width: 0.1px; } header { background-color: violet; } main { background-color: aqua; } aside { position: sticky; top: 150px; background-color: #444; } nav { position: sticky; top: 0; background-color: #777; } footer { background-color: green; }
- html
- css
- html5
- вёрстка
- css-grid
11
Да можно всё.
sticky
зависит от родительского блока. Так как у Вас родительский – это .grid__body
, то и правый блок останавливается в самом низу.Как вы хотите сделать – у Вас sticky
должен быть внутри aside
. Или вариант похуже: main+aside обернут в дополнительный блок.
.grid-header { grid-area: header; } .grid-navigation { grid-area: nav; } .grid-content { grid-area: content; } .grid-side { grid-area: side; } .grid-footer { grid-area: footer; } .grid__body { display: grid; grid-template: 0px; grid-template: [start] "header header" 200px [row2] [row2] "nav nav" 150px [row3] [row3] "content side" 800px [row4] [row4] "footer footer" 600px [row-end] / 1fr 150px; } header, nav, main, aside, footer { border-style: dotted; border-width: 0.1px; } header { background-color: violet; z-index: 10; } main { background-color: aqua; } aside { height: 100%; background-color: #444; } .aside-content { position: sticky; top: 150px; background: pink; height: 150px; /* Как пример, чтобы показать остановку блока */ } nav { position: sticky; top: 0; background-color: #777; z-index: 10; } footer { background-color: green; }
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>тест</title> <link rel="stylesheet" href="style_of_main_page.css" type="text/css"> </head> <body> <div> <div> <header>1</header> <nav>2</nav> <main>3</main> <aside> <div>4</div> </aside> <footer>5</footer> </div> </div> </body> </html>
1
Зарегистрируйтесь или войдите
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Адаптивное боковое меню на чистом CSS
- org/Breadcrumb»>Главная >
- Всё для сайта >
- Меню для сайта
День добрый. В этом посте я выкладывают отличный скрипт бокового адаптивного выдвигающегося меню на голом CSS. Меню анимированное, с плавным раскрытием и в двух вариациях: слева и справа. Отличный вариант для тех, кто хочет сделать мобильное адаптивное меню для своего сайта.
В архиве отдельный файл CSS для правого меню и для левого. Подключить данный скрипт довольно легко. Нужно лишь выполнить несколько шагов:
Скачать zip-архив
Скачать его можно по ссылке внизу «Скачать». Также необходимо разархивировать zip-архив
Закачать css файл
Закачиваем в папку css в корне сайта нужный файл css. Если вам нужно меню слева, то left-nav-style.
Подключить css файл
Незабываем подключить нужный css файл, вставив между <head> и </head>
<link rel="stylesheet" href="css/left-nav-style.css">
если нужно подключить левое боковое меню и
<link rel="stylesheet" href="css/right-nav-style.css">
если правое
Прописать HTML код
Ну и самое главное, в самое начало сайта после открытия тега <body> вставляем следующий HTML код:
<!-- Скрытый checkbox, отвечающий за переключение панели, должен быть в верхней части документа, лучше сразу после тега `<body>` `id` атрибут предназначен для связки с атрибутом `for` тега <label> Атрибут `hidden` указывает состояние «скрытый» у текущего элемента --> <input type="checkbox" hidden> <!-- Выдвижную панель размещаете ниже флажка (checkbox), но не обязательно непосредственно после него, например можно и в конце страницы --> <nav> <!-- Метка с именем `id` чекбокса в `for` атрибуте Символ Unicode 'TRIGRAM FOR HEAVEN' (U+2630) Пустой атрибут `onclick` используем для исправления бага в iOS < 6.0 См: http://timpietrusky.com/advanced-checkbox-hack --> <label for="nav-toggle" onclick></label> <!-- Здесь размещаете любую разметку, если это меню, то скорее всего неупорядоченный список <ul> --> <h3> <a href="https://bayguzin.ru/">Bayguzin.ru</a> </h3> <ul> <li><a href="#1">Один</a> <li><a href="#2">Два</a> <li><a href="#3">Три</a> <li><a href="#4">Четыре</a> <li><a href="#5">Пять</a> <li><a href="#6">Шесть</a> <li><a href="#7">Семь</a> </ul> </nav> <!-- Маска (затемнение) основного контента при включенной панели по-умолчанию данная фишка не используется, если оно вам надо, просто расккоментируйте div-контейнер ниже <div></div> --> <!-- Далее размещаем любую разметку, много слов, картинки и т. д... -->
На размещение меню влияет только css файл, html код абсолютно одинаковый.
Если вы всё сделали правильно, то скрипт заработает. Скачать его вы можете по ссылке внизу абсолютно бесплатно и по прямой ссылке. Для более детального ознакомления с меню можете пройти по ссылке «Демо» и увидеть скрипт в работе. Пока
Если вы не видите кнопку «Скачать»
отключите блокировщик рекламы
Скачать (15.65 Kb) Demo
Отблагодарить
Вконтакте
Twitter
Похожие статьи
Не то, что искали? Воспользуйтесь поиском
Как создать боковое меню навигации
❮ Назад Далее ❯
Узнайте, как создать анимированное закрывающееся боковое меню навигации.
× О Услуги Клиенты Контакт
× О Услуги Клиенты Контакт
× О Услуги Клиенты Контакт
Попробуйте сами »
Шаг 1) Добавьте HTML:
Пример
open
…
Шаг 2) Добавьте CSS:
Пример
/* Боковое меню навигации */
. sidenav {
height: 100%; /*
100 % Полная высота */
width: 0; /* 0 ширина — изменить это
с JavaScript */
позиция: фиксированная; /* Оставайтесь на месте
*/
z-индекс: 1; /* Оставайтесь на вершине */
top: 0; /* Оставайтесь наверху */
left: 0;
фоновый цвет: #111; /* Черный*/
переполнение-x: скрыто; /* Отключить горизонтальную прокрутку */
отступ сверху: 60px; /* Разместите контент на расстоянии 60 пикселей от верхнего края */
transition: 0.5s; /* 0,5-секундный эффект перехода для слайда в боковом меню */
}
/* Ссылки меню навигации */
.sidenav a {
padding: 8px 8px 8px 32px;
текстовое оформление: нет;
размер шрифта: 25 пикселей;
цвет: #818181;
отображение: блок;
переход: 0,3 с;
}
/* Когда вы наводите курсор на навигационные ссылки,
изменить их цвет */
.sidenav a:hover {
цвет: #f1f1f1;
}
/* Расположение и стиль кнопки закрытия (верхняя
правый угол) */
. sidenav .closebtn {
position:
абсолютный;
сверху: 0;
справа: 25 пикселей;
размер шрифта: 36px;
левое поле: 50 пикселей;
}
/* Стиль содержимого страницы — используйте это, если хотите отправить содержимое страницы в
справа при открытии боковой навигации */
#main {
transition: margin-left .5s;
отступ: 20 пикселей;
}
/* На небольших экранах, высота которых меньше
450 пикселей, измените стиль боковой панели (меньше отступов и шрифт меньшего размера).
размер) */
Экран @media и (максимальная высота: 450 пикселей) {
.sidenav
{padding-top: 15px;}
.sidenav a {font-size: 18px;}
}
Шаг 3) Добавьте JavaScript:
Пример ниже скользит в боковой панели навигации и делает ее шириной 250 пикселей:
/* Установлен
ширина боковой навигации до 250px */
функция
openNav() {
document. getElementById(«mySidenav»).style.width
= «250 пикселей»;
}
/*
Установите ширину боковой навигации на 0 */
function closeNav() {
document.getElementById(«mySidenav»).style.width = «0»;
}
Попробуйте сами »
Пример ниже скользит в боковой панели навигации и перемещает содержимое страницы вправо (значение, используемое для установки ширины sidenav, также используется для установки левое поле «содержимого страницы»):
/* Установите ширину боковой навигации на 250 пикселей и левое поле
содержимое страницы до 250 пикселей */функция
openNav () {
document.getElementById(«mySidenav»).style.width
= «250 пикселей»;
document.getElementById(«main»).style.marginLeft
= «250 пикселей»;
}
/* Установите ширину боковой навигации равной 0, а
левое поле содержимого страницы на 0 */
function closeNav() {
document. getElementById(«mySidenav»).style.width = «0»;
document.getElementById(«main»).style.marginLeft = «0»;
}
Попробуйте сами »
Пример ниже также скользит в боковой панели навигации и перемещает страницу содержимое справа, только на этот раз мы добавляем черный цвет фона с 40% непрозрачность элемента body, чтобы «подсветить» боковую навигацию:
/* Установите ширину боковой навигации на 250 пикселей и левое поле
содержимое страницы до 250 пикселей и добавьте черный цвет фона в тело функции */
openNav() {
document.getElementById(«mySidenav»).style.width
= «250 пикселей»;
document.getElementById(«main»).style.marginLeft
= «250 пикселей»;
document.body.style.backgroundColor = «rgba(0,0,0,0.4)»;
}
/* Установите ширину боковой навигации равной 0, а
левое поле содержимого страницы на 0, а цвет фона тела на
белый */
функция closeNav() {
document. getElementById(«mySidenav»).style.width = «0»;
document.getElementById(«main»).style.marginLeft = «0»;
document.body.style.backgroundColor = «белый»;
}
Попробуйте сами »
Пример ниже скользит в боковой навигации слева и закрывает вся страница (100% ширина):
/* Открываем функцию sidenav */
openNav() {
document.getElementById(«mySidenav»).style.width
= «100%»;
}
/* Закрыть/скрыть боковую панель */
function closeNav() {
document.getElementById(«mySidenav»).style.width = «0»;
}
Попробуйте сами »
Пример ниже открывает и закрывает боковое меню навигации без анимации:
/* Открываем функцию sidenav */
openNav() {
document.getElementById(«mySidenav»).style.display
= «заблокировать»;
}
/* Закрыть/скрыть боковую панель */
function closeNav() {
document. getElementById(«mySidenav»).style.display = «нет»;
}
Попробуйте сами »
В следующем примере показано, как создать правостороннее меню навигации:
Правостороннее меню навигации:
.sidenav {
right: 0;
}
Попробуйте сами »
В приведенном ниже примере показано, как создать боковое меню навигации, которое всегда отображается (фиксировано):
Всегда показывать боковую панель:
/* Sidenav */
.sidenav {
height: 100%;
ширина:
200 пикселей;
позиция: фиксированная;
z-индекс: 1;
сверху: 0;
слева: 0;
background-color: #111;
переполнение-x: скрыто;
отступы сверху: 20px;
}
/* Содержимое страницы */
.main {
поле слева: 200px; /* То же, что и ширина sidenav */
}
Попробуйте сами »
Совет: Перейдите к нашему руководству по CSS Navbar, чтобы узнать больше о панелях навигации.
Вы когда-нибудь слышали о W3Schools Spaces ? Здесь вы можете создать свой сайт с нуля или использовать шаблон и разместить его бесплатно.
Начните бесплатно ❯
* кредитная карта не требуется
❮ Предыдущая Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебное пособие по HTMLУчебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3.CSS
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
Лучшие ссылки
HTML ReferenceCSS Reference
JavaScript Reference
SQL Reference
Python Reference
W3.CSS Reference
Bootstrap Reference
PHP Reference
HTML Colors
Java Reference
Angular Reference
jQuery Reference
2 Top3 Examples Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3. CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
FORUM | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.
Copyright 1999-2022 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Боковая панель W3.CSS
❮ Предыдущая Далее ❯
Вертикальные панели навигации W3.CSS
С боковой навигацией у вас есть несколько вариантов:
- Всегда отображать панель навигации слева от содержимого страницы
- Используйте складную «полностью автоматическую» боковую навигацию
- Открыть панель навигации над левой частью содержимого страницы
- Открыть панель навигации по всему содержимому страницы
- Сдвиньте содержимое страницы вправо при открытии панели навигации
- Отображение панели навигации справа, а не слева
Всегда отображать боковую панель
Пример
Попробуйте сами »
Открытие боковой панели навигации по части содержимого
Пример
function w3_open() {
document.getElementById(«mySidebar»).style.display = «block»;
}
function w3_close() {
document.getElementById(«mySidebar»).style.display = «none»;
}
Попробуйте сами »
Открыть боковую панель Навигация по содержимому
Пример
function w3_open() {
document.getElementById(«mySidebar»).style.width
= «100%»;
document.getElementById(«mySidebar»).style.display
= «заблокировать»;
}
function w3_close() {
document.getElementById(«mySidebar»).style.display = «none»;
}
Попробуйте сами »
Складная адаптивная боковая навигация
Пример
Моя страница
Попробуйте сами »
Сдвиньте содержимое страницы вправо
Пример
function w3_open() {
document.getElementById(«main»).style.marginLeft
= «25%»;
document.getElementById(«mySidebar»).style.width
= «25%»;
document.getElementById(«mySidebar»).style.display
= «заблокировать»;
document.getElementById(«openNav»).style.display
= ‘нет’;
}
function w3_close() {
document.getElementById(«main»).style.marginLeft
= «0%»;
document.getElementById(«mySidebar»).style.display
= «нет»;
document.getElementById(«openNav»).style.display
= «встроенный блок»;
}
Попробуйте сами »
Правосторонняя навигация
Пример
. .. содержимое страницы …
Попробуйте сами »
Правосторонняя складная навигация
Пример
<дел
идентификатор = "моя боковая панель">
<кнопка
>Закрыть
×
Ссылка
1
Ссылка 2
Ссылка
3