Похоже, что CSS полагается на конкретные идентификаторы HTML-элементов в источнике HTML.Перед разделением содержимого на <f:subview id="menucontents">
следующие элементы
<div id="menucontents:hNav_outer">
<ul id="menucontents:nav1">
были сгенерированы следующим образом
<div id="hNav_outer">
<ul id="nav1">
Пример таблицы стилей Tomahawk CSS, очевидно, основан на этих идентификаторах
#hNav_outer {
...
}
#nav1 {
...
}
Однако, с разделением на <f:subview id="menucontents">
, JSF будет добавлять к сгенерированным идентификаторам HTML-элементов идентификатор <f:subview>
.Так что вам нужно изменить CSS.
#menucontents\3A hNav_outer {
...
}
#menucontents\3A nav1 {
...
}
За \3A
стоит особая история: двоеточие :
является недопустимым символом в идентификаторах CSS.Это было упущением в ранних версиях JSF 1.x.В JSF 2.x это было исправлено путем настройки настраиваемого разделителя идентификатора клиента JSF :
(вы можете указать его, например, _
, который, в свою очередь, действителен в CSS).
Вы также можете избежать двоеточия следующим образом
#menucontents\:hNav_outer {
...
}
#menucontents\:nav1 {
...
}
Но это не работает в IE6 / 7, поэтому рекомендуется использовать \3A
(с завершающим пробелом!)вместо двоеточия в селекторах CSS.