ホームページ >バックエンド開発 >PHPチュートリアル >自動CSS3プレフィックスとコンプレッサー
<span>_border-radius: 10px;</span>コードは、次のようなプロパティの完全なリストを生成します。
<span>-o-border-radius: 10px; </span><span>-moz-border-radius: 10px; </span><span>-webkit-border-radius: 10px; </span><span>border-radius: 10px;</span>次に、HTMLでは、スタイルをインポートするためにこのようなリンクが書かれています。
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="css/css.php?f=css_file1|css_file2|css_file3"</span>></span></span>単一のリンク要素を使用すると、3つのCSSファイルが1つとしてロードされます。 css.phpスクリプトは、リストされているファイル(css_file1.css、css_file2.css、css_file3.css)で読み取り、それらを結合し、単一のファイルとして返します。 使いやすく見えますよね?さらに、さらにADOを使用して、いくつかのコードを書き始めましょう!
<?php $files = explode("|", $_GET["f"]); $contents = ""; foreach ($files as $file) { $contents .= file_get_contents($file . ".css"); } preg_match_all('/_[a-zA-Z-]+:s.+;|[a-zA-Z-]+:s_[a-zA-Z].+;/', $contents, $matches, PREG_PATTERN_ORDER); $prefixes = array("-o-", "-moz-", "-webkit-", ""); foreach ($matches[0] as $property) { $result = ""; foreach ($prefixes as $prefix) { $result .= str_replace("_", $prefix, $property); } $contents = str_replace($property, $result, $contents); } $contents = preg_replace('/(/*).*?(*/)/s', '', $contents); $contents = preg_replace(array('/s+([^w'"]+)s+/', '/([^w'"])s+/'), '', $contents); header("Content-Type: text/css"); header("Expires: " . gmdate('D, d M Y H:i:s GMT', time() + 3600)); echo $contents;コードは、最初にURLパラメーターから文字列として処理するCSSファイルのリストを受信します($ _get ["f"]としてphpでアクセス可能)。各ファイルは、パイプキャラクターで区切られています。 explode()関数は、ファイル名の配列を返すパイプ上に文字列を分割します。 関数file_get_contents() 変数$内容に1つずつ追加された各ファイルの内容を取得します。 CSSファイルの内容が取得された後、次のステップは、アンダースコアから始まるCSSプロパティを見つけて、ブラウザー固有のプレフィックスプロパティに置き換えることです。関数preg_match_all()は、正規表現に一致するテキスト内のすべての部分を見つけ、マッチを配列として$マッチ[0]に配置します。 PHPマニュアルの関数に関する明確な説明を読むことができるため、$ Matchesに配列インデックス0がある理由は説明しません。むしろ、私たちのプログラムの流れを説明することに集中したいと思います。 この画像は、正規表現のパターンを説明しています。
<span>_border-radius: 10px;</span>3番目のファイルはfooter.cssです:
<span>-o-border-radius: 10px; </span><span>-moz-border-radius: 10px; </span><span>-webkit-border-radius: 10px; </span><span>border-radius: 10px;</span>CSS3プロパティがどのように書かれているかを見てください。ブラウザ固有のプレフィックスを持つものは、一度だけ指定され、前にアンダースコアが付いています。 次に、スタイルを使用するファイルindex.htmlを作成します。
<span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="css/css.php?f=css_file1|css_file2|css_file3"</span>></span></span>リンクタグのHREF属性を見てください。すべてのCSSファイル名はパイプで区切られています。
<?php $files = explode("|", $_GET["f"]); $contents = ""; foreach ($files as $file) { $contents .= file_get_contents($file . ".css"); } preg_match_all('/_[a-zA-Z-]+:s.+;|[a-zA-Z-]+:s_[a-zA-Z].+;/', $contents, $matches, PREG_PATTERN_ORDER); $prefixes = array("-o-", "-moz-", "-webkit-", ""); foreach ($matches[0] as $property) { $result = ""; foreach ($prefixes as $prefix) { $result .= str_replace("_", $prefix, $property); } $contents = str_replace($property, $result, $contents); } $contents = preg_replace('/(/*).*?(*/)/s', '', $contents); $contents = preg_replace(array('/s+([^w'"]+)s+/', '/([^w'"])s+/'), '', $contents); header("Content-Type: text/css"); header("Expires: " . gmdate('D, d M Y H:i:s GMT', time() + 3600)); echo $contents;結論
CSS3プレフィックス装置とコンプレッサーを使用する必要があるのはなぜですか? CSSプロパティがさまざまなブラウザで動作し、CSSファイルのサイズを削減し、Webサイトの読み込み速度を改善することが保証されます。また、ベンダーのプレフィックスを手動で追加してCSSファイルを圧縮する時間と労力を節約します。
CSS3プレフィックスとコンプレッサーを使用するには、CSSファイルをツールに入力する必要があります。その後、必要なベンダーのプレフィックスを自動的に追加し、ファイルを圧縮します。一部のツールでは、模倣や最適化などの追加機能も提供しています。 CSS3プレフィックスおよびコンプレッサーツールを選択するときは、CSSの使用と互換性、互換性、および範囲の特徴を使用する要因を考慮してください。また、ツールのパフォーマンスと信頼性を考慮する必要があります。優れたCSS3プレフィックスおよびコンプレッサーツールは何ですか?これらのツールはさまざまな機能を提供し、さまざまなCSS前処理者と一緒に使用できます。
すべてのプロジェクトにCSS3プレフィキサーとコンプレッサーを使用する必要があるかどうかは、プロジェクトの特定の要件に依存します。ブラウザの互換性とパフォーマンスが重要な考慮事項である場合、CSS3プレフィックスとコンプレッサーを使用することは有益です。
以上が自動CSS3プレフィックスとコンプレッサーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。