2011-03-08 89 views
1

編輯:1jQuery UI的主題API

下不能正常工作,甚至清除瀏覽器緩存後:

.ui-state-hover {background-image:none;background-color:red;color:red;padding:50px;margin:50px;} 

原題:

使用jquery's ui theme api,我想改變jquery-ui-tabs的懸停效果:

.ui-state-hover {background-color:red;color:red;padding:50px;} 

以下是完整的腳本:

<!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> 
    <title>Untitled Page</title> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 
    <link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.css" rel="stylesheet" /> 

    <script type="text/javascript" language="javascript"> 
     $(document).ready(function(){ 
      $("#tabs").tabs(); 
     }); 
    </script> 

    <style type="text/css"> 
     .ui-state-hover {background-color:red;color:red;padding:50px;} 
    </style> 
</head> 
<body> 

<div id="tabs"> 
    <ul> 
     <li><a href="#tabs-1">Nunc tincidunt</a></li> 
     <li><a href="#tabs-2">Proin dolor</a></li> 
     <li><a href="#tabs-3">Aenean lacinia</a></li> 
    </ul> 
    <div id="tabs-1"> 
     <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, </p> 
    </div> 
    <div id="tabs-2"> 
     <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus </p> 
    </div> 
    <div id="tabs-3"> 
     <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. </p> 
    </div> 
</div> 
</body> 
</html> 

但它似乎並沒有工作。我究竟做錯了什麼?

回答

3

你需要更具體一些,因爲「.ui-state-default」和外部css中的附加類層次結構會覆蓋你的css。

變化.ui-state-default {background:red;color:red;padding:50px;}

#tabs .ui-state-default {background:red;color:red;padding:50px;} 

background:red,而不是background-color:red因爲有一個背景圖像

看到演示http://jsfiddle.net/aX5c9/

+0

非常感謝! – oshirowanen 2011-03-08 14:04:13

+1

不應該本地CSS _always_重寫一個外部的CSS?我雖然這是_cascading_樣式表的全部重點。 – ZeissS 2011-03-08 14:05:50

+0

@ZeissS:你說得對。實際上這裏會發生什麼是有額外的類層次結構。如果我們使用#tabs,那麼它將是我們需要覆蓋外部css中每個類層次結構的最明確的部分。比如.ui-widget-header .ui-state-default {background:red; color:red; padding:50px; }將改變背景,但不會改變填充,因爲它遵循另一個層次。所以當你從另一個CSS靜態框架開發網站時,最好是具體的 – Mahesh 2011-03-08 14:26:28

1

我來賓是'ui-state-hover'類嗎?

+0

你打我吧。我糾正了這一點,但沒有任何區別。 – oshirowanen 2011-03-08 13:54:20

1

首先,我認爲它是.ui-state-hover,而不是ui-widget-hover。其次,它看起來像原來的主題使用的背景圖像,而不是顏色:

.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } 

所以,如果你想改變的背景下,你需要或者使用不同的圖像,或另外設置background-image: none;background-color

看看這個的jsfiddle:

http://jsfiddle.net/Uce8S/

您需要爲標籤標題做.ui-widget-header .ui-state-hover

+0

以下不起作用:.ui-state-hover {background-image:none; background-color:red; color:red; padding:50px; margin:50px;} – oshirowanen 2011-03-08 13:57:42