ASP.NET错误是添加内联CSS和覆盖样式

ASP.NET错误是添加内联CSS和覆盖样式,css,asp.net,asp.net-mvc,Css,Asp.net,Asp.net Mvc,我有一个单页MVC web应用程序。当发生服务器错误时,我们会在同一页面的对话框中显示异常。ASP.NET YSOD添加了内联CSS。由于添加到主体元素的样式,这会更改整个应用程序的字体 有没有一种方法可以将添加的CSS划分到该对话框中?或者在对话框关闭时删除添加的CSS样式?或者编辑样式和错误页面,使样式不是全局的 这是添加的内联CSS: <style> body {font-family:"Verdana";font-weight:normal;font-size: .7

我有一个单页MVC web应用程序。当发生服务器错误时,我们会在同一页面的对话框中显示异常。ASP.NET YSOD添加了内联CSS。由于添加到
主体
元素的样式,这会更改整个应用程序的字体

有没有一种方法可以将添加的CSS划分到该对话框中?或者在对话框关闭时删除添加的CSS样式?或者编辑样式和错误页面,使样式不是全局的

这是添加的内联CSS:

<style>
    body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
    p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
    b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
    H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
    H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
    pre {font-family:"Lucida Console";font-size: .9em}
    .marker {font-weight: bold; color: black;text-decoration: none;}
    .version {color: gray;}
    .error {margin-bottom: 10px;}
    .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
</style>

正文{字体系列:“Verdana”;字体重量:正常;字体大小:.7em;颜色:黑色;}
p{字体系列:“Verdana”;字体大小:正常;颜色:黑色;页边顶部:-5px}
{字体系列:“Verdana”;字体大小:粗体;颜色:黑色;页边顶部:-5px}
H1{字体系列:“Verdana”;字体重量:正常;字体大小:18pt;颜色:红色}
H2{字体系列:“Verdana”;字体重量:正常;字体大小:14pt;颜色:褐红色}
前{字体系列:“Lucida控制台”;字体大小:.9em}
.marker{字体大小:粗体;颜色:黑色;文本装饰:无;}
.version{color:gray;}
.错误{页边距底部:10px;}
.expandable{文本装饰:下划线;字体大小:粗体;颜色:海军蓝;光标:手;}

有几种方法可以克服这一问题。首先,你可以随时设置!样式标记末尾的重要信息

<style type="text/css">
  body {font-family:"Verdana" !important;font-weight:normal !important;font-size: .7em !important;color:black !important;} 
</style>

正文{字体系列:“Verdana”!重要;字体重量:正常!重要;字体大小:.7em!重要;颜色:黑色!重要;}
虽然我觉得这很烦人。在我看来,更好的方法是,除非它将css添加到实际元素中(即,
测试
),否则将弹出窗口元素包装在带有ID的包装中,然后根据包装及其子元素设置所有css。当您在代码上设置更高的特定性时,它将覆盖较低的级别


考虑三个代码片段:

A:h1
B:#内容h1
C:
大字标题
A的特异性为0,0,0,1(一个元素),B的特异性为0,1,0,1(一个ID参考点和一个元素),C的特异性值为1,0,0,0,因为它是内联样式。 自从 0001 = 1 < 0101 = 101 < 1000, 第三条规则具有更高的特异性,因此将适用。如果第三条规则不存在,第二条规则就会被应用


参考文献


总的来说,这将取决于您如何处理它,但如果您能够掌握特定性,那么使用它实际上要好得多。

您能够编辑添加的css吗?如果是这样的话,那就很简单了。否则,您可能必须放置一个
,以隔离css。我曾考虑过使用
!重要
,但我同意这很烦人。我还考虑使用@tweray建议的
iframe
。我正在考虑编写自己的错误处理页面,以完全取代默认的ASP.NET页面。谢谢你的回答。
A: h1
B: #content h1
C: <div id="content">
<h1 style="color: #fff">Headline</h1>
</div>