2011-02-02 49 views
1

對不起模糊標題,我無法用一行描述我的問題。問題是關於頁面標題,這是從常見的後臺模板,這是使用哪個CSS選擇器?

<h2 class='page-title'> {title} </h2> 

其中{}標題由應用程序動態生成的產生。所以我會在同一個模板生成的每個網頁上都有一個。

  1. 關於頁:<h2 class='page-title'>About</h2>
  2. 服務頁面:<h2 class='page-title'>Service</h2>
  3. 首頁:<h2 class='page-title'>Home</h2>

我想要做的是,隱藏,從3主頁上,卻可以讓它顯示在所有其他頁面上使用CSS或Javascript。我愚蠢地嘗試h1 {display:none}但這只是隱藏一切,我只想隱藏<h2 class='page-title'>Home</h2>

任何想法如何做到這一點?

+0

哇......在一小時內得到了很多答案!我愛stackoverflow社區。謝謝你們! – CuriousMind 2011-02-02 20:35:28

回答

3

要麼使用後端代碼給您的主頁標題的特定ID,或在主頁本身上使用的頁面的CSS:

h2.page-title { 
    display:none; 
} 
1

您將需要添加一個樣式只是首頁,或有一個類,表示您正在瀏覽的網頁:

h2.page-title是選擇元素的非常具體的方式,但它會影響所有頁面。

.page-title可以工作,如果你知道該類只會發生在h2元素上。

如果你使用的身體,你可以做以下的類:這取決於你想如何具體是

body.frontpage h2.page-title 

body.frontpage .page-title

我建議儘可能通用以避免特殊性問題。

1

我會給你<html>元素的ID(獨特的每一頁):

<html id='{pageid}'> 
... 
<h2 class='page-title'> {title} </h2> 
... 
</html> 

如果你有一個CMS然後使用選擇

#home .page-title { display: none } 
1

或類似的東西,傾倒內容到一個單一的模板,那麼我認爲你最好用javascript做這件事。我不知道一個元素的innerText在css中的選擇器。

我通常使用jQuery庫 - 我建議是這樣的:

$(document).ready(function() { 
    $("h2.page-title:contains('Home')").css('display', 'none'); 
} 
+0

沒想到我可以這樣做,謝謝! – CuriousMind 2011-02-02 20:03:34

1

這是最好的,用來動態生成這種非常相同的服務器端語言完成,只需添加一個條件如果頁面是'Home',則不輸出任何內容。

如果這不是您的選擇,我會建議梅爾的方式,因爲它會簡單地工作,並且不需要JavaScript。

另外我覺得梅爾的代碼應該在你想隱藏的h2之上,並且包裹成<style></style>標籤。