Jump to content
  • 0

CSS, псевдокласс :hover


val005
 Share

Question

Возник вопрос относительно css псевдокласса :hover

нужно, чтобы при наведении мыши на один элемент менялся стиль другого элемента, причём последний не является дочерним и располагается в другом месте html - кода

пример:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
<style>
#a {
color:#0F0;
}
#a:hover {
color: #000;
}
#p {
color: #C00;
display:none;
}
#a:hover #p {
color: #C0F;
display:block;
}
</style>
</head>
<body>
<a href="" id="a">123</a>
<p id="p">456</p>
</body>
</html>

если же поместить тег <p> внутрь <a>, то естественно всё будет работать:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
<style>
#a {
color:#0F0;
}
#a:hover {
color: #000;
}
#p {
color: #C00;
display:none;
}
#a:hover #p {
color: #C0F;
display:block;
}
</style>
</head>
<body>
<a href="" id="a">123
<p id="p">456</p>
</a>
</body>
</html>

Примечание: jav-у юзать нельзя))

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

val005,


#a:hover + #p {
color: #C0F;
display:block;
}

Спасибо за ответ и помощь

но это ведь лишь пример, а на деле требуемые теги вряд ли будут рядом и вот такой код не пройдёт:

<body>
<a href="" id="a">123</a>
<strong>789</strong>
<p id="p">456</p>
</body>

может есть ещё какие-нибудь селекторы или на этом css исчерпывается?

Link to comment
Share on other sites

  • 0

val005,

Ну, если взаимное расположение тегов случайно, то только js. Если же структура постоянна, то можно и дальше "наращивать" селекторы. Но, ИМХО, лучше всё-таки js.

Если по-подробней опишешь задачу, то может можно будет найти другое решение.

Link to comment
Share on other sites

  • 0

val005,


#a:hover + #p {
color: #C0F;
display:block;
}

Спасибо за ответ и помощь

но это ведь лишь пример, а на деле требуемые теги вряд ли будут рядом и вот такой код не пройдёт:

<body>
<a href="" id="a">123</a>
<strong>789</strong>
<p id="p">456</p>
</body>

может есть ещё какие-нибудь селекторы или на этом css исчерпывается?

Ну, если взаимное расположение тегов случайно, то только js. Если же структура постоянна, то можно и дальше "наращивать" селекторы. Но, ИМХО, лучше всё-таки js.

Если по-подробней опишешь задачу, то может можно будет найти другое решение.

Не только...

в CSS3 есть такой селектор "~" называеться "ообобщённых родственных элементов" или както так работет в нормальных браузерах.... выберет все элемены имеющие с текущим общего родителя.....

Пример

div ~ a{
margin:0;
}

Edited by Seva1986
Link to comment
Share on other sites

  • 0

в CSS3 есть такой селектор "~" называеться "ообобщённых родственных элементов" или както так работет в нормальных браузерах.... выберет все элемены имеющие с текущим общего родителя.....

да, действительно. Спасибо огромное))

вот тут подробнее про него есть

кстати он даже в Dreamweaver CS5 не пашет, а в последней опере - работает

получился такой код. правда всё равно далеко не уйдёшь от родителя, но хотя бы подряд не ставить теги)))

всем огромное спасибо, жаль что пока в репу не могу поставить...

Link to comment
Share on other sites

  • 0

в CSS3 есть такой селектор "~" называеться "ообобщённых родственных элементов" или както так работет в нормальных браузерах.... выберет все элемены имеющие с текущим общего родителя.....

да, действительно. Спасибо огромное))

вот тут подробнее про него есть

кстати он даже в Dreamweaver CS5 не пашет, а в последней опере - работает

получился такой код. правда всё равно далеко не уйдёшь от родителя, но хотя бы подряд не ставить теги)))

всем огромное спасибо, жаль что пока в репу не могу поставить...

Да, я там на него и наткнулся кстати пока лучший сайт по вёрстке из тех что я видел..

Link to comment
Share on other sites

  • 0

в CSS3 есть такой селектор "~" называеться "ообобщённых родственных элементов" или както так работет в нормальных браузерах.... выберет все элемены имеющие с текущим общего родителя.....

да, действительно. Спасибо огромное))

вот тут подробнее про него есть

кстати он даже в Dreamweaver CS5 не пашет, а в последней опере - работает

получился такой код. правда всё равно далеко не уйдёшь от родителя, но хотя бы подряд не ставить теги)))

всем огромное спасибо, жаль что пока в репу не могу поставить...

Спасибо большое, сейчас применю

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