2009-09-14 40 views
2

我想更好地減少任何不必要的標記和使用最佳的CSS。最初隱藏顯示:塊要顯示與jquery.show()

<label id="cart_promocode">Promo-code: 
    <span><%= Html.TextBox("PromoCode") %> 
     <a href="#" id="lnkApplyCoupon" class="hidden">Apply Coupon</a> 
    </span> 
</label> 

「應用優惠券」鏈接應位於文本框下方。 這是我正在使用的CSS。請注意,<A>顯示爲一個塊,因此它獲得自己的行。

#cart_promocode a 
{ 
    display: block; 
    margin: 4px 0 0 0; 
    font-size: 93%; 
    color: Blue; 
} 

.hidden { 
    display: none; 
} 

我將展示和使用jQuery與隱藏:

$('#lnkApplyCoupon').show() and hide() 

的問題是,我想要的項目最初是隱藏的。最初應用的'隱藏'類不起作用。

我想出了最好的解決辦法是

$(function() { 
    $('#lnkApplyCoupon').hide(); 
}); 

這將隱藏適用優惠券鏈接時,頁面加載,但隨後如果用戶不必須使用Javascript功能它最初不會被隱藏 - 在事實上,我不希望它出現。

我錯過了什麼 - 無論是對我的CSS的技巧或不同的方法。

回答

3

的「隱藏」類應用最初 不工作

#cart_promocode a { display:block; } 

擁有比你的其他規則更高的特異性(101 AFAIK),在上課前指定的ID,你就會有一個更高的特異性(110 AFAIK)。

IDS = 100,類= 10,鹼的選擇器= 1

#cart_promocode .hidden, .hidden { display:none; } 

兩個選擇器,因爲第二個會做的通用靶。

+0

這實際上並沒有給它更高的特異性。它仍然最初不可見。如果它被設置爲'!important',那麼show()永遠不會工作,因爲它總是隱藏起來 – 2009-09-14 03:02:46

+0

恩 - 它*確實*給它一個更高的特異性。你說過.hidden類不起作用,當我的css被應用時,它隱藏起來。 請參閱:http://jsbin.com/ahacu – 2009-09-14 03:23:05

+0

切換:http://jsbin.com/igome – 2009-09-14 03:27:38