Я могу добиться этого с помощью setTimeout() в JavaScript, но мне интересно, есть ли чистое решение этой проблемы на CSS (может быть, с помощью перехода-поведения:allow-discrete?)
Вот мое решение на JavaScript:
Код: Выделить всё
document.querySelector("header").addEventListener("click", () => {
document.querySelector("nav").toggleAttribute("opened");
if (document.querySelector("div").hasAttribute("displayed")) {
document.querySelector("div").toggleAttribute("displayed");
} else {
setTimeout(() => document.querySelector("div").toggleAttribute("displayed"), 500);
}
});Код: Выделить всё
nav {
background: grey;
display: flex;
flex-direction: column;
height: 20px;
transition: height 0.5s;
width: 500px;
}
nav[opened] {
height: 200px;
}
header {
background: blue;
height: 20px;
}
div {
background: red;
display: none;
flex: 1;
}
div[displayed] {
display: block;
}Код: Выделить всё
Подробнее здесь: https://stackoverflow.com/questions/798 ... -container
Мобильная версия