2012-04-04 4 views
3

Я новичок в Liferay, и у меня есть следующая проблема. Мне нужно создать тему портала - это нормально, без проблем. Это создаст портлеты портала и портфолио по умолчанию. Но в некоторых моих портлетах я использую страницы ZKOSS, которые требуют совершенно разных стилей. Мой вопрос: как это сделать, чтобы тематические классы Liferay не повлияли на мои страницы ZKOSS? Есть некоторые общие стили в теме Liferay, например, для ввода и т. Д., Но я не хочу, чтобы эти правила применялись в моих портлетах ZKOSS. Надеюсь, я ясно объяснил. Какие-либо предложения?Как сделать другую тему для некоторых портлетов

ответ

3

Вы можете установить <css-class-wrapper>My_Portlet</css-class-wrapper> в Liferay-portlet.xml

подробнее см: http://www.liferay.com/community/wiki/-/wiki/Main/Liferay+UI+Guidelines

+0

Спасибо, я обязательно воспользуюсь этим ... угадаю, мне просто нужно будет продолжать проверять мои классы на проблему, описанную в комментарии к другому ответу. В любом случае, спасибо, оба ответа предлагают одно и то же решение, но ваш взгляд чище. – Gatekeeper

4

Я не знаю портлетов ZKOSS, но общий способ введения специфической темы портлета css осуществляется через DOM: проверьте свою страницу, посмотрите, как создаются портлеты ZKOSS: Liferay создает оболочку вокруг каждого портлета, содержащего портлет -name, вы можете использовать это для стилизации.

Как я не ZKOSS доступны, вот пример, чтобы иметь какой-то специфически уродливый стиль применяется к каждому навигации портлета:

.portlet-navigation .portlet { 
     background: purple; 
} 

использования Firebug или подобных инструментов, чтобы узнать соответствующую структуру DOM и просто добавить требуемый стиль для этих элементов к вашей теме

+0

Да я это, но моя точка зрения в том, что если (в данном случае) LifeRay тема уже содержит стили для .portlet класс, мне придется переопределить каждое его свойство в моем классе .portlet-navigation .portlet и молиться, чтобы кто-то еще не добавил в класс .portlet, потому что он также повлияет на мой элемент внутри портлета ... – Gatekeeper

+0

Спасибо, Я буду использовать решение в другом ответе, потому что он выглядит правильно, даже если он делает то же самое в конце ... – Gatekeeper

+0

re comment 1: это вы, который контролирует вашу тему, поэтому не так много людей могут добавить CSS в «.portlet». И переопределение более конкретных значений - это, в частности, красота css. Это согласуется с оболочкой css-класса, которую Марк упомянул в принятом ответе. Также обратите внимание, что два класса здесь были просто необходимы, потому что «.portlet» фактически перегружен до «background: none»; и я хотел изменить «фон». Если бы я изменил "border: 2px solid red;" Мне не понадобилось бы «.portlet» в селекторе. Re comment 2: Без проблем –

Смежные вопросы