2

我用 ASP.NET 开发网站已经有一段时间了。当我第一次了解主题和皮肤如何在 ASP.NET 中工作时,我发现它非常简单易用。

但后来,我开始发现 App_Themes 方法很烦人,而且我们放入其中的 CSS 一点也不灵活。我错过了什么吗?

  1. CSS 文件会自动添加到使用主题的 aspx 页面中:

    当我第一次开始 Web 开发时,我曾经发现这很有帮助。但后来,当我对 CSS 了解得越来越多时,我开始觉得这真的很令人不安。有时,有些页面,添加某个 CSS 文件是没有用的。

    最糟糕的是,它总是按字母顺序添加它们,因此您无法控制哪个文件是第一个。如果您已经完成了某种“重置”CSS 文件,这一点尤其重要。因此,命名文件并不总是您希望它们成为的名称,因为您希望重置的 CSS 文件按字母顺序排列在顶部。

    我确实意识到解决方案是将所有 CSS 代码放在一个文件中(这实际上更适合生产环境)。但这非常不灵活,并且会使 CSS 代码的管理变得非常困难。

  2. 网址重写

    这是一个主要问题,因为添加到网站的 CSS 文件是真正的 aspx 页面的相对路径,而不是重写后的 URL。

    例如,如果此 URL:http://www.example.com/date/category/item.aspx是从http://www.example.com/items.aspx?id=item重写的。该页面内的 CSS 文件的链接如下所示:

    <link href="App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    它应该在哪里:<link href="../../App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    或者简单地说: <link href="http://www.example.com/App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    从而破坏了网页设计,因为浏览器将找不到 CSS 文件。

这是我对主题的两个主要问题。因此,我要问的是,放弃 App_Themes 方法并切换回“老派” CSS 设计(即创建一个普通文件夹,将我的 CSS 文件放入其中,然后手动添加这些 CSS 的链接到我的页)?有什么我在这里缺少的功能吗?

4

3 回答 3

2

有关两种方法之间的差异,请参阅MSDN - 本质上,使用主题,您可以设置控件的任何属性,而不是仅控制样式。如果您仅将主题用于样式目的,那么您将不会丢失任何 CSS 方式。我个人发现使用 CSS 提供比使用内置主题更好的控制。

于 2011-04-20T12:47:52.920 回答
1

我发现这两种方法的混合效果最好。当您考虑使用主题时,您应该只创建 css 文件、图像、皮肤文件来控制不同主题之间网站的外观和感觉(更改颜色或徽标等)。

为了确保站点结构正确,我总是有一个 base.css、一个 reset.css 和主题目录之外的任何其他结构 css 文件,它们位于站点主要部分下的它自己的文件夹中(/includes/例如 css/ 和 /includes/js/ 用于我的 javascript)。

通过这种方式,您可以确保网站在结构上保持一致,并且您始终可以将这些 css 文件包含在母版页中,然后应用主题来更改外观和感觉。

至于 URL 重写,我的链接引用始终以 / 开头,以确保服务器知道始终从服务器的根目录开始以查找必要的文件。所以我的结构 css 文件的链接总是:

<link href="/includes/css/base.css" type="text/css" rel="stylesheet" />

HTH。

于 2011-04-20T12:56:04.257 回答
0

我认为最好有一个单独的样式表,仅用于维护目的和递归性。如果您想重复一些样式,您可以在需要时随时轻松访问它,而不是为每个样式对象重复代码。如果要更改多个对象的样式,只需在样式表上更改它,它就会影响所有对象!

我希望这有帮助。

于 2011-04-20T12:29:51.397 回答