ASP.Net,母版页:每页样式表

时间:2009-10-05 20:27:50

标签: asp.net html css master-pages

这些是我的假设,这些是正确的吗?

  1. 首选使用CSS的布局 使用表格。
  2. CSS应该在单独的文件中提取,而不是内联。
  3. 从位于site.master中的CSS导入(链接)CSS,因此所有.css都导入(并应用于)所有.aspx页面。
  4. 鉴于此,我有一个包含一个母版页和两个.aspx页的项目。每个页面都有一个id为“records”的表。

    问题:我可以为每个.aspx页面导入.css文件吗?

    在单个页面中范围 html元素是否有更好的方法?

5 个答案:

答案 0 :(得分:10)

除了实际呈现A表(例如表格数据,如电子表格或网格)之外,CSS优先于表格。虽然有一些奇怪的情况,表是跨浏览器实现某些效果的唯一方法。主要是 - 除非你不能,否则总是使用CSS。然后使用表格:)

对于您的第一个问题 - 当然您可以在单个页面上包含CSS文件。您甚至可以使用占位符来执行此操作:

.master:
<head>
    <link rel="stylesheet" type="text/css" href="global.css" />
    <asp:ContentPlaceHolder runat="server" id="stylesheet" />
</head>

.aspx:
<asp:Content runat="server" ContentPlaceHolderID="stylesheet">
    <link rel="stylesheet" type="text/css" href="page_specific.css" />
</asp:Content>

要将样式范围限定到页面级别,我经常在<body>标记上添加一个类:

<body class="contact-page">

然后在CSS中我可以定位该页面上应该不同的特定项目:

.contact-page .something h3 .more {style}

答案 1 :(得分:1)

如果是表格数据 - 使用表格,而不是CSS。 CSS用于整体页面布局和单个元素的样式 - 您通常希望在许多页面上保持一致。

当人们说“使用CSS代替表格”时,他们的意思是不使用表格来表示整个页面布局(例如页面上的菜单,页眉,页脚和内容所在的位置),而是将表用于实际表^^

答案 2 :(得分:1)

设置主题。作为主题一部分的css文件将自动导入。

因此,您的每个页面都有一个主题,您可以在内容页面的标记中指定。您定义的每个主题文件夹都有适当的样式表版本。如果您不想维护冗余的css声明,可以将它们分成另一个文件并将其链接到主题之外。

答案 3 :(得分:0)

如果您在母版页中留下文档头部的内容部分,则可以手动链接到不同的css文件;但是,为什么不为要以不同方式显示的项目指定不同的类和ID,并在同一个css文件中包含这些类和ID?

所以不要像:

<html>
<head>
<link to your css file />
</head>
<body>
<asp:ContentPlaceHolder id="content" runat="server" />
</body>
</html
在您的母版页文件上

,您可以这样做:

<html>
<head>
<asp:ContentPlaceHolder id="head" runat="server" />
</head>
<body>
<asp:ContentPlaceHolder id="content" runat="server" />
</body>
</html

然后将不同的css文件放在文档头部的新内容占位符中。

答案 4 :(得分:0)

让我们来看看你的假设。所有这些都通常正确,但值得仔细研究:

1)使用CSS的布局优于使用表。

排序。说它是语义布局与非语义布局会更准确,而CSS是完成语义布局的常用方法。不同之处在于,有时只使用语义上合适的结构才能实现所需的布局。我会为此吃它,但是当面对一堆不属于单个表的额外div标签之间的选择时,表可能是更好的选择。

2)CSS应该在一个单独的文件中提取,而不是内联

排序。 高级 CSS应该放在同一个文件中。但是,您并不一定希望整个站点的所有样式都进入同一个文件,因为这意味着始终可以使用只能在单个页面上使用的样式。而且您也不一定希望每个页面都必须下载主CSS文件和它自己的css文件,因为提高站点性能的方法之一是减少所需的总http请求数。所以你需要考虑一些平衡行为。

3)从位于site.master中的CSS导入(链接)CSS,因此所有.css都导入(并应用于)所有.aspx页面。

排序。 CSS文件通常链接到页面的head元素。放置内容的最简单方法是在母版页中对其进行硬编码。但是,如果您真的想要,可以从内容页面修改页面的head元素。