0

したがって、独自のテンプレートを定義できるユーザーがいます。でも。これらのテンプレートが同じページに短期間存在する可能性があることが判明しています。つまり、ターゲットとするテンプレート 1 の css は、テンプレート 2 のh1すべての にも影響しますh1

さて、私が CSS を書いていたとしたら、次のようにコードを変更するのは簡単です。

h1 {
  font-family: 'Comic Sans';
}

これに:

#template-1 h1{
  font-family: 'Comic Sans';
}

ただし、私がやりたいことは、すべての CSS で読み取られ、上で概説したように、各 CSS 宣言の先頭にテンプレート ID を追加することです。各テンプレートにはスラッグがあるため、スラッグを ID としてテンプレートを div でラップします。

CSS正規表現を使用せずに、レールでセレクターにIDをプレフィックスする簡単な方法はありますか? もしそうなら、上記のプレフィックスを追加するときに知っておくべき落とし穴はありますか?

編集:

SCSSは進むべき道のようです。では、DBに保存されているものをscssとして処理するにはどうすればよいですか?

4

2 に答える 2

1

SCSS の場合:

#template-1 {
  h1 {
    font-family: 'Comic Sans';
  }

  ...
}

SASS の場合:

#template-1
  h1
    font-family: 'Comic Sans'

  ...
于 2013-05-27T15:01:07.820 に答える
-1

分かったと思う。css を動的に生成したいですか?

あなたはモデルのようなものを持っていますか?

class Template < ActiveRecord::Base
  attr_accessible :css
end

本番環境では、アセットはすでにプリコンパイルされています。デフォルトの Sass は、デフォルトでアセット グループにのみ含まれます。これは、プロジェクトをプッシュしてアセットをコンパイルした場合にのみ、heroku で実行されることを意味します。

アセット グループから sass-rails を移動することはできますが、データベースからのデータを処理する方法がわかりません。

コンテンツをcssとしてデータベースに保存し、ページのビューテンプレートに埋め込む可能性があります。

于 2013-05-27T16:40:38.220 に答える