Предотвратить отключение Absolute Div от экрана?

Если у меня есть объект HTML с абсолютным позиционированием с

top: 50vh;

но затем сделайте окно браузера действительно тонким, нижняя часть объекта будет выходить за пределы экрана, начиная с нижней части, поскольку объект начинается с центральной линии экрана. Есть ли способ сделать так, чтобы если нижняя часть объекта касалась нижней части экрана, она начинала толкаться вверх, чтобы оставаться на экране?

Пример объекта: https://jsfiddle.net/p0uow75r/

Обновлено: Детали отладки

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

Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Разница между тегами Br и Wbr в HTML 5
Разница между тегами Br и Wbr в HTML 5
В целом, оба тега <br> и <wbr> имеют свои уникальные цели и функциональные возможности, и их использование зависит от конкретных требований к дизайну...
HTML И VS CODE Для Веб-разработки
HTML И VS CODE Для Веб-разработки
Прежде чем начать кодировать html в "VS CODE", мы должны сначала создать папку и назвать ее x.html, здесь я принимаю x как имя файла, который мы...
Как использовать WAI-ARIA
Как использовать WAI-ARIA
В моем текущем новом проекте почти все компоненты не учитывают веб-доступность. Моя нынешняя компания - это стартап, поэтому они не заботились о...
Статическая веб-страница, созданная с помощью CSS и HTML - до и не до.
Статическая веб-страница, созданная с помощью CSS и HTML - до и не до.
Я потратил некоторое время на создание своего сайта-портфолио. Затем, гордясь собой, я разместил свой код на серверах amazon. Мне потребовалось время,...
1
0
5 711
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете использовать функцию min() для условного рендеринга, подобного этому.

Внизу страницы будет top: calc(100vh - 100px)

Если 50vh поместит элемент за пределы экрана, то 100vh - 100px приведет к меньшему значению. Поэтому мы можем использовать min(), чтобы поместить элемент внизу, если он будет за пределами экрана.

.middle-right {
  position: absolute;
  top: min(100vh - 100px, 50vh);
  right: 30px;
  width: 100px;
  height: 100px;
  background-color: green;
}
<div class = "middle-right">

</div>

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

Tim Morris 18.12.2020 19:31

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