在wicket父子页面中的css规则继承

时间:2011-10-02 15:19:32

标签: html css wicket

我在wicket父子页面中解析css类时遇到问题。

我有一个wicket基页(BasePage)和一个扩展BasePage的子页面(ChildPage)。

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位于BasePage中,sidebar div位于ChildPage中。解决问题 在渲染子页面后,它没有找到侧边栏类,并且页面显示不正确。但是如果你把侧边栏类css放在ChildPage中,它就可以了。但是,如果我必须专门放置所有的孩子css,将来这将是一个混乱的工作,儿童页面很多,css将是多余的。

任何线索?

2 个答案:

答案 0 :(得分:2)

BasePage / ChildPage关系主要存在于Java中 - 当呈现最终页面时,它应该呈现为单个实体。例如,如果您通过IHeaderContributor插入CSS,那么如果它位于ChildPage或BasePage中则没有区别 - 它将在同一点输入。

你拥有的CSS非常严格。 >字符意味着直接的孩子(不是后代)。正如Draevor所说,Wicket在开发模式中插入了许多额外的标记。将限制性CSS或Javascript与Wicket组件混合通常不是一个好主意。或者,相反,要非常小心。

我想知道,当通过子页面插入CSS时,可能会跳过Wicket插入的“额外”div?这没有意义,但这将是一个有趣的实验。

答案 1 :(得分:1)

你看过这个来源了吗?也许wicket会插入一些额外的标记。为了安全起见,只需从CSS声明中删除>即使你在div之间有某些东西也应该有效。