0

我想在 head 标签内附加 css 样式表,但被附加到 body 标签。这就是我所做的:我有一个控制器“国家”,动作为“索引”,我的视图是 index.phtml

index.phtml 包含:

<?php
 $this->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css')
             ->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojox/grid/resources/claroGrid.css');
 echo $this->headLink();

这会导致样式表被附加到 body 标记内。我只希望将这些样式表附加到此操作中。我不想在我的 layout.phtml 中包含这个样式表我该怎么做?

4

2 回答 2

3

您所做的是正确的,但是您只是在添加样式表之后在您的视图中回显 headLink() ,这是在错误位置输出链接的原因。更改您的代码,以便您拥有:

在 index.phtml 中:

$this->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css')
         ->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojox/grid/resources/claroGrid.css');

然后在 layout.phtml 中(在<head>您希望样式表链接出现的部分中):

echo $this->headLink();
于 2012-06-29T07:48:53.650 回答
2

您将其添加到不正确的位置。
如果您以这种方式从 .phtml 中添加样式表,那么您将位于文档的正文中。
要将样式表添加到单个页面的头部,请从控制器中的操作代码中添加样式表:

public function someAction() {
    $this->view->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css');
}

或者,如果您想为控制器的所有操作添加样式表,您可以在控制器的 init() 方法中使用相同的代码:

public function init() {
     $this->view->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css');    
}

如果需要覆盖当前样式表,可以使用 setStylesheet(),也可以使用 prependStylesheet() 或 appendStylesheet()。

祝你好运...

于 2012-06-29T07:31:02.180 回答