【问题标题】:what is the best way to include different stylesheet in different pages?在不同页面中包含不同样式表的最佳方法是什么?
【发布时间】:2012-09-21 22:04:48
【问题描述】:

在索引页面是每个请求的根的情况下。并根据 URL 提供不同的页面。

现在我们为 CSS 文件使用与要提供的页面相同的名称。

但是,如果我们想对一组页面使用相同的 CSS,或者我们不希望页面使用特殊的 CSS,这将失败,普通 CSS 就足够了

数组也是一种解决方案,但是当网站页面增加时它似乎无法管理

【问题讨论】:

  • 同理,根据您服务不同页面的 URL,在您的视图中添加代码以根据不同的参数修改 CSS。这将需要某种映射,无论是数组还是您的数据库。
  • 正如我提到的数组在一段时间后变得无法管理
  • 你必须有某种形式的映射,因为页面不能仅仅猜测使用什么样式表。 . .现在映射可能会向 url 添加一个参数(例如 style=a、style=b 等),或者映射可以通过 url 的路径等。它不必是 1:1 映射每个页面的样式表。

标签: php html css include


【解决方案1】:

LUT 将是最快的方式,尽管我认为您需要认真地重新设计您的应用程序。

无论如何,在您的索引页面上,您有一些变量 $pageName 表示您要加载哪个页面。你可以这样做。

$myPages = array(
   "somePage" => array("style_base.css", "custom_style1.css"),
   "otherPage" => array("style_base.css", "awesome_style.css")
   // more pages here
);

foreach( $myPages[$pageName] as $pageStyleSheet ) {
    echo '<link href="' . $pageStyleSheet . '" rel="stylesheet" type="text/css">' . PHP_EOL;
}

让您知道这是超级 hacky,如果我必须维护您的应用程序,我可能想杀了您。但这是基于您描述的架构的最快方式。

更新

另一个想法,但是如果您根据页面名称为每个页面保留样式表,并为要重用的工作表使用@include。所以对于 somePage.css 你可以有

@include('otherPage.css')

这样您可以继续反映页面名称,但仍然可以重复使用样式。

【讨论】:

  • 不是我用过的最好方法,现在我们在数组和相同页面名称样式表之间使用了一些东西
  • @Champ 是的,我认为您正在使用数据反射将 pageName 解析为您的样式表名称。但就像你说的,如果你想重用样式表,你就有问题了。至少你的LUT是集中的,你可以轻松地包含任何你想要的样式。但它超级 hacky,所以取决于你的需求
【解决方案2】:

@Champ - 您可以为整个网站使用 CSS 文件 - 使用类等。与图像相比,这些文件非常小。我们说的是 ASCII 码和几十千字节(最多)——而且可以缓存!

编辑

使用额外的服务器负载而不是 PHP 来确定 CSS 内容以获得更好的效果

【讨论】:

  • 尺寸不是唯一的问题。如何更新或添加新页面
  • 人民维护网站经验不多,更新定期
  • @champ - 大小如果不是问题。只需插入标识具有特定格式的特定页面。否则使用 CMS。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-24
  • 2020-08-09
  • 1970-01-01
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多