2013-05-13 79 views
1

我現在有一個我的設計問題,我創建一個懸停按鈕使用:懸停CSS元素,然後確保它使用:active元素保持不變。:活動和:懸停都在同一時間活動,填充堆棧

但是,hover和active兩者都在其各自的CSS規則中指定了填充,當您單擊按鈕時仍然懸停在它上面時會產生問題 - 填充堆棧和按鈕完全錯位。

我該怎麼做才能避免這種情況?

+0

那些是僞類,而不是元件。 HTML包含元素,CSS不包含。 – Quentin 2013-05-13 19:49:34

+1

定義':hover:active'的規則,將'padding'設置爲首選的長度/大小。 – 2013-05-13 19:49:46

+1

級聯的工作方式使兩個規則無法在同一個元素上設置填充值進行組合。級聯中的最後一條規則將覆蓋前一條。我可以想到一些可能會出現這種情況的情況,但是您需要顯示一個完整的簡化測試用例,以確定這些情況(如果有的話)。 – Quentin 2013-05-13 19:50:34

回答

1

這是你的意思(點擊div來查看懸停/活動)。

HTML:

<div class="a">Some content</div> 

CSS:

.a{ 
    display:block; 
    padding:5px; 
} 
.a:hover{ 
    padding:5px; 
    background:red; 
} 
.a:active{ 
    padding:5px; 
    background:blue; 
} 

實施例:http://jsfiddle.net/justincook/JsWCF/

+2

我不知道誰低估了這一點,但這是一個非常清楚的例證,OP的前提確實沒有發生。做得好。 – 2013-05-13 20:08:36

+1

由於發佈我已經修復了錯誤,接受這個答案,因爲它清楚地表明我搞砸了別的地方。 – Ryan 2013-05-18 13:07:49