我在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将是多余的。
任何线索?
答案 0 :(得分:2)
BasePage / ChildPage关系主要存在于Java中 - 当呈现最终页面时,它应该呈现为单个实体。例如,如果您通过IHeaderContributor插入CSS,那么如果它位于ChildPage或BasePage中则没有区别 - 它将在同一点输入。
你拥有的CSS非常严格。 >
字符意味着直接的孩子(不是后代)。正如Draevor所说,Wicket在开发模式中插入了许多额外的标记。将限制性CSS或Javascript与Wicket组件混合通常不是一个好主意。或者,相反,要非常小心。
我想知道,当通过子页面插入CSS时,可能会跳过Wicket插入的“额外”div?这没有意义,但这将是一个有趣的实验。
答案 1 :(得分:1)
你看过这个来源了吗?也许wicket会插入一些额外的标记。为了安全起见,只需从CSS声明中删除>
即使你在div之间有某些东西也应该有效。