当前位置: 首页 > 编程语言 > C#

使用C#动态生成CSS文件分享

时间:2023-04-10 19:13:42 C#

使用C#动态生成CSS文件我有一个可以部署到十几个客户端的站点。主网站有一个基本模板,每个客户端都有一个覆盖颜色的客户端文件夹。问题是有很多CSS文件,因此进行迫使我们更新每个客户端的更改需要很长时间。自动构建过程负责替换更新的文件。我想将css文件更改为用户控件,然后这些用户控件可以从另一个存储客户端特定值的用户控件继承。因此,我有一个/client/forms.css文件而不是forms.css文件,而是一个Forms.ascx文件,它继承了独立的颜色用户控件。例如:/*CSSDocument*/body{color:}然后,母版页将继承自用户控件。这将使客户站点的维护更加容易。该解决方案是否有效且值得推荐?还是有更好的方法来达到相同的最终结果?如果可能的话,是否也可以让Forms.ascx控件将标记输出为CSS?或者使扩展名.css仍然具有ascx属性?您最好不要创建通用处理程序,而是使用Web控件。这没有网络控制的开销。在您的处理程序中,通过查询字符串接受clientID-这允许您在可以链接到的.master文件中的客户端级别缓存。">在你的处理程序中,你有几种使用CSS的方法。只需为css提供一堆response.write,并输入相关的客户端值。使用你自己的特殊标识符创建外部CSS文件-可能。然后,您可以在NameValuePair集合中加载所有客户端特定值,然后遍历外部CSS文件,解析并替换为正确的值。然后response.write这个文件。更复杂但它允许另一个更干净的CSS文件要考虑的一个选项可能只是使用“CSS编译器”——例如SASS、LESS甚至HSS,它们可能支持方便的结构,如“mixins”并包含其他文件。这种方法可以允许系统,尽管不是动态的,以可根据不同客户的需求轻松配置。例如,使用“CSS编译器”,整个颜色模式可以作为可导出变量或模板(取决于“编译器”)存储在单个文件中-修改该文件,“重新编译”**和wham,新的colorsScheme接口无处不在(SASS还支持颜色数学——比如Hueshifting)。这可能使静态内容的部署/管理对于您的目的来说足够可行。我使用SASS(适合我的需要/风格,LESS/HSS不适合)。我不会切换回来,除非我真的,真的不得不(即:呃,永远不会)-SCSS模式下的SASS也理解CSS语法,所以你可以微进化或混合和匹配(LESS和HSS也有效,但HSS只有效使用更严格的CSS语法子集)。如果需要额外的功能,CSS编译器也可以与模板引擎(例如TT4)结合使用,或者利用包括动态生成的文件(不是所讨论的动态,而是动态的,因为它们来自其他来源)。虽然简单的CSS级联和类名/选择器可以走很长一段路,但我发现分离“逻辑级联”(CSS,CSS/级联很关键)和“哎呀,我希望它像模板一样”更容易(CSS编译器,应该处理CSS/级联的滥用)。**SASS和LESS都可以监控文件并自动重新编译它们。SASS甚至允许通过将其写入文件来监控整个目录,让浏览器像任何其他CSS文件一样选择它。制作内联样式表可防止客户端缓存机制强制为每个页面提供CSS。完全有可能。您可能还想考虑级联样式表,以便动态样式导入(可能更大)静态样式表。Asp.NET也支持主题,不过说实话CSS更强大。为什么应该考虑ASCX而不是ASPX?我原以为一个css文件代表一个完整的响应,所以它可以全部放在页面上。ashx可能是您可以实现的最轻、最快的处理程序形式,因此您可能想看一看……哦,并确保您的缓存参数正确!以上就是C#学习教程:使用C#动态生成CSS文件分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: