Jump to content
  • 0

Псевдокласс :hover и соседние элементы


sazhyk
 Share

Question

Зравствуйте. Есть два куска кода:

первый


<div class="class1">Text1
<div class="class2">Text2</div>
</div>
<style>
.class2 {display:none;}
.class1:hover .class2 {display:block}
</style>

и второй


<div class="1">Text1</div>
<div class="2">Text2</div>
<style>
.class2 {display:none;}
.class1:hover .class2 {display:block}
</style>

Суть такова: при наведении на элемент с классом class1 элемент с классом class2 становится видимым.

Так вот собственно вопрос - почему первый работает, а второй нет? Поиски по сети толком ничего не дают. У меня есть мысль, что :hover применим только по отношению к дочерним элементам. Помогите выйти из тупика. Заранее спасибо.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Сам :hover применим к чему угодно. Но селектор через пробел — это контекстный селектор, означающий (в данном случае) «элемент с классом .class2 внутри элемента .class1, на который навели мышкой». Чтобы выбрать соседний элемент (как во втором примере), нужно использовать соседский селектор.

Link to comment
Share on other sites

  • 0

Если не составит труда, помогите пожалуйста :unsure: , там ситуация немного не совсем такая как я описал сначала.

https://docs.google....dit?usp=sharing

https://docs.google....dit?usp=sharing

но это наверное от незнания

Edited by sazhyk
Link to comment
Share on other sites

  • 0

Так с ходу на чистом CSS, к сожалению, не сделать. Соседские селекторы (что +, что ~) работают для элементов на одном уровне (с общим непосредственным родителем), а тут у .itemn отдельный контейнер. Если сделать .itemn не элементами списка ul.nav_bar, а отдельными дивами на одном уровне с .submenun (а список вообще убрать), можно будет воспользоваться селектором ~ (.item1 ~ .submenu1 и т.д.). Но, имхо, здесь лучше воспользоваться JS. Либо подумать над другой структурой кода, типа такой...

Link to comment
Share on other sites

  • 0

К сожалению структуру кода изменить нельзя. Наверное, как я и предполагал, придется воспользоваться JS. Хотя хотелось сделать всё на чистом css.

Тем не менее, огромное спасибо за беспокойство.

P.S. тему закрывать не буду (хотя вопрос отпал сам собой), но о результатах выхода из ситуации позже отпишу.

Ещё раз, огромное спасибо!11 :mellow:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy