2014-01-09 86 views
0

我是一般的CSS和網頁設計新手。 我創建了一個對應於頁面上的3個「按鈕」或「鏈接」的CSS精靈表。 這些按鈕的默認位置爲OFF,「當前」位置爲ON。
頁面加載時,所有3個按鈕默認爲OFF位置。 當您點擊其中一個按鈕時,該按鈕會變爲ON位置,讓觀衆知道屏幕上加載的內容與他們按下的按鈕相對應。 如果他們按下另一個按鈕,則加載新信息,並且該按鈕現在處於ON位置。 我希望其中的一個默認加載頁面時的ON位置。 有人可以幫我用CSS做這個嗎? 下面是我使用的CSS:讓CSS Sprite「按鈕」默認爲ON頁面加載狀態

/*--- Set Sprite Image ---*/ 
#branch0, 
#branch1, 
#branch2 
{background-image : url('images/sprite2.jpg');} 
#branch_buttons #branch0{width:300px; height:65px; background-position:0 0;} 
#branch_buttons #branch1{width:300px; height:65px; background-position:left -66px;} 
#branch_buttons #branch2{width:300px; height:65px; background-position:left -131px;} 
/* Hover/Focus State */ 
#branch_buttons #branch0:hover,#branch_buttons #branch0:focus, #branch_buttons #branch0.current{width:300px; height:65px; background-position:-301px top;} 
#branch_buttons #branch1:hover,#branch_buttons #branch1:focus, #branch_buttons #branch1.current{width:300px; height:65px; background-position:-301px -66px;} 
#branch_buttons #branch2:hover,#branch_buttons #branch2:focus, #branch_buttons #branch2.current{width:300px; height:65px; background-position:-301px -131px;} 
/* Active */ 
#branch_buttons #branch0:active{background-position:left -195px;} 
#branch_buttons #branch1:active{background-position:left -261px;} 
#branch_buttons #branch2:active{background-position:left -326px;}` 
+0

我不完全知道你是問什麼,你是否在每一頁上表示頁精靈被「上」?如果是這樣,我會建議對與當前頁面相關的圖像進行硬編碼(例如,將其中一個圖像標記爲「當前」類,並使用它來覆蓋CSS)或使用Javascript。 – DBS

+0

想象一下你有3個按鈕。每個按鈕都有一個UP和DOWN位置。默認情況下它們全部都是UP。當你點擊一個按鈕時,它會進入DOWN位置並保持這種狀態直到你點擊一個不同的按鈕。當頁面加載時,我只想讓其中一個按鈕默認爲DOWN位置。原因在於每個按鈕都會將數據加載到頁面中心的iframe中,並且在頁面加載時,默認情況下它會顯示其中一個按鈕的數據 - 這是我要默認爲DOWN的那個。 – user3013140

回答

1

您將需要一個類添加到您想要默認按鈕(可以說增加一個當前類),然後您需要添加以下樣式(假設你的懸停狀態時,該按鈕上):

#branch_buttons #branch0:hover, 
#branch_buttons #branch0:focus, 
#branch_buttons #branch0.current {width:300px; height:65px; background-position:-301px top;} 
#branch_buttons #branch1:hover, 
#branch_buttons #branch1:focus, 
#branch_buttons #branch1.current {width:300px; height:65px; background-position:-301px -66px;} 
#branch_buttons #branch2:hover, 
#branch_buttons #branch2:focus, 
#branch_buttons #branch2.current {width:300px; height:65px; background-position:-301px -131px;} 

我想你正與風格.wayne.current沒有顯示上的按鈕你的問題?如果是這樣,這是因爲您已指定使用IDS您最初的按鈕樣式,所以他們不會被你的激活方式被覆蓋 - 理解爲什麼看看這篇文章css specificity

更新

要使用jQuery去除類很簡單。首先,你需要讓所有的按鈕,同一類 - 說button just include the following before the closing`標籤:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     var buttons = $('.button'); // this is the selector for the buttons class 

     buttons.on('click', function (e) { 
      e.preventDefault(); // this line will stop the button from posting back. 

      buttons.removeClass('current'); // this removes the current class from the buttons 
      $(this).addClass('current'); // this adds the current class to the clicked buttom button 
     }); 
    }); 
</script> 
+0

目前我沒有任何問題的按鈕。他們都按照他們應有的工作。如果我將.current類添加到wayne按鈕(這是我想要默認爲DOWN位置的那個按鈕),它確實可以工作。當我加載頁面時,按鈕處於DOWN位置,但當我單擊另一個按鈕時,wayne按鈕不會返回到UP位置。 – user3013140

+0

是的,當你點擊另一個按鈕時,你需要使用一些JavaScript去除類'current' – Pete

+0

好吧如果有人能提供一些例子,我很樂意添加一些。我已經更新了一些代碼並編輯了我原來的帖子。 – user3013140