Сделать, чтобы открытый hover блок не закрывался css
"hover блок не закрывался" - как сделать, чтобы открытый hover блок не закрывался css.
Как вы наверное знаете, что если вы открыли блок при помощи hover, то он закроется.
Подробно о незакрывающимся блоке открытом пр помощи hover
- Почему и как блок при "hover" закрывается?
- Горизонтально открытый блок hover не будет закрываться
- Вертикальный пример не закрывающегося блока при ховер при переходе на него.
- Вертикальный пример не закрывающегося блока при ховер при переходе на него(2).
Почему и как блок при "hover" закрывается?
Для того, чтобы посмотреть на тот вариант, при котором открытый блок закрывается при уходе с первого блока - вам потребуется пример!
Для этого нам потребуется 3 div:
<div class="example">
<div class="example_first">Первый блок</div>
<div class="example_second">Второй блок</div>
</div>
И добавим им свойства... единственное , наверное надо уточнить... чтобы они выстроились в линию,для первого div, нам потребуется:
Этот пример... показывает изначальное положение блоков. И доступ в "margin-left: 1px;" - поставлен для наглядности. На самом деле не из-за этого, но зато мы увидим зазор.
<style>
.example_first, .example_second {
width: 115px;
background: #004581;
color: aliceblue;
padding: 10px;
text-align: center;
}
.example_second {margin-left: 1px;}
.example{ display: -webkit-inline-box; }
</style>
Теперь... добавим к выше приведенному примеру немного стилей...
Первому блоку добавим
example_first:hover~.example_second{
display: inline-block;
}
Второму блоку добавим
И посмотрим, что у нас получится...
Пример как открытый блок при пощи hover закрывается.
Для того, чтобы проверить заголовок, наведите мышку на первый блок, при появлении второго блока - попробуйте перевести мышку на второй блок.
Естественно - что у вас ничего не получится, в смысле, что второй блок закроется.
Перейдем к решению!
На самом деле... я, конечно же посмотрел, что пишут в ваших интернетах, про данную проблемку...
Иногда просто слов нет, какие бывают странные решения.
Ну, да ладно странные... если бы они работали.... так они ещё и не работают...
На самом деле если знаешь, то это очень просто!
Горизонтально открытый блок hover не будет закрываться
Как я вам показал, что наш второй блок, открытый при помощи "hover" - закроется в любомир случае, как бы вы не старались!
Решается до банальности просто... практически код не меняется!
Погнали!
Код абсолютно идентичный(кроме названия классов - естественно)... + одно изменение... итак... наши блоки:
<div class="new_ex">
<div class="ex_1">Первый блок</div>
<div class="ex_2">Второй блок</div>
</div>
И стили... как под копирку... единственное отличие... последняя строка, где наш "hover" - его изменим!
Поместим его не на блок с текстом "Первый блок", а на родительский блок с классом "new_ex" + знак "~" поменяем на ">":
Весь css в сборе:
<style>
.ex_1, .ex_2{
width: 115px;
background: #004581;
color: aliceblue;
padding: 10px;
tex_1t-align: center;
}
.ex_2{margin-left: 1px; display: none;}
.new_ex{ display: -webkit-inline-box; }
.new_ex:hover>.ex_2{ display: -webkit-inline-box; }
</style>
Пример блока открытого при hover не закрывается:
В данном примере, опять наведите мышку на первый блок и попробуйте перейти на второй блок открытый при помощи "hover "
Как видим на приведенном примере, что блок открытый при помощи "hover" не закрывается при переходе на него...
Вертикальный пример не закрывающегося блока при ховер при переходе на него.
Второй пример "Вертикальный пример не закрывающегося блока при ховер при переходе на него" будет немного отличаться - общего блока не будет.
Здесь важное условие. чтобы между первой строкой с div не было никаких зазоров и никакие стили на сайте не отодвигали div по вертикали...
<div class="first">Первый блок</div>
<div class="before"><div class="second">Второй блок</div></div>
За отступ между блоками отвечает стиль класса "second" :
Все стили:
<style>
.first, .second{
width: 115px;
background: #004581;
color: aliceblue;
padding: 10px;
text-align: center;
}
.second{
margin-top: 25px; display: none;
}
.before {
position: absolute;
}
.first:hover~.before .second{
display: block;
}
.before:hover>.second {
display: block;
}
</style>
Вывод примера не закрывающегося блока при ховер при переходе на него.
Вертикальный пример не закрывающегося блока при ховер при переходе на него(2).
Тот же вариант, что был выше, но с общим наружным блоком...
Наши div:
<div class="new_bl">
<div class="bl_1">Первый блок</div>
<div class="bl_2">Второй блок</div>
</div>
Стили:
<style>
.bl_1, .bl_2{
width: 115px;
background: #004581;
color: aliceblue;
padding: 10px;
text-align: center;
}
.bl_2{ margin-top: 25px; display: none; }
.new_bl {
display: inline-block;
width: 135px;
position: absolute;
}
.new_bl:hover>.bl_2{ display: block; }
</style>
Пример не закрывающегося блока при ховер при переходе на него.
Ну и выведем выше приведенный код "закрывающегося блока при ховер при переходе на него"
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже: