質問するログイン新規登録

回答編集履歴

1

例の追記

2017/05/10 12:10

投稿

coba-coba
coba-coba

スコア1409

answer CHANGED
@@ -7,4 +7,49 @@
7
7
  別途CSSを生成するアクション(メソッド)を用意して、そのURLを読み込むだけなので、CSSをHTMLに上に書くこともありません。
8
8
  CSSやHTMLを生成するときも、テンプレートを用意しておけば、クライアントが入力した値をそのテンプレートに入れるだけです。
9
9
 
10
- 動的なプレビューが必要な場合も、JavaScriptでCSSを追加・削除しても一時的なものなので、気にする必要はありません。
10
+ 動的なプレビューが必要な場合も、JavaScriptでCSSを追加・削除しても一時的なものなので、気にする必要はありません。
11
+
12
+
13
+ ---
14
+ 以下の内容を書いて、そのCSSを読み込みたいページで```<link rel="stylesheet" href="http://example.com/hoges/style"/>```を書くとCSSが読み込まれます。
15
+
16
+
17
+ ```PHP
18
+ // コントローラー
19
+ // src/Controller/HogesController.php
20
+ public function style()
21
+ {
22
+ // レイアウトの設定(CakePHP3でもバージョンによって書き方が変わる)
23
+ // src/Template/Layoutの.ctpファイルを選択
24
+ // デフォルトは"default"
25
+ $this->viewBuilder()->setLayout('css');
26
+ $this->viewBuilder()->layout('css'); // 3.4 以前
27
+ $this->layout = 'css'; // 3.1 以前
28
+
29
+ // CSS用にヘッダーを設定
30
+ $this->response->header('Content-Type', 'text/css');
31
+
32
+ // ビュー(style.ctp)に変数$sizeを渡す
33
+ $size = 400;
34
+ $this->set(compact('size'));
35
+ }
36
+ ```
37
+
38
+ ```PHP
39
+ // ビュー
40
+ // src/Template/Hoges/style.ctp
41
+ h3 {
42
+ font-size: <?=$size?>%;
43
+ }
44
+ ```
45
+
46
+ ```PHP
47
+ // src/Template/Layout/css.ctp
48
+ // このレイアウトファイルはコントローラーで指定している
49
+ // デフォルトはdefault.ctp
50
+
51
+ @charset "utf-8";
52
+
53
+ // ここにビューの内容が出力される
54
+ <?= $this->fetch('content') ?>
55
+ ```