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

У меня есть абсолютный div, который расширяется при наведении курсора, меняя его на position: static для отображения полного текста внутри.

Мне интересно, можно ли сделать это сжатие, если пользователь находится за пределами исходных границ, а не в новом увеличенном поле.

.box {
  position:relative;
  overflow:hidden;
}

.box:hover {
  position:static;
}

Это работает, но немного раздражает, поскольку заполняет часть экрана, и пользователь должен переместить мышь за пределы div, чтобы он сжался, я бы хотел, чтобы они переместили мышь за пределы исходного размера div, а не переполнение div, чтобы сжать его обратно.

Какие-нибудь уловки, чтобы сохранить интерактивную область в исходных границах при отображении расширенного div?

Любой шаблон, который вы пробовали, действительно пригодится?

Mahesh 14.06.2018 13:57

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

xmxmxmx 14.06.2018 14:02
Приемы 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 сценарий полностью изменился.
0
2
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я добавил этот стиль (background-color: rgba(0,0,0,0.2);), чтобы показать исходный контейнер, его следует изменить на background-color: transparent; для фактического кода.

body {
  margin: 0;
}

.box2 {
  position: relative;
  overflow: hidden;
  width: 100px;
  height: 100px;
  transition: all 2s;
  background-color: red;
  top: 0;
}

.box {
  position: absolute;
  overflow: hidden;
  width: 100px;
  height: 100px;
  top: 0;
  left: 0;
  transition: all 2s;
  background-color: rgba(0,0,0,0.2);
  z-index: 2;
}

.box:hover+.box2 {
  position: static;
  width: 200px;
  height: 200px;
}
<div class = "">
  <div class = "box">
  </div>
  <div class = "box2">
  </div>
</div>

Вау, это работает, спасибо! Что делает "hover +"? Я не могу указать фиксированную высоту для контейнера, поэтому мне нужно посмотреть, работает ли он в реальной жизни.

xmxmxmx 14.06.2018 14:06

Выбирает ближайшего следующего брата селектора, т.е. ближайшего следующего элемента .box div .box2

Nandita Sharma 14.06.2018 14:07

Спасибо, я попробую.

xmxmxmx 14.06.2018 14:08

Однако имейте в виду, что это сделает любое содержимое .box2, которое покрывается .box, недоступным для взаимодействия с пользователем.

CBroe 14.06.2018 14:09

Div просто содержит статический текст, так что все в порядке, спасибо !!

xmxmxmx 14.06.2018 14:10

Мне нужно поместить абсолютный div внутри контейнера, чтобы заполнить его, поскольку я не могу использовать фиксированные высоты. Поэтому мне нужно уменьшить поля в зависимости от дочернего элемента, поэтому я не могу использовать для этого селектор +.

xmxmxmx 14.06.2018 14:33

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

xmxmxmx 14.06.2018 17:01

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