0

ヘッドタグ内にcssスタイルシートを追加したかったのですが、ボディタグに追加されます。これが私がしたことです:私はアクション「インデックス」を持つコントローラー「国」を持っており、私のビューは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 に答える