2009-04-30 15 views
4

at-rulesでは、at-ruleイベント(印刷、モバイルデバイスなど)中に要素のルールセットを作成することは可能ですが、特定のセレクタについてはどうでしょうか?CSSセレクタルール - セレクタ内のすべての要素のルールセット?

私は大きなサイトのサブページで作業しており、自分のページにマスタースタイルシートを使用する必要があります。スタイル・ルールは、マスター・スタイル・シートからルールによって切り詰められることがあります。これを克服するために、私はCSSをより具体的にするために、すべてのルールの前に "#mypage #content blah blah"を追加する必要があります。それは非常に厄介になります。私が作る任意のルールは私が働いているページのセクションのIDに含まれるように

@#mypage { 
     div { 
      border: 1px solid #000; 
      } 
     div p { 
      color: #00f; 
      } 
     } 

:私は何を好むことのようなものです。

私のページがテンプレートフレーム内にあるので(私が理解する限り)@namespaceを使用することはできません(したがって、マスタースタイルシートが必要です) namespace(my-page-url)私のスタイルシートはマスタースタイルシートを上書きします。

は、私は、単純な何かが足りないのですか?


明確化:

申し訳ありませんが、私は単純に滞在する私の試みで、私はあまりにも漠然とした推測...

私はより多くの内側に配置されるページのコンテンツを開発していますグローバルスタイルシートを持つ一般的なテンプレート(マストヘッド、サイドバーナビゲーションなど)であり、そのコンテンツについては何も制御できません。

私は自分のセクションのスタイルシートでいくつかの自由を持っています。自分のルールが間違ってグローバルスタイルシートを上書きすることを避け、グローバルスタイルシートがスタイルシートを上書きするのを避けるために、本当に長いセレクタをルールに使用する必要がないようにしたい。私は

「すべてのテーブルが黒の境界線を持っている」

を言いたい場合たとえば、私はサイドバーにいくつかのテーブルの周りに黒い境界線を置く危険性があります。しかし、私が言っている場合

これが唯一の限り、彼らはより具体的なルールを持っていないとして働いてい

「のdiv #content内のすべてのテーブルには、黒の境界線を持っています」。

今、各ルールが機能し、自分のセクションのみが確実に機能するように、長いルールのセレクタを追加できますが、それは本当に魅力的で楽しいものではありません。私は一度だけ私の特異性を宣言する必要があることので

#content { 

    //and place all of my style rules inside of that: 



p { 
    border: pink; 
    } 

と:私はメインのルールを持つことができるように、私は、私が巣可能性上記の私の例のように、より大きなルールの私のルールのすべての内部、ことを期待していましたその主なルール内のすべてのルールをカバーします。

+0

"テンプレートフレーム"とは何ですか、私はこれまでにこの用語が使われたことは一度も聞いたことがなく、簡単にはグーグルではありません。 – cgp

答えて

1

は、法案に合う唯一のレベルの深さである、と私は見てきたほとんどのウェブサイトの率直典型的であり、使用:

#content div { 
    ... your rules ... 
} 

ことでしょうコンテンツのidを持つ要素の下にあるだけで効果のdiv

手立てように「グループ」これらのルールはありません。:

これは素晴らしいことですが、悲しいかな、それは書かれた方法ではありません。

+0

私は少なくとも可能な限り、重要なルールから遠ざかることに同意します。しかし、残念なことに私の質問には答えられていません。私はすべてのルールの前にidセレクタを置くことができることを知っています。私が思っているのは、idセレクタをルールのグループの前に置いて、それらのルールだけがそれらのルールに適用されるようにすることです。 – Anthony

+0

ああ、私はあなたが質問を更新したのを見て、私は更新を読むでしょう。 – cgp

+0

だから、その解決策があなたの望むものであるのか、なぜCSSルールがそれよりも具体的でなければならないのかを教えてください。 – cgp

0

CSSエンジンを使用してこれを行う方法があります。 less(node.jsライブラリ)。 less

#header h1 { 
    font-size: 26px; 
    font-weight: bold; 
} 
#header p { 
    font-size: 12px; 
} 
#header p a { 
    text-decoration: none; 
} 
#header p a:hover { 
    border-width: 1px; 
} 

#header { 
    h1 { 
    font-size: 26px; 
    font-weight: bold; 
    } 
    p { font-size: 12px; 
    a { text-decoration: none; 
     &:hover { border-width: 1px } 
    } 
    } 
} 

とコマンドラインユーティリティlessを使用して、このコンパイルすることができます:lesscssのウェブサイト(と個人的な経験)あなたはこのような巣のCSSルールが可能によると

また、フォントサイズなどの変数を持っているので、変更がずっと速くなります。

関連する問題