Решение только для CSS: скрыть элемент в скрытом элементе overflow, который частично отстает от другого фиксированного элемента

#html #css

#HTML #css

Вопрос:

У меня есть свернутое меню с динамическим количеством элементов (зеленые плитки на изображении)

У меня также есть фиксированный элемент, который должен быть в нижней части меню — всегда.

Это работает нормально, но теперь пункты меню иногда отключаются на полпути в зависимости от размера экрана. Как мне убедиться, что я скрываю элементы, которые вырезаны наполовину?

Я прикрепил изображение, которое это ясно объясняет.

Я знаю, что могу сделать это с помощью JavaScript, но я ищу CSS-решение, если оно существует. Если такого решения не существует, это тоже ответ.введите описание изображения здесь

Комментарии:

1. Вы пробовали работать с медиа-запросами?

2. можете ли вы поделиться своим кодом

Ответ №1:

Мультимедийные запросы позволят вам задать определенный стиль для разных размеров мультимедиа (ширина и высота экрана устройства)

медиа-запросы широко используются в таких фреймворках, как bootstrap и подобных, и считаются CSS-решением.

для получения дополнительной информации: Адаптивный веб-дизайн

таким образом, вы сможете скрыть определенный элемент выбора с помощью простого display: hidden , и это повлияет на элемент только в пределах этого носителя.

например:

 .div {
  height: 80px;
  color: black;
}

@media screen and (max-width: 995px) , screen and (max-height: 700px) {
  .div {
    color: white;
  }
}
@media screen and (max-width: 678px) , screen and (max-height: 300px) {
  .div {
    color: blue;
  }
}
  

это сохранит высоту, но изменит цвет при каждом запросе.

надеюсь, мое объяснение понятно.

вы также можете использовать !важно при каждом изменении, если вы не хотите нарушать порядок загрузки css, т.е color: white !important;

и это переопределит любой цветовой стиль до того, как этот был объявлен.

Комментарии:

1. Я знаком с медиа-запросами, вы правы, возможно, это правильный путь. Если высота зеленых блоков составляет 80 пикселей, должен ли я добавлять правило медиа-запроса для каждого шага 80 пикселей в размере экрана от наименьшего до наибольшего ожидаемого размера экрана в пикселях? Или есть способ создать динамическое правило?

2. нет. вы можете стилизовать его без каких-либо мультимедийных запросов, а затем в запросах реализовать только дополнения к style; значение — если у вас обычная высота div: 80 пикселей, он будет сохранен во всех мультимедийных запросах, если вы специально не измените высоту divs в каждом запросе. но если вы просто играете со hidden и тому подобным, этого должно быть достаточно. своего рода реализация двух классов в одном div. один не стирает другой, если специально не указано

3. я отредактировал свой ответ, чтобы привести небольшой пример после вашего вопроса mate. 🙂

4. Я думаю, что CSS подходит только для этого, и просто для поддержки фиксированного количества диапазонов высоты экрана