ASP.Net MVC内容页面中不应使用共享布局中的某些CSS和JS

时间:2018-09-03 09:33:11

标签: css asp.net asp.net-mvc

我是asp.net MVC的新手。我有一些使用相同共享布局页面的视图。现在,我得到了一个新的共享布局页面,该页面具有其特定的设计,因此具有关联的新的CSS和JS文件。

我了解内容页面只是将它们的标记注入共享布局页面的@RenderBody部分。但是,仍然有任何方法可以确保某些CSS和JS不会影响子页面的标记。

2 个答案:

答案 0 :(得分:0)

听起来您在说的是您有适合您的布局页面的CSS,这也(不希望地)影响了您的视图吗?

正确地说,@ RenderBody只是将视图中的内容插入到布局页面中,生成的是一个完整的文档。任何CSS或JavaScript都会影响整个页面。但是,您可以控制它影响哪些元素,我相信这是您的问题。

您只需要CSS中更具体的选择器即可。 例如,如果您的母版页中有一个div,而您希望在其上设置边框:

div { border: 1px solid black; }
<div></div>

会很糟糕,因为它会影响页面上的每个div。尝试创建类并将其应用于您的元素,例如:

.div-black-border { border: 1px solid black; }
<div class="div-black-border"></div>

可以将相同的逻辑应用于您的javascript选择器(假定是问题所在)。

答案 1 :(得分:0)

您编写的每个css规则都应以最少元素数量为范围。如果布局中的某些内容不应该影响每个孩子,也许不应该在布局中。

这就是为什么使用类来限制范围并使其具体化的原因。

为使这一步骤更进一步,我通常限制每个页面的父容器,以确保是否创建了通用规则,不会将其泄漏到所有站点。

HTML

   <div class="main__container">

   </div>

CSS

.main__container {
   background: red;
}