0

私はこれを行うための良い方法に頭を悩ませようとしてきましたが、これまでのところ空っぽになり、いくつかのガイダンスが必要でした.

基本的に、私が現時点で持っているのは、ユーザーが選択できるサイト用に 10 の事前定義されたスタイルを提供するスタイル セレクターです。それらのほとんどはグロテスクであり、概念の証明にすぎません。

これは PHP と mysql によって制御されます。ユーザーがログインし、デフォルト以外のスタイルを選択すると、DB のユーザー レコードに対して追加されます。サイトが更新され、選択したスタイルが読み込まれます。

それは非常にうまく機能しますが、今は細かい制御を試してみたいと思っています。たとえば、ヘッダーの背景色、見出しのテキストの色、サブ見出しの色、およびいくつかのフォント サイズをユーザーが選択できるようにしたいと考えています。

それはかなり些細なことであり、それを実装する方法が見つからない場合は、それで問題ありません。

私が最初に考えたのは、サイズのカスタマイズ可能な部分 (フォント サイズ、色など) ごとに列を持つテーブルを作成することでした。テーブルには、各ユーザーのレコードがあります。次に、インターフェイスを使用して必要なものを選択し、テーブルに追加します。

私の問題は、DB から取得した値をどうするかということでした。それらをCSSファイルに直接挿入したかったのですが、サーバー構成の変更がなければこれは不可能だと思います。

これを行うための最良の方法について何か提案はありますか?

よろしくエド

4

3 に答える 3

2

私にとって最も明白なオプションは、その場でスタイルシートを生成する PHP スクリプトを作成することです。これは、すべてのユーザー固有のスタイルを保持する特定のユーザーのレコードがテーブルにある場合にのみ呼び出されます。

たとえば、あなたの間に<head></head>置くことができます:

<?php if($user_has_style): ?><link rel="stylesheet" href="user_style.php" /><? endif; ?>

user_style.phpこれにより、スクリプトが呼び出され、必要なスタイルシートが生成されます。PHP スタイルシートの出力に、次の正しいヘッダーを追加する必要があります。

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

この方法を選択した場合、このウェブサイトが役に立つかもしれません: http://mou.me.uk/2008/08/03/generating-dynamic-stylesheets-on-the-fly-using-php/

于 2012-08-01T09:28:42.417 に答える
1

これを行うにはいくつかの方法があります。

HTML タグの属性で CSS プロパティを直接指定することもできますstyleが、コンテンツの途中に散在する領域にコードを挿入する必要があり、メンテナンスが困難になる可能性があるため、すぐに面倒になる可能性があります。

<style></style>セクション内のタグの間にすべてのスタイル定義を配置することもできます<head>。これにより、コンテンツとプレゼンテーションを混在させるという欠点が部分的に解消されます。

最後に、データベース情報を使用して PHP で CSS ファイルを作成することもできます。スタイルシートの名前を.phpに変更し、これをファイルの先頭に置きます

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

これは、生成するコンテンツを CSS ファイルとして送信する必要があることを PHP に伝え、ユーザーのブラウザがそれがスタイルシートであることを認識できるようにします。あとは、HTML コンテンツを保持する PHP スクリプトで「変更可能な」スタイルシートを正しく参照するだけです。

<link href="../layout/css/something.php" 
    rel="stylesheet" type="text/css" media="all" />

これにより、「CSS」ファイルで次のようなものを使用できるようになります。

body
{
  background-color:
  <?php echo $userstyle['color']; // Retrieved from database somewhere above ?>;
}

ただし、パフォーマンスを重視する場合は、キャッシュ コントロールヘッダーを使用して後者のソリューションを改善し、ユーザーが Web サイトのリンクをたどるたびに CSS ファイルをリロードしないようにする必要があります。

于 2012-08-01T09:32:44.500 に答える
0

CSS を html ファイルに入れる方法は 2 つあります。タグの下のヘッダーにコードを配置するか、<style>.css のような特定のアイテムに css を配置することができます<body style="background-image:url('file.png')">。どちらの方法でも、.html ファイルから分離された css ファイルは必要ありません:)

于 2012-08-01T08:58:04.053 に答える