0

我正在使用两个文件来显示我的网页,一个用于页眉和页脚(layout.htm)以及使用 smarty 的内容(content.htm)我包括文件例如:layout.htm

<html> 
   <head> 
      //here i am adding script and styles its common for all page 
   </head>
   <body>
   <div class="body">
      {include file=$INNER_PAGE}        
   </div>
</body>
</html>

我需要单独在内页中包含样式,该样式应该仅适用于该页面,因此我无法将其添加到 layout.htm 中。所以我将以下行包含在我的 content.htm 文件中

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

因为它显示错误所以我怎么能解决这个问题

谢谢你!

4

2 回答 2

1

只需在 layout.htm 模板的 head 标签内添加一个条件:

{if $extra_css}
<link rel="stylesheet" type="text/css" href="{$extra_css}"/>
{/if}

然后将您的php中的文件名分配给变量:

$smarty->assign('extra_css', 'prop_descr.css');

编辑:如果您需要使用多个,请使用一个数组并循环遍历它:

php:

$smarty->assign('extra_css', array('prop_descr.css','another.css','another_one.css'));

聪明的:

{foreach from=$extra_css item=css_path}
  <link rel="stylesheet" type="text/css" href="{$css_path}"/>
{/foreach}
于 2013-06-21T10:21:18.217 回答
0

根据 HTML 规范,您不能在link元素内部使用body元素。您应该安排事物,使link元素出现在head元素内部。在给定的上下文中,您可以通过省略div class=body标记(不应该需要它,尽管省略它可能需要更改您的 CSS 代码)以及</head>and<body>标记来实现这一点。不过,可能有更聪明的方法来实现目标。

于 2013-06-20T12:55:20.830 回答