0

我有一个母版页,其中包含所有页面的页眉和页脚。它调用包含页面样式的 css 文件 ( master.css ): page1.aspx、page2.aspx、page3.aspx。

但是,我现在有一个单独的 page1.aspx 的 css 文件(firstpage.css)。这必须覆盖 master.css 中 page1.aspx 的样式(混乱!!)

有没有一种工具可以为我进行这种比较?- 在给定的 2 个页面中搜索相似的标签并将它们合并

除了 page1.aspx 之外,我可以为所有其他页面调用 master.css 吗?

4

6 回答 6

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。然而,这可能会在未来给你带来更多的痛苦。

于 2013-06-25T12:53:44.830 回答
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获取当前页面名称代码

编辑

它还取决于您要覆盖的样式类型,如果是文本等,那么您只需将 a 添加class到您的正文内容中,然后相应地设置每个页面的样式。

于 2013-06-25T12:56:47.640 回答
0

如果您的站点上的页面不多,您可以为 css 文件定义一个内容区域,并在每个页面上指定要引用的样式。但是,如果您有 100 页,这可能会很乏味。

如果此页面非常不同,您可以考虑不使用母版页。

此外,考虑到样式可以被覆盖,因此如果样式定义正确,则将两个 css 文件放在同一页面上可以提供所需的结果。

于 2013-06-25T12:51:35.383 回答
0

“StyleSheetTheme”是您正在寻找的。利用 ASP.Net 的主题支持,而不是将样式表单独应用于所有页面。如果您希望某个页面具有不同的样式,请在其页面声明中禁用“主题”。

EnableTheming="true" / "false"在页面声明中

和web.config 的styleSheetTheme="theme_folder_name"内部"pages"元素

于 2013-07-04T16:36:07.407 回答
0

级联样式表旨在以级联方式工作。但是,您可以在母版页中使用默认内容创建内容占位符。这可以包含您可以在页面中使用 firstpage.css 覆盖的 master.css。就我个人而言,我会为站点内的所有页面设计一个通用 css 文件,然后拥有一个或多个“特定于页面”的 css 文件,这些文件可以覆盖和添加新样式。

于 2013-06-25T12:57:55.477 回答
0

您有以下选择:

  1. 最好的方法是从您想要复制的主 css 中提取样式定义并将它们放在单独的样式表中。然后,您可以在头部执行条件语句以将相关样式表应用于适当的页面。
  2. 您还可以将要应用的重复样式表放在头部的主 css 之后或页面本身(显然在头部之后),这样样式就会被覆盖。您应该注意,这可能不适用于所有浏览器,特别是 IE。
  3. 您可以在您希望覆盖的每种样式旁边添加 !important 但这将是很多工作,并且您可能会再次遇到一些跨浏览器兼容性(读取 IE)问题。
  4. 您拥有的最后一个选项是在加载文档后使用 javascript/jquery 将样式应用于元素。这肯定会奏效,但这又是一项繁重的工作。
  5. 阅读选项 1。
于 2013-06-25T13:21:30.917 回答