#html #css #wicket
#HTML #css #wicket
Вопрос:
У меня проблема с разрешением классов css на родительских дочерних страницах wicket.
У меня есть базовая страница wicket (базовая страница) и дочерняя страница (дочерняя страница), расширяющая базовую страницу.
Div в базовой странице выглядит так,
<div class="container-fluid">
<wicket:child/>
</div>
и на дочерней странице
<wicket:extend>
<div class="sidebar">
..........
</div>
</wicket:extend>
в мою базовую страницу css я ВКЛЮЧИЛ файл css, в котором есть правило css, например
.container-fluid > .sidebar {
float: left;
width: 220px;
}
div container-fluid
находится на базовой странице, а sidebar
div — на дочерней странице. Но проблема
в том, что после рендеринга дочерней страницы он не находит класс боковой панели, и страница отображается неправильно. Но если вы поместите класс css боковой панели в дочернюю страницу, это сработает. Но если мне придется специально использовать все дочерние css, в будущем это будет грязная работа, где будет много дочерних страниц, и css будет избыточным.
есть какие-нибудь подсказки?
Комментарии:
1. Когда вы говорите, что помещаете это в один или другой, означает ли это, что вы используете
<style></style>
элементы?2. да, если я помещаю css в дочерний стиль отдельно, он работает, очевидно, поскольку находит правило css, но я уже включил файл css в заголовок wicket родительской страницы. Разве это не должно включаться в дочернюю страницу при рендеринге?
Ответ №1:
Связь между базовой и дочерней страницами в основном существует в Java — когда отображается конечная страница, она должна отображаться как единое целое. Например, если вы вставляли свой CSS через IHeaderContributor, не имело бы значения, был ли он на дочерней или базовой странице — он был бы введен в той же точке.
CSS, который у вас есть, очень ограничен. >
Символ подразумевает прямого потомка (не потомка). Как указал Дрейвор, Wicket вставляет много дополнительной разметки в режиме разработки. Как правило, не рекомендуется смешивать ограничительные CSS или Javascript с компонентами Wicket. Или, скорее, будьте очень осторожны с этим.
Интересно, возможно, «лишний» div, который вставляется Wicket, пропускается, когда CSS вставляется через дочернюю страницу? Это не имеет смысла, но это был бы интересный эксперимент.
Ответ №2:
Вы смотрели на источник? Возможно, wicket вставляет какую-то дополнительную разметку. На всякий случай просто удалите >
из своего объявления CSS, и оно должно работать, даже если у вас есть что-то среднее между разделами.