2013-11-24 73 views
0

我不知道如何適當地寫CSS來做到以下幾點,我有以下的html代碼:顯示子元素,而徘徊在元素

<div class="class1"> 
    Hello 
    <div style="opacity:0" class="class2"> 
     World 
    </div> 
</div> 

當我將鼠標懸停在1班,我想改變的Class2的不透明度到1.我該怎麼做?謝謝!

回答

1

首先取下內聯風格和創造class2的CSS規則。然後在懸停在class1上時更改不透明度。

.class2 { 
    opacity: 0; 
} 

.class1:hover .class2 { 
    opacity: 1 
} 

http://jsfiddle.net/zC8Wc/

編輯

內聯樣式已被刪除,因爲你不能在不使用!important規則,你絕對應該儘量避免在你的CSS覆蓋它們。所有樣式也應該放在樣式表中,而不是放在HTML中。

+0

Upvoted使用簡單的CSS,並至少說明刪除內聯樣式的要求。雖然你,*也*,不解釋*爲什麼*它應該被刪除。 –

0

在CSS:

.class1:hover .class2{ 
    opacity:1; 
} 

的jsfiddle:http://jsfiddle.net/markasoftware/BD66q/

+0

這是行不通的,因爲寫的,因爲在線風格子元素將其他壓倒一切,因爲你清楚地瞭解,因爲在您的演示,你使用'!important',但你在這裏省略了它)。你應該解釋爲什麼'!重要'是必要的,它是如何避免的(在可能的情況下應該避免*真正*)。 –

+0

在jsfiddle我有'!重要的',但是,在生產中您需要修復 – Markasoftware

+0

是的;正如我在之前的評論中明確指出的那樣。問題是你沒有提供*爲什麼*的解釋,而你沒有在這裏*在你的答案*中。 –

0

使用的知名度,而不是

<div class="class1" onmouseover="show_div()">Hello 

<div style="visibility:hidden;" class="class2"> 
World 

</div> 
</div> 

<script> 
function show_div() 
{ 
document.getElementsByClassName("class2")[0].style.visibility="visible" 

} 
</script> 
+1

你意識到這是行不通的,對吧?並且它不起作用的原因是因爲'nodeList'沒有'style'屬性(你必須逐個遍歷返回的'nodeList'中的元素來單獨調整'style') 。 –

+0

是的,你是對的,對不起,我沒有注意到第二個div是一個孩子,無論如何讓我解決這個問題。 – ProllyGeek

+0

現在它的作品! – ProllyGeek