我们最近我为我们命名为“CSS编译”的东西,这是什么方法回答了什么。我们的编译(由PHP后端完成)为每个模块生成单个编译后的css文件,因此在运行时加载单个CSS文件。这使我们可以自由地定义尽可能多的CSS文件,而不必担心性能。为此,我们在我们的项目的配置文件(模块,例如登录,首页等等以及为每个模块加载的CSS文件)中定义了包含模块-css文件关系的数组。最后描述更多细节,因为这是风格架构的核心。
这是我们使用的基本CSS计划: -
- 详细研究都注意到风格模式/可重用的组件,只见模块
- 标题部分,页脚部分和左菜单在每个模块中都需要
- 有很多模块在中心有一些列表的表格显示部分(留下公共页眉,页脚和左侧菜单),并且有很多模块显示一些项目详细信息,如用户详细信息页面,类详细信息页面。
我们有一个设计师团队向我们提供的所有样式。然后我们按照上一步所研究的样式模式将单个CSS文件分割成多个片段。因此,我们创造了一些文件,如 -
common.css
含页眉,页脚,左边的菜单风格
listings.css
包含了所有的样式定义为只出现在列表中的页面组件。
details.css
就像上面提到的一样,如果你有一个.detailsRedHeading
类,只有在细节页面的情况下才需要这个类,请在这里定义它。
任何额外的样式 - 假设许多模块需要弹出式样,然后将这些样式置于popups.css
之内,而不是在common.css
或任何其他文件中定义这些样式。记住我们必须根据自己的意愿定义尽可能多的css文件。
为了便于以后的主题改变
我从未申请的“我试图把所有的布局(位置,大小等)在一个文件中,而所有的装饰(颜色,背景你的想法等)在另一个“,但如果它可以帮助你,你可以添加到这个架构。将common.css
分解为common_layout.css
,common_design.css
和其他类似的。
此外,请确保您在第一次使用最大可能的样式重用。避免样式声明是这样的: -
.listingsBody
{
font-family:Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif;
font-size: 12px;
..
some listing page styles
..
}
.detailsBody
{
font-family:Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif;
font-size: 12px;
..
some details page styles
..
}
而是有这样的: -
.siteMediumFont
{
font-family:Trebuchet MS,Liberation Sans,DejaVu Sans,sans-serif;
font-size: 12px;
}
.detailsBody
{
..
some details page styles
..
}
.listingsBody
{
..
some listing page styles
..
}
我已经看到,许多设计师做到这一点。在更复杂的情况下,这种习惯会让事情变得很困难。在编译
详情: -
我们完成应用CSS更改后,我们运行的汇编代码执行以下操作: -
$moduleCssrelation = array("class_details"=> array("details","popups"));
阵列$moduleCssrelation
导线,并创建一个编译的文件每个模块的css文件名称的内容。 例如如果class_details
模块需要文件details.css
,popups.css
,则它会创建一个文件common-details-popups.css
,该文件也将被加载用于class_details
以及任何其他需要这两个css文件的模块。