我有一个网站,可以部署到十几个客户端.主网站有一个基本模板,每个客户端都有一个覆盖颜色的客户端文件夹.问题是有很多CSS文件,因此进行更改会迫使我们更新每个客户端需要很长时间.自动构建过程负责替换更新的文件.
我想将CSS文件更改为usercontrols,然后这些用户控件可以从另一个存储客户端特定值的usercontrol继承.
因此,我没有一个forms.css文件,而是一个/client/forms.css文件,而是有一个Forms.ascx文件,该文件继承自包含颜色的usercontrol.
例如:
<%@ Control Language="C#" ClassName="Forms" %>
<%@ Register TagPrefix="css" TagName="Client" Src="~/css/ClientStyling.ascx" %>
/* CSS Document */
body
{
color:<%=Client.BodyColor%>
}
Run Code Online (Sandbox Code Playgroud)
然后,母版页将继承自usercontrol.这将使客户端站点的维护更加容易.
这个解决方案是否有效且值得推荐?或者有更好的方法来实现相同的最终结果吗?
如果这是可能的,那么还可以让Forms.ascx控件将标记输出为CSS吗?或者扩展.css并仍然具有ascx属性?
Pre*_*ott 11
您可能最好不要创建Generic Handler而不是Web Control.这不会有Web控件的开销.
在你的处理程序中,你有几种方法可以使用CSS.
小智 7
另一个需要考虑的选择可能就是使用"CSS编译器" - 例如SASS,LESS甚至HSS,它们可能支持像"mixins"这样的方便结构并包含其他文件.这种方法可以允许一个系统,虽然不是动态的,但可以根据不同客户的需求轻松配置.
例如,使用"CSS编译器" ,整个颜色模式可以作为可导出的变量或模板存储在单个文件中(取决于"编译器") - 修改该文件,"重新编译"**和wham,新的颜色方案接口无处不在(SASS还支持颜色数学 - 例如Hue移位).这可能使得使用静态内容的部署/管理足够用于您的目的.
我使用SASS(它符合我的需要/风格,而LESS/HSS没有).我就无法切换回,除非我真的,真的不得不(这是说:呃,从不) -上海社会科学院在SCSS模式也理解CSS语法,所以你可以微进化或混搭(LESS和HSS也像这样工作,但HSS仅适用于更严格的CSS语法子集).CSS编译器也可以结合模板引擎(如TT4)使用,或采取包括动态生成的文件的优势(未动动如问题,而是动态的在这个意义上,他们来自一些其他数据源)如果额外需要力量.
虽然普通的CSS级联和类名/选择器可以有很长的路要走,但我发现分离"逻辑级联"(CSS,其中CSS /级联至关重要)和"geeze,我希望这就像模板一样"更容易(CSS编译器,应该处理滥用CSS /级联的情况).
**SASS和LESS都可以监视文件并自动重新编译它们.SASS甚至允许监控整个目录
| 归档时间: |
|
| 查看次数: |
9346 次 |
| 最近记录: |