5

CSSファイルを読み取れるようにし、特定のセレクターのすべての宣言を文字列に抽出できるようにしたい。たとえば、次のスタイルシートがあるとします。

h1 {
  font-size: 15px;
  font-weight: bold;
  font-style: italic;
  font-family: Verdana, Arial, Helvetica, sans-serif;
}

div.item {
  font-size: 12px;
  border:1px solid #EEE;
}

次のようなdiv.itemを呼び出して取得できるようにしたいです。

$css->getSelector('div.item');

これは私に次のような文字列を与えるはずです:

font-size:12px;border:1px solid #EEE;

私は周りを見回していますが、それを正確に実行できるパーサーを見つけることができません。何か案は?

参考までに:CSSからセレクターを変換し、スタイルを動的に電子メールメッセージのHTML要素に埋め込むことができるようにするためにこれが必要です。

ソリューション の編集:私は自分の大まかなソリューションを考え出し、探していたものを実行するためのクラスを作成しました。以下の私自身の答えを参照してください。

4

2 に答える 2

2

これがあなたが探しているものだと思います:

http://classes.verkoyen.eu/css_to_inline_styles

CssToInlineStyles は、HTML ページ/ファイルをインライン スタイルを持つ HTML ページ/ファイルに変換できるようにするクラスです。これは、メールを送信するときに非常に便利です。私は今それを使用しており、正常に動作しています。

いくつかのメソッドを使用した例:

$html = file_get_contents('blue.html');

// 私のスタイルは html 内に保存されます

$cssConverter = new CSSToInlineStyles();
$cssConverter->setCleanup(true);
$cssConverter->setHTML($html);
$cssConverter->convert(true);
$cssConverter->setUseInlineStylesBlock(true);

$new_html = $cssConverter->convert();
于 2011-12-14T16:13:49.360 に答える