2011-10-02 108 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