是否可以仅在dnn模块中重置css

时间:2013-04-04 10:33:14

标签: dotnetnuke

我制作了一个自定义的dnn模块。但是我模块中的元素从dnn获取所有样式。 是否有可能以某种方式仅在模块中执行css重置以删除所有dnn样式并仅应用于我的?

2 个答案:

答案 0 :(得分:1)

加载时这是DotNetNuke的CSS优先级。

DefaultCss: 5
ModuleCss: 10
SkinCss: 15
SpecificSkinCss: 20
ContainerCss: 25
SpecificContainerCss: 30
PortalCss: 35

以上信息来自DotNetNuke Wiki - Client Resource Management API

数字是css将被加载的顺序(5然后是10等,默认值是100,所以这意味着它应该最后加载。

您可以轻松地将自己的css文件添加到模块中,或者如果它适合,您可以将它们添加到模块中的module.css文件中。如果您打算使用自己的CSS / JS文件,请使用以下代码

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>    
<dnn:DnnJsInclude runat="server" ID="jsBootstrap" FilePath="~/DesktopModules/MyModuleFolder/js/bootstrap.min.js" />
<dnn:DnnCssInclude runat="server" ID="cssBootstrap" FilePath="~/DesktopModules/MyModuleFolder/css/bootstrap.min.css" />

如果您是DotNetNuke模块开发的新手,我建议您查看Chris Hammond的这个模块开发模板(Christoc's DotNetNuke Module Development Template

阅读他的博客,了解如何使用和安装模板 (Using the new Module Development Templates for DotNetNuke 7

答案 1 :(得分:1)

我能给你的最佳建议是“css特异性”。使用第一个答案提供的DNN Wiki链接,您可以了解DNN如何/何时加载每个.css文件,但是为了了解“css特异性”,需要了解模块中的样式。

遵循DNN正在使用的装载顺序是一个好主意,因为当你想要从你的皮肤中过度模拟你的模块时,就会有好处。

您可以最后加载自定义模块css文件,这可能会有所帮助但您还应该考虑以更具体的方式实现您的样式,以防止其他DNN样式流失。

例如,你可以将你的模块html包装在div标签中并给它一个my-foo-module类。

<div class="my-foo-module">
Module content here
</div>

在html结构中使用像命名空间这样的css类将使您的模块样式优先于任何其他更加通用的样式。我建议不要使用重置css文件,除非您将其范围限定为仅影响my-foo-module包装器中的元素。

以下是一些可以帮助您的好信息..

http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/

https://www.google.com/#bav=on.2,or.r_cp.r_qf.&fp=4977db6ad6ac1fe8&q=%22css+specificity%22

最后我会说,如果你试图为你的模块加载像twitter bootstrap的第三方css库而你的皮肤正在使用另一个库,或者根本没有,这至少可以说非常具有挑战性。您不想编辑整个引导程序库以获得更多的“Css特异性”,因此在这种情况下,我无法提供解决方案,因为我自己搜索一个。