2012-07-28 57 views
-3

head沒有背景和黑色,在鼠標懸停其顏色將是白色和黑色的背景,其工作正常,但的onmouseover兒童更改父顏色

onmouse過上content我想改變的head顏色? 怎麼樣? 它可能只使用CSS?

<ul id="meg"> 
    <li><a href="#">head</a> 
    <div> 
    <h2>su head</h2> 
    <p><a href="#">content</a></p> 
    <p><a href="#">content</a></p> 
    </div> 
    </li> 
<li><a href="#">head</a> 
    <div> 
    <h2>su head</h2> 
    <p><a href="#">content</a></p> 
    <p><a href="#">content</a></p> 
    </div> 
    </li> 
</ul> 
+0

使用jQuery這不可能處理在CSS中的子懸停事件的父項。 – SVS 2012-07-28 06:58:04

+0

唯一的選擇是jquery?哎呀! – Prashobh 2012-07-28 07:01:21

回答

1

你可以用JavaScript來做到這一點。雖然我不完全清楚你想要什麼,但我給了它一個鏡頭:

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function stuff(){ 
    var k = document.getElementsByTagName('li'); 
    for (var i = 0; i < k.length; i++) { 
     var s = k[i];  
     s.firstChild.style.color = 'white'; 
     s.firstChild.style.backgroundColor= 'black'; 
    } 
} 
</script> 
</head> 
<body> 
    <ul id="meg"> 
    <li> 
     <a href="#">head</a> 
     <div> 
      <h2>su head</h2> 
      <p><a href="#" onmouseover="stuff()">content</a></p> 
     </div> 
    </li> 
    </ul> 
</body> 
</html> 
0

您是否嘗試過#meg li a:hover {background-color:#000; color:#FFF; }

+1

在鼠標上的孩子我想改變父母的顏色 – Prashobh 2012-07-28 07:03:48

1

這可能工作。我知道css能夠在關閉標籤之前不會影響元素,所以這是用來做這件事的「+」的反面。

<style type="text/css"> 
    #content:hover - #head { background-color: black; color: white; } 
    </style> 

<ul id="meg"> 
    <div id="head"> 
    <li><a href="#">head</a> 
    </div> 
    <div id="content"> 
    <h2>su head</h2> 
    <p><a href="#">content</a></p> 
    <p><a href="#">content</a></p> 
    </div> 
    </li> 
    </ul> 
+0

+1謝謝,但我不能添加另一個div,這是我用於多級菜單,如果我添加另一個div它的結構將改變。 – Prashobh 2012-07-28 07:34:22

+1

這是用css單獨完成的唯一方法。否則你需要javascript。 jquery沒有必要。 – jackson5 2012-07-28 14:45:08

+0

我嘗試在[jsFiddle](http://jsfiddle.net)上使用'-',它沒有工作。 – 2012-07-28 23:47:40