Я знаю, это не совсем решение для вашего вопроса, потому что вы спрашиваете
display + opacity
Мой подход решает более общий вопрос, новозможно, это была фоновая проблема, которую нужно решить, используя display
в сочетании с opacity
.
Мое желание состояло в том, чтобы убрать Элемент с пути, когда его не видно.Это решение делает именно это: оно перемещает элемент вне, и это может быть использовано для перехода:
.child {
left: -2000px;
opacity: 0;
visibility: hidden;
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
}
.parent:hover .child {
left: 0;
opacity: 1;
visibility: visible;
transition: left 0s, visibility 0s, opacity 0.8s;
}
Этот код не содержит префиксов браузера или взломов обратной совместимости,Это просто иллюстрирует концепцию, как элемент удаляется, так как он больше не нужен.
Интересной частью являются два разных определения перехода.При наведении указателя мыши на элемент .parent
элемент .child
необходимо немедленно установить на место, а затем изменить непрозрачность:
transition: left 0s, visibility 0s, opacity 0.8s;
При отсутствии наведения или мыши-поинтер был перемещен с элемента, нужно подождать, пока изменение непрозрачности не закончится, прежде чем элемент можно будет убрать с экрана:
transition: left 0s 0.8s, visibility 0s 0.8s, opacity 0.8s;
Перемещение объекта будет реальной альтернативой в случае, когда настройкаdisplay:none
не нарушит компоновку.
Надеюсь, я ударил по гвоздю по этому вопросу, хотя я не ответил на него.