Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
 Аватар для Код - Альфа
11 / 11 / 6
Регистрация: 27.04.2013
Сообщений: 138

Высота меню как у контента

17.06.2015, 17:12. Показов 5426. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Появилась проблема следующего характера. Есть боковое меню навигации с позицией - fixed , и left:0.
Правее идет контент. При заполнении контента он меняет размеры height. Когда я уменьшаю размеры сайта кнопкой - масштаб, он становится меньше и уходит в левую сторону, так как максимальная длина сайта должна быть не больше 2500px, потому что я не хочу чтобы сайт бесконечно увеличивался по длине, превращаясь в уродство. Проблема в том что меню навигации уходит бесконечно вниз, так как я не могу задать ему максимальный height, учитывая что у контента вообще неизвестно какой будет height.

Можно ли каким то образом сделать чтобы максимальная высота меню навигации была как у контента? Может скрипт какой то есть? Буду рад любой помощи.
Миниатюры
Высота меню как у контента   Высота меню как у контента  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.06.2015, 17:12
Ответы с готовыми решениями:

Высота div'a в зависимости от контента
Есть вот такой элемент который я заполняю динамически. Как сделать так чтобы его высота менялась в зависимости от количества контента? ...

Высота правой панели в зависимости от контента
Здравствуйте, нужно сделать так как написано на схеме, высота контейнера минимальная 500px. максимальная высота зависит от...

Высота div не меняется с добавлением контента
Всем привет! div тела сайта должен меняться. <!DOCTYPE html> <html> <head> <meta charset="utf-8";> ...

10
333 / 309 / 168
Регистрация: 02.06.2014
Сообщений: 1,130
17.06.2015, 17:23
архив бы приложили с версткой)
0
 Аватар для Код - Альфа
11 / 11 / 6
Регистрация: 27.04.2013
Сообщений: 138
17.06.2015, 19:57  [ТС]
Цитата Сообщение от aj17 Посмотреть сообщение
архив бы приложили с версткой)
вот например сделал тут: https://jsfiddle.net/wdfk7pLj/1/

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="left-menu"></div>
 
<div id="content">
 
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum.</p>
 
<p>Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc, quis gravida magna mi a libero. Fusce vulputate eleifend sapien. Vestibulum purus quam, scelerisque ut, mollis sed, nonummy id, metus. Nullam accumsan lorem in dui. Cras ultricies mi eu turpis hendrerit fringilla. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In ac dui quis mi consectetuer lacinia. Nam pretium turpis et arcu. Duis arcu tortor, suscipit eget, imperdiet nec, imperdiet iaculis, ipsum. Sed aliquam ultrices mauris. Integer ante arcu, accumsan a, consectetuer eget, posuere ut, mauris. Praesent adipiscing. Phasellus ullamcorper ipsum rutrum nunc.</p>
 
<p>Nunc nonummy metus. Vestibulum volutpat pretium libero. Cras id dui. Aenean ut eros et nisl sagittis vestibulum. Nullam nulla eros, ultricies sit amet, nonummy id, imperdiet feugiat, pede. Sed lectus. Donec mollis hendrerit risus. Phasellus nec sem in justo pellentesque facilisis. Etiam imperdiet imperdiet orci. Nunc nec neque. Phasellus leo dolor, tempus non, auctor et, hendrerit quis, nisi. Curabitur ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, leo. Maecenas malesuada. Praesent congue erat at massa. Sed cursus turpis vitae tortor. Donec posuere vulputate arcu. Phasellus accumsan cursus velit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed aliquam, nisi quis porttitor congue, elit erat euismod orci, ac placerat dolor lectus quis orci. Phasellus consectetuer vestibulum elit. Aenean tellus metus, bibendum sed, posuere ac, mattis non, nunc. Vestibulum fringilla pede sit amet augue. In turpis. Pellentesque posuere.</p>
 
<p>Praesent turpis. Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc, eu sollicitudin urna dolor sagittis lacus. Donec elit libero, sodales nec, volutpat a, suscipit non, turpis. Nullam sagittis. Suspendisse pulvinar, augue ac venenatis condimentum, sem libero volutpat nibh, nec pellentesque velit pede quis nunc. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Fusce id purus. Ut varius tincidunt libero. Phasellus dolor. Maecenas vestibulum mollis diam. Pellentesque ut neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In dui magna, posuere eget, vestibulum et, tempor auctor, justo. In ac felis quis tortor malesuada pretium. Pellentesque auctor neque nec urna. Proin sapien ipsum, porta a, auctor quis, euismod ut, mi. Aenean viverra rhoncus pede. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Ut non enim eleifend felis pretium feugiat. Vivamus quis mi. Phasellus a est. Phasellus magna. In hac habitasse platea dictumst. Curabitur at lacus ac velit ornare lobortis. Curabitur a felis in nunc fringilla tristique. Morbi mattis ullamcorper velit. Phasellus gravida semper nisi. Nullam vel sem. Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam. Sed hendrerit. Morbi ac felis. Nunc egestas, augue at pellentesque laoreet, felis eros vehicula leo, at malesuada velit leo quis pede. Donec interdum, metus et hendrerit aliquet, dolor diam sagittis ligula, eget egestas libero turpis vel mi. Nunc nulla. Fusce risus nisl, viverra et, tempor et, pretium in, sapien. Donec venenatis vulputate lorem. Morbi nec metus. Phasellus blandit leo ut odio. Maecenas ullamcorper, dui et placerat feugiat, eros pede varius nisi, condimentum viverra felis nunc et lorem. Sed magna</p>
 
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
*{
    margin:0;
    padding:0;
}
body {
    background: #000;
}
#left-menu{
    width:300px;
    height:100%;
    position:fixed;
    background:#ef371f;
    z-index:10;
}
#content{
    position:relative;
    background:#fff;th:50%;
    height:auto;
    margin-left:300px;
    padding-top:200px;
    
}
#content p{
    padding:0 70px 100px 70px;
 
    
}
 Комментарий администратора 
Правила форума пункт 5.19
Запрещено размещать ссылки на коды программ, расположенные на других сайтах. Коды программ должны размещаться на форуме.
Ссылка на песочницу - это бонус.
0
 Аватар для Код - Альфа
11 / 11 / 6
Регистрация: 27.04.2013
Сообщений: 138
17.06.2015, 20:00  [ТС]
а лучше и вправду скачать архив, так как там при масштабировании страницы видно что левый блок навигации всегда на 100%, а контент зависит от наполнения. Вот я и думаю каким образом можно сделать чтобы блок навигации был вместе с контентом одинаковой высоты, но при этом учитывая что он должен занимать всю высоту экрана и быть fixed
Вложения
Тип файла: rar index.rar (2.1 Кб, 5 просмотров)
0
 Аватар для Код - Альфа
11 / 11 / 6
Регистрация: 27.04.2013
Сообщений: 138
17.06.2015, 20:02  [ТС]
Вот она проблема
Миниатюры
Высота меню как у контента  
0
 Аватар для fol
511 / 485 / 161
Регистрация: 08.07.2013
Сообщений: 1,714
Записей в блоге: 1
18.06.2015, 01:29
вот это поместить перед закрывающим тегом </body>:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
    var setHeight = $('#content').height();
    
    $(window).resize(function(){
        var setHeight = $('#content').height();
        $('#left-menu').css('height',setHeight+200);
    });
    
    $('#left-menu').css('height',setHeight+200);
    
});
 
</script>
так работает и при ресайзе окна, и при масштабировании
1
 Аватар для monochromer
419 / 381 / 163
Регистрация: 03.01.2013
Сообщений: 966
18.06.2015, 08:50
Можно так сделать:
HTML5
1
2
3
4
<div class="wrap">
    <div class="menu">menu</div>
    <div class="content"></div>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.wrap {
    margin-left: auto;
    margin-right: auto;    
    max-width: 960px;
    position: relative;
    border: 2px solid;
}
 
.menu {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 240px;
    background: red;
}
 
.content {
    margin-left: 240px;
    padding: 1.5em;
    min-height: 200px;
}
https://jsfiddle.net/30acd4j3/1/
1
 Аватар для Код - Альфа
11 / 11 / 6
Регистрация: 27.04.2013
Сообщений: 138
18.06.2015, 16:10  [ТС]
monochromer,
fol,
попробовал ваши способы, всё работает при условии позиции absolute. Но из за того что меню обязательно должно быть position:fixed, начинаются проблемы у центральной div которая находится в самом блоке left-menu, и стоит 45% по высоте от left-menu.

Добавлено через 9 минут
fol, ваш способ наверное лучший, но из за того что left menu в позиции fixed, весь центральный навигационный блок становится посередине (он по правилам должен быть 45% от всей высоты left-menu). Хотя середина должна быть относительно размеров экрана, а не от размера блока content.
0
 Аватар для fol
511 / 485 / 161
Регистрация: 08.07.2013
Сообщений: 1,714
Записей в блоге: 1
18.06.2015, 16:31
тогда так:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$(document).ready(function(){
    var setHeight = $('#content').height();
    
    $(window).resize(function(){
        var setHeight = $('#content').height();
        $('#left-menu').css('height',setHeight+200);
        var setHeightDiv = $(window).height();
        $('#left-menu div').css('height',setHeightDiv/2);
    });
  
    $('#left-menu div').css('height',setHeightDiv/2);
    $('#left-menu').css('height',setHeight+200);
    
});
внутри левого меню предварительно создал блок:
HTML5
1
<div style="background: blue;height:45%;width:200px;"></div>
в данном случае высота этого блока будет при ресайзе оставаться 45% от высоты окна
1
 Аватар для monochromer
419 / 381 / 163
Регистрация: 03.01.2013
Сообщений: 966
18.06.2015, 20:43
Вариант
HTML
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
<div class="wrap">
    <div class="menu">
        <ul class="menu-content">
            <li>1</li>
            <li>2</li>
        </ul>
    </div>
    <div class="content">
      <p>LOrem200</p>
    </div>
</div>

CSS
Кликните здесь для просмотра всего текста

CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
body {
  margin: 0;
  height: 10000px; /* для примера */
  background: #fff;
}
 
.wrap {
  margin-left: auto;
  margin-right: auto;
  margin-top: 50px;
  max-width: 650px;
  position: relative;
}
 
.menu {
  position: fixed;
  width: 240px;
  max-height: 100%;
  overflow: auto;
  background: red;
}
 
.menu-content {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  height: 45%;
  width: 100%;
  overflow: auto;
  box-sizing: border-box;
  background: rgba(0,0,0,.3);
}
 
.content {
  margin-left: 240px;
  padding: 1.5em;  
  border: 2px solid;
  background: #f4f4f4;
}


JS (без jQuery)
Кликните здесь для просмотра всего текста

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function $(selector) {
    return document.querySelector(selector);
}
 
var menu = $('.menu'),
    wrap = $('.wrap');
 
function setHeight() {
  menu.style.height = wrap.offsetHeight + 'px';
}
 
document.addEventListener('DOMContentLoaded', function () {
    setHeight();
});
 
window.addEventListener('resize', function () {
    setHeight();
});

пример - http://jsbin.com/gudekoliga/edit?html,output

Скрипт всего лишь делает равными высоты контейнера меню и контента. Меню фиксировано относительно окна, при этом переносится вместе с общим контейнером при ресайзе. Отступ сверху задается череp css.
0
 Аватар для Код - Альфа
11 / 11 / 6
Регистрация: 27.04.2013
Сообщений: 138
19.06.2015, 15:49  [ТС]
Не один из вариантов не подошёл, так как всё начинает по страшному глючить. Это видимо из за большого колличесва скриптов и css, которые сдесь в примере я не стал вылаживать. Вообщем попробую разобраться со всем кодом, и потом уже использую ваши варианты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2015, 15:49
Помогаю со студенческими работами здесь

Почему высота родителя меньше высоты контента
4 ряда, в ряде по 4 блока. 1 ряд отображается на странице, остальные 3 скрыты. При клике по кнопке &quot;Показать&quot; отображаются все...

Высота Контента по наивысокой из входящих в него 3х колонок
У меня контент вмещает левую колонку, Средний основной блок и правую колонку. Почему то контент по высоте выстраивается за правой...

Высота контента в аккордионе на всю доступную высоту
Здравствуйте. Делаю самостоятельно аккордион. Использовал JavaScript. Вот задача у меня такая: Большой красный прямоугольник -...

Как реализовать изменение контента находящегося в div 3 (data) по щелчку из меню
Добрый день. Начал изучать HTML5, CSS3. Пишу сайт (чисто в учебных целях). Столкнулся с проблемой. На сайте имеется 3 div. 1 - header...

Высота блока меню
Здравствуйте.Блок menu откуда то взял высоту в 630px,когда я ему в css прописываю 59px. Всё съехалось-разъехалось:cry: &lt;!DOCTYPE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru