2011-10-02 110 views
0

在導航窗口父子頁面中解決css類問題。在子導航窗口父子頁面中的css規則繼承

我有一個檢票基頁(BasePage)和一個子頁(ChildPage)擴展BasePage。

在BasePage的DIV的現像,

<div class="container-fluid"> 
    <wicket:child/> 
</div> 

和ChildPage

<wicket:extend> 
     <div class="sidebar"> 
      .......... 
     </div> 
</wicket:extend> 
在我的基本頁面的CSS

我已經包含在其中有像

CSS規則CSS文件
.container-fluid > .sidebar { 
    float: left; 
    width: 220px; 
} 

div container-fluid在ChildPage中的BasePage和sidebar div中。問題 是渲染子頁面後,它沒有找到側邊欄類和頁面顯示不正確。但是,如果你把邊欄類CSS放在ChildPage中,它就可以工作。但是如果我必須專門提供所有兒童CSS,未來將會是一個混亂的工作,孩子的頁面很多,並且CSS將是多餘的。

任何線索?

+0

當你說你把它放在一個或另一箇中時,這是否意味着你正在使用''元素? –

+0

是的,如果我將CSS放入子樣式中,它顯然可以發現css規則,但我已經將CSS文件包含在父頁面的wicket頭部中。它不應該包含在渲染的子頁面中嗎? – Shahriar

回答

2

BasePage/ChildPage關係大多存在於Java中 - 當最終頁面被渲染時,它應該被渲染爲一個單獨的實體。例如,如果您通過IHeaderContributor插入CSS,如果它位於ChildPage或BasePage中,則不會產生任何影響 - 它會在同一點輸入。

你擁有的CSS是非常嚴格的。 >字符意味着一個直接的孩子(不是後代)。正如Draevor指出的那樣,Wicket在開發模式中插入了很多額外的標記。將限制性CSS或Javascript與Wicket組件混合通常不是一個好主意。或者,應該非常小心。

我想知道,當通過子頁面插入CSS時,Wicket插入的「額外」div可能會跳過?這沒有意義,但這將是一個有趣的實驗。

1

你看過源代碼嗎?也許有一些額外的標記插入檢票。爲了安全起見,只需從您的CSS聲明中刪除>,即使您在div之間有東西,它也應該可以工作。

+0

好的謝謝,我會試一試 – Shahriar