5

次のコードのスタイルシートがあります。

.author-name:before {
 content:"by: ";
}

これをYUICompressorで実行すると、次のようになります。

.author-name:before{content:"by:"}

意図した空白を一掃するため、これは問題です。YUICompressorの特別なコメントを次のように使用することを考えました。

.author-name:before {
  /*!YUI-Compressor */content: "by: ";
}

...役立つかもしれませんが、そうではないようです。さらに、コメント自体が消去されました。に基づく私の印象は、JavaScriptで始まるコメントは/*! 保持されるというものでしたが、実際にはそうではありません。

ビルドプロセスを後処理して最小化する以外に、これを行う方法はありますか?現在、バージョン2.3.5のYUIコンプレッサーを使用しており、フラグを使用して実行しています--charset utf8 -v -o

つまり、私の質問は、YUI Compressorにcontent:値のスペースを尊重させる方法、または縮小したくないブロックの前後にCSSコメントを追加する方法があるのでしょうか。

4

3 に答える 3

4

回避策として、スペース文字自体の代わりにユニコードエンティティを使用してみてください。

.author-name:before {content: "by:\00A0"; }

\00A0特に、ノーブレークスペースです。

于 2012-06-20T18:47:33.457 に答える
2

バージョン2.3.4と2.4.6を使用してcssを試しましたが、どちらも文字列内のスペースを保持しています。したがって、これは非常に特殊なバグ(バグトラッカーで何も見つからない)であるか、他の問題が発生しています。それがASCIIスペース文字と通常のアポストロフィ(Windowsのスマートなものなどではない)であると確信していますか?

同じcssでテストを実行すると、ASCII引用符がUnicode文字201C(左二重引用符)に置き換えられ、スペースが削除されます。理由は非常に単純です。パーサーはそれを文字列として認識しないため、空白を取り除きます。

とにかく、ここhttp://yuilibrary.com/download/yuicompressor/から最新バージョンを試してみることをお勧めします。現在のバージョンがパッケージマネージャーを使用してインストールされている場合:アーカイブの「ビルド」フォルダーから.jarファイルを抽出するだけです。

于 2012-06-21T15:42:13.640 に答える
1

コンテンツにマージンを追加できます。

.author-name:before {
    content: "by:";
    margin: 0 .35em 0 0;
}
于 2012-06-20T18:45:49.170 に答える