0

フロントエンドで変更された変数に応じて、ダウンロード可能な css ファイルを作成する必要があります。

注: これは短縮された例です。

CSS:

.color: red; width: incrementvalue();

HTML id には、幅を調整するための inout フィールドがあります。例:

HTML

<input type="text" value="3">

次に、入力の変更時に実行される関数があり、次のことを行います。

$('input').on ('change', function (){return $(this).val () * 2});

はい、上記の関数はjqueryにありますが、私は本当にphpを知らないので、これはphpで行うべきだと言いました。

何か案は?

4

4 に答える 4

2

CSS ヘッダーで始まる通常の PHP ファイルを作成できます。

<?php
header('Content-type: text/css');

その後、CSS コンテンツをエコーアウトするだけです。これを行う 1 つの方法は、テンプレート システムを使用したヒアドキュメント構文を使用することです。テンプレートは、区切り記号として「%%」パーセンテージ記号内に変数値を配置します。次に例を示します。

$css = <<<EOTAAA
* {
    margin: 0;
    padding: 0;
}
body {
    background-color: %bg_color%;
    background-image: url(images/bg.gif);
    background-repeat: repeat-x;
    font:  14px Arial, Helvetica, sans-serif;
}
div.my_div{
    color: red;
    width: %width%;
}

EOTAAA;

$search = array('%bg_color%', '%width%');
$width = width_function();//some function for determining width
$bg_color = bg_function();//some function for determining background color
$replace = array($bg_color, $width);
echo str_replace($search, $replace, $css);

ダウンロードリンク:

HTML で、リクエストを処理するファイルの URL を含む次のようなリンクを作成します。

<a href="HTTP://www.example.com/download.php">Get CSS</a>

次に、PHP ファイルで、ヘッダー情報を次のように変更します。

header("Content-Disposition: attachment; filename=\"custom.css\"");
header('Content-type: text/css');
header("Content-Type: application/force-download");
header("Connection: close");
于 2013-07-04T08:00:29.237 に答える
0

変更イベントをバインドしていることがわかります。これはおそらく、幅を動的に変更したいということです。PHP を使用してクライアント側でスクリプトを作成することはできません。PHP は、この場合は役に立たないサーバー言語です。何かを動的に変更したい場合は、クライアント スクリプトを使用する必要があります。jQuery (または Knockour.JS) は、おそらく最も簡単なソリューションです。

于 2013-07-04T07:56:58.013 に答える
0
  1. javascript で入力ボックスの幅を広げたほうがいいです。PHP を使用すると、ネットワーク負荷が確実に増加します。Web ブラウザは、入力ボックスが変更されるたびにリクエストを送信する必要があります。
  2. 本当にスタイルシートを更新する必要があり<link id='dynamic_stylesheet' rel='stylesheet' type='text/css' href='style.php?length=3' />、後で href を変更する場合は$('#dynamic_stylesheet'). この場合、別のセレクターの余分なスタイルをロードし、後で入力タグのクラスを変更することをお勧めします。
  3. jQuery イベント コールバック関数は、事前定義された動作をオーバーライドするかどうかを表すブール値を返す必要があります。
于 2013-07-04T08:05:28.707 に答える
0

これを試して、

<?php
   header("Content-type: text/css; charset: UTF-8");
   $my_width= incrementvalue();
?>

.phpClass{color: red; width: <?php echo $my_width;?>}

このファイルを名前を付けて保存style.php

使用法

<link rel='stylesheet' type='text/css' href='style.php' />

http://css-tricks.com/css-variables-with-php/を読む

于 2013-07-04T07:51:47.833 に答える