2008-09-26 34 views
17

我有一個懸停式可拖動div元素。這工作正常,但div包含一些表單元素(標籤,輸入)。問題是,當鼠標懸停在這些子元素上時,懸停被禁用。用於懸停的CSS包含所有子元素

<div class="app_setting"> 
    <label">Name</label> 
    <input type="text" name="name"/> 
</div> 

.app_setting:hover { 
    cursor:move; 
} 

任何想法如何讓懸停也適用於子元素?

回答

34
.app_setting *:hover { cursor:move } 
+1

這個岩石感謝 – lawphotog 2012-04-09 22:27:59

+1

像所有的css規則一樣,你可能必須使用`.app_setting *:hover {cursor:move!important; }`覆蓋你可能在其他地方的子元素上設置的任何光標。css規則 – 2013-02-12 12:51:49

+0

使用Firefox,(不出幾年後),這是行不通的。它實際上比提問者原始的嘗試效果更差(使用!重要或不) – PandaWood 2015-07-31 13:15:34

12

至少有2種方式做這件事的:

  • 懸停狀態爲每一個孩子,無論明示或與*選擇,如加羅建議.class *:hover
  • 級聯懸停狀態的兒童.class:hover *

有可能是其他人

+1

這個`.class:hover *`爲我做的工作非常好。 – Vukasin 2017-10-02 08:18:47

1

你可能不得不求助於JS來讓它發生在IE6上。

2

這不是一個CSS的答案,但它可能仍然對你有用。

其他人已經建議您可能不得不求助於JavaScript來實現瀏覽器兼容性。如果你使用javascript,你可以使用jQuery庫來簡化它。

$(".appsetting").hover(hoverInFunc,hoverOutFunc);

這爲盤旋進入和離開由在$()呼叫的CSS樣式選擇匹配所選擇的元件(一個或多個)的事件處理程序。