Как заставить мое приложение vuetify 3 nuxt 3 использовать видимое окно просмотра

Моя проблема заключается в контроле поведения прокрутки приложений Vuetify 3 Nuxt 3. Я хочу добиться следующего:

На самом деле у меня есть следующее:

Я хочу, чтобы приложение заполнило всю область просмотра, мне нужна панель навигации вверху приложения и панель навигации слева. Полосы прокрутки быть не должно, за исключением случаев, когда содержимое основной области превышает высоту области. Прямо сейчас есть 3 полосы прокрутки, хотя весь контент должен поместиться в окне просмотра.

Я пробовал много вещей, например, установил html и тело на width:100vw;height:100vh;, установил высоту и переполнение других вложенных узлов, но до сих пор я не могу заставить html и тело занимать только видимую область просмотра, всегда есть на несколько пикселей больше. внизу, как вы видите на моих скриншотах. Я могу скрыть переполнение, используя overflow: hidden, но тогда я не смогу прокручивать основную область при переполнении позже. Возможно, есть очевидное решение, но я новичок в CSS...

Чего именно вы хотите достичь? Страница занимает всю вертикальную область просмотра? Вы проверяли это в инструментах разработчика браузера?

kissu 10.05.2024 10:54

Можете ли вы привести минимальный воспроизводимый пример, пожалуйста?

kissu 10.05.2024 11:00

Отредактировал пост, надеюсь, теперь понятно. Пожалуйста, свяжитесь со мной, если есть какие-либо открытые вопросы или необходимы дополнительные разъяснения.

kSp 10.05.2024 11:36

Я не смог добавить его, так как добавление nuxt 3 в фрагменте стека здесь немного сложнее. Что касается вашего вопроса, да, я проверил его с помощью инструментов разработчика и многое попробовал.

kSp 10.05.2024 11:43

Я запустил ваш проект git локально на своей стороне. Так в чем же самая большая разница? Потому что я вполне могу сделать то, о чем ты просил. Верхняя панель немного меньше, но в целом я не вижу многого. В противном случае остальная часть выравнивания в основном использует флексбоксы по вертикали и горизонтали, чтобы они располагались посередине.

kissu 10.05.2024 12:00

Я добавил его в коды и коробку, как вы предложили. Основное отличие в том, что сейчас есть 3 полосы прокрутки. Горизонтальная и вертикальная полосы для прокрутки html/body и третья полоса прокрутки на v-main, которая даже не отображается полностью, поскольку находится под панелью навигации. Также нет причин, по которым в данный момент должна быть полоса прокрутки. Я хочу, чтобы текущее приложение помещалось во всю область просмотра без полос прокрутки, вертикальная полоса прокрутки должна появляться только в том случае, если содержимое v-main слишком велико.

kSp 10.05.2024 12:05

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

kSp 10.05.2024 12:07

Дело вовсе не в размерах брусков, первое изображение создается краской. Я просто хотел проиллюстрировать, что прокручивать можно только основной контент и только в том случае, если он слишком высокий. Извините за любые недоразумения, английский не мой родной язык, и, возможно, я плохо его объяснил.

kSp 10.05.2024 12:25
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
8
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не уверен в поведении Vuetify, но удаление этого работает хорошо.

html, body {
  /* height: 100vh; */
  /* width: 100vw; */
  margin: 0;
  padding: 0;
  overflow: auto;
  background-color: rgb(34, 34, 143);
}

* {
  /* border: 1px solid #a45abd; */
}

Использование этих единиц довольно опасно, позвольте странице течь.

Нет, это приводит к тому, что на теле имеется только одна полоса прокрутки, но страница все равно слишком велика для области просмотра, и прокрутка происходит не только на v-main, если содержимое выше, чем v-main.

kSp 10.05.2024 14:19

Вы можете лучше увидеть проблему, добавив: html, body { margin: 0; padding: 0; overflow: auto; background-color: rgb(34, 34, 143); } html { width: 99%; height: 75% !important; } body { width: 100%; height: 100%; } #__nuxt { height: 100%; width: 100%; background-color: #3f3f49; } * { border: 1px solid #a45abd; } как css.

kSp 10.05.2024 14:27

Если вы хотите скрыть полосу прокрутки, вы можете использовать это. Что касается меня, я могу прокручивать только зеленый контейнер. Вам определенно не следует добавлять много вещей в html или body, касающихся размеров, делайте это внутри своих элементов. Я также использую ноутбук с MacOS, поэтому, возможно, я не вижу некоторых полосок, но, честно говоря, я вижу только одну в зеленом контейнере. Я не знаю, что делает v-main, но вы можете не использовать его и не сбрасывать CSS.

kissu 10.05.2024 14:44

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

kSp 10.05.2024 14:52

Есть ли у вас такие же проблемы за пределами Vuetify?

kissu 10.05.2024 15:04

Я переписал свой макет и изменил CSS на ваше решение, и теперь оно работает. Я не могу сказать почему. Мой макет и мой app.vue намного сложнее, чем показано в этом базовом примере. у них есть код только на стороне сервера и код только на стороне клиента, и я думаю, что его реструктуризация в дополнение к вашим изменениям CSS помогла.

kSp 10.05.2024 17:09

@kSp рад, что это помогло! Иногда это может быть беспорядочно, если у вас накопилось много вещей, да. Не стесняйтесь попытаться воспроизвести проблему где-нибудь, чтобы сузить проблему и облегчить ее решение.

kissu 10.05.2024 21:06

Другие вопросы по теме