我有一个母版页,其中包含所有页面的页眉和页脚。 它调用一个css文件( master.css ),其中包含页面样式: page1.aspx,page2.aspx,page3.aspx。
但是,我现在只为page1.aspx提供了另一个css文件( firstpage.css )。这必须覆盖master.css(chaos !!)中的page1.aspx的样式
有没有一种工具能够为我做这种比较? - 在给定的2页中搜索相似的标签并合并它们
我可以为master1.aspx以外的所有其他页面调用master.css吗?
答案 0 :(得分:1)
如果你在master.css之后包含firstpage.css,并且你的css结构合理,那么firstpage.css的内容将覆盖master.css的内容。
如果master.css中有非常具体的规则,则需要确保firstpage.css中相同规则的选择器特异性值更高。你可以在这里阅读更多: http://www.w3.org/TR/css3-selectors/#specificity http://css-tricks.com/specifics-on-css-specificity/
作为最后的手段,您可以在页面特定规则中使用!important。然而,这可能会让你在未来更加痛苦。
答案 1 :(得分:0)
如果您网站上的页面不多,您可以为css文件定义内容区域,并在每个页面上指定要引用的样式。如果你有100页,这可能是乏味的。
如果此页面非常不同,您可以考虑不使用母版页。
另外,考虑到样式可以被覆盖,因此如果样式被正确定义,同一页面上的两个css文件都可以提供所需的结果。
答案 2 :(得分:0)
如果您不想使用site.css
中的任何样式,您可以这样做。在Site.master
您有当前site.css
引用的地方,请将其替换为:(您需要更改about.aspx
)
注意 - 这可能很糟糕,因为如果您完全删除对site.css
的引用然后决定需要某些样式,并且必须添加,则可能最终会出现CSS重复他们到新的样式表。
<%
string sPagePath = System.Web.HttpContext.Current.Request.Url.AbsolutePath;
System.IO.FileInfo oFileInfo = new System.IO.FileInfo(sPagePath);
string sPageName = oFileInfo.Name.ToLower();
if (sPageName == "about.aspx") { %>
<link href="~/Styles/about.css" rel="stylesheet" type="text/css" />
<% } else { %>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<% } %>
从 - https://stackoverflow.com/a/1833313/2470724
获取当前页面名称代码修改强>
它还取决于您要覆盖哪种样式,如果是文本等,那么您只需在身体内容中添加class
,然后相应地设置每个页面的样式。
答案 3 :(得分:0)
级联样式表旨在以级联方式工作。但是,您可以在母版页中创建具有默认内容的内容占位符。这可以包含master.css,您可以使用firstpage.css在页面中覆盖它。我个人会为网站中的所有页面设计一个通用的css文件,然后有一个或多个“页面特定”的css文件,可以覆盖和添加新的样式。
答案 4 :(得分:0)
您有以下选择:
答案 5 :(得分:0)
“StyleSheetTheme”正是您要找的。利用ASP.Net的Theming支持,而不是将样式表分别应用于所有页面。如果您希望以不同方式设置样式,请在其页面声明中禁用“主题”。
页面声明中的 EnableTheming="true" / "false"
styleSheetTheme="theme_folder_name"
元素内的和"pages"