Наследование правила CSS в калитке родительско-дочерние страницы - PullRequest
0 голосов
/ 02 октября 2011

У меня проблема с разрешением классов css на родительских дочерних страницах калитки.

У меня есть базовая страница калитки (BasePage) и дочерняя страница (ChildPage), расширяющая BasePage.

Div вBasePage, как,

<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 ]

2 голосов
/ 03 октября 2011

Отношение BasePage / ChildPage в основном существует в Java - когда отображается последняя страница, она должна отображаться как единая сущность. Например, если вы вставляете свой CSS через IHeaderContributor, это не будет иметь значения, если бы он был в ChildPage или BasePage - он был бы введен в той же точке.

CSS у вас очень строгий. Символ > подразумевает прямого ребенка (не потомка). Как указал Draevor, Wicket добавляет много дополнительной разметки в режиме разработки. Как правило, не рекомендуется смешивать ограничительный CSS или Javascript с компонентами Wicket. Или, скорее, будьте очень осторожны с этим.

Интересно, возможно, "лишний" div, который вставляется Wicket, пропускается, когда CSS вставляется через дочернюю страницу? Это не имеет смысла, но это был бы интересный эксперимент.

1 голос
/ 02 октября 2011

Вы смотрели на источник?Может быть, есть дополнительная разметка, вставляемая калиткой.Чтобы быть в безопасности, просто удалите > из своего объявления CSS, и оно должно работать, даже если у вас есть что-то среднее между div.

...