0

次のようないくつかの方法で CSS 構文を改善したいと考えています。

  • 変数の定義
    link-color1 = #fff
  • これはばかげているように見えますが、変数を使用した数学的計算:
    width:500-3-2
    width: container - inner - 3px;
  • スタイルの拡張
    #foo{background:#ddd;color:#eee;} #bar {@extend: #foo;color:#fff;}
  • クロスブラウザ機能の
    -moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;置き換え
    border-radius:3px;

これらは単なる例であり、私の考えですが、ライブラリは異なる場合があります

構文がcssに似ているファイルを解析し、有効なcssドキュメントを生成するphpライブラリを探しています。

これは、CSSファイルに php 構文を挿入したくないという点で重要です。理由は次のとおりです。

  • PHP は複雑で醜く見える
    #foo {color:<?php echo $color1; ?>;}
  • Notepad++ は完全に混乱します。私も

SASSはオフライン作業には非常に優れたソリューションですが、私はまだ PHP ソリューションを探しています。

  • 改善された css ファイルは、他の開発者が変更してテストできるように利用できます。より大きなコミュニティの場合、サーバーで使用される php-parser がより簡単な方法です。
  • PHP は、ファイルの変更日とハッシュコードに基づく単純なリビジョン システムを使用して、リソースを節約することもできます。

ここに私が書い た例があります: php parser at/css/index.php

利用方法:

@color1: #1a1a1a;
@color2: #444444;

div#container {background:@color1;}
div#inner {background:@color2;}

HTML リンク:

<link rel="stylesheet" type="text/css" href="/css/?main.css" />

これは色でのみ機能します。リストされたオプションのパーサーが必要です。

4

6 に答える 6

5

SASSを試してみてください。変数、数学計算、スタイルの継承、その他多くの機能をサポートしています。PHP には実装されていませんが、静的ファイルを生成します。

于 2011-05-22T21:13:19.130 に答える
4

CSS Crushは試しましたか?

于 2011-05-27T07:56:38.433 に答える
1

次のように、css を php に含めることができます。

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

style.php で次のことを行います。

header("Content-Type: text/css");

この時点で、php のすべての機能を使用して、好きなことを行うことができます。

<?php

 $rules = 'font-size:11px;padding:5px;';

?>

td { <?php echo $rules; ?> }

補遺

継承:

<?php

   $parent=array( 'td' => 'color:;padding;etc;'
                  'p' => 'other rules'
                   //> other rules
               );
?>

.inheritance {
    <?php echo $parent['td']; ?>
   //> other rules here
 }
于 2011-05-22T21:20:23.343 に答える
1

私はこれが良い考えだとは思いません、特に本番環境ではそうですが、これを行うことを主張する場合は、SASS をインストールし、passthru() を使用して php から実行することをお勧めします。

http://sass-lang.com/

http://www.php.net/manual/en/function.passthru.php

このような

<?php
$css_path = '/';  // location of your real css files
$sass_cmd = 'sass -f';  // sass cmd
passthru($sass_cmd . $css_path . $_GET['cssfile'];
?>

経由で呼び出されます

cssparse.php?cssfile=xyz.css

凝ったものにしたい場合は、書き換えルールを使用して、すべての *.css リクエストを PHP スクリプトに通すことができます。

例えば:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.css$
RewriteRule   ^(.*\.css)$  cssparse.php?cssfile=$1

そうすれば、ブラウザで /example.css をリクエストすると、SASS を呼び出して出力を返す /cssparse.php?cssfile=example.css として書き換えられます。

于 2011-05-25T18:31:38.897 に答える
0

少ないPhp

@Kru のおかげで、非常に優れた賢い CSS パーサーであるLess.jsを見つけましたが、私が言ったように、最善の解決策は PHP です。フォーラムとグーグルで少し検索した後、 Less.jsのPHPポートであるLessPhpを見つけました

ドキュメントはここにあります。

LessPhp もgithubにあります。

于 2011-05-27T10:14:42.880 に答える
0

あなたがやりたいことは、良い考えではありません。ユーザーが CSS ファイルをロードするたびに、「改善された」バージョンから CSS ファイルを生成する PHP 関数を最初に実行する必要があります。たとえば、ユーザーがカスタム レイアウトを作成できるソーシャル ネットワーキング サイトでのみ必要です。次に、カスタム スタイルをデータベースからロードし、PHP を使用して CSS ファイルに挿入する必要があります。

この機能のない Web サイトの場合、CSS が解析された後、違いはありません。CSS ファイルの作成は、より簡単/効率的でした。

また、CSS が PHP パーサーを通過する必要がある場合、CSS をオフラインで変更することはできません。

于 2011-05-22T21:46:19.893 に答える