我正在尝试使用自定义主题自定义Liferay UI,使用base作为" _Styled"主题。
我有自己的css文件,我应对主题的_diff / css文件夹并导入它们" custom.css"但是它打破了liferay的演示。在我的自定义CSS中,我为所有标准标签定义了样式,如body,div等,这也影响了liferay UI。
如何解决此冲突?提前谢谢!
答案 0 :(得分:0)
快速(而不是最佳)解决方案是删除liferays css文件的内容(例如“base.css”)并将此空文件保存在主题的/ diff / css /文件夹中。这样,base.css将被新的空文件覆盖,因此不会加载任何样式。而您的custom.css将是唯一考虑的样式表。
答案 1 :(得分:0)
嗯,当然这一切对Liferay的其余部分都有影响。 Liferay提供了相当多的页面HTML DOM,如果你改变所有这些元素的表现形式,你也必须注意设计Liferay的元素。
这是冲突吗?不,我们选择最简单的案例:你宣布div {color:green;}
。当然,现在一切,您的组件以及Liferay的组件都使用绿色文本。如果您只想设置自己的portlet样式,则可能需要指定一些portlet:div.portlet-my-own-application {color:green;}
我知道颜色是一个过于简单的用例,但我希望它能说明解决方案的策略。
我没有按照Artem Khojoyan的建议来覆盖Liferay的base.css,而是建议你看一下生成的css,什么是有效的等等,并简化你自己的css - 让它适应Liferay中使用 - 通过检查关注每个元素的有效CSS。 Firebug或其中任何一个亲戚都是你的朋友。
我害怕,细节“我正在做一些对Liferay UI产生影响的事情”,没有什么可以帮助你了。事实上,我希望你所做的对Liferay的用户界面有影响......你只需要找到合适的CSS代码
答案 2 :(得分:0)
理想情况下,如果您的样式是从custom.css加载的,那么将覆盖liferay默认样式。 在某些情况下,要覆盖css中的样式,可以使用!important
例如,liferay默认样式
body {
background-color: #fff
}
无论加载顺序如何,您都可以指定要考虑的样式
body {
background-color: red !important;
}