2012-02-24 13 views
0

私のWebページにCSSファイルを含める必要がありますが、特定のdiv内でのみ一致する必要があるという問題があります。例:CSSファイルを特定のIDと一致させるためのツール

通常のCSSファイル:

#main td { 
padding:20px; 
} 

追加のCSSファイル:

.myclass td { 
padding:0px; 
} 

HTML:

<div id="main"> 
    <table><tr><td>TD with padding 20px</td></tr></table> 
    <div id="inside" class="myclass"> 
     <table><tr><td>TD which should have with padding 0px, but get padding 20px; </td></tr></table> 
</div> 

これだけ簡略化した例がある - 実際に、追加のCSSファイルは非常に長く、複雑です(私はtinymceを含める必要がありますが、ここのcss定義はしたがって、 "通常の" CSSファイルでは使用できません)。

私のQ:特殊なIDでのみ動作するように追加のcssファイルを変更できるツール(おそらくPHP?)はありますか?有効な構文で

#inside .myclass td { 
    padding:0px; 
    } 

そしてもちろん出力のCSSファイル:例では、それはへの追加のCSSファイル内のすべてのエントリを変更する必要があります。

+0

CSSファイルを変更できないのはなぜですか? –

+0

おそらく彼は大きなCSSファイルを持っています:) – tftd

+0

;-)はい、それは大きなものです。サードパーティーなので、2,3ヶ月ごとに更新/変更されます。 – Werner

答えて

1

SASSを使用できます。それは、代わりのPHP、Rubyで書かれているが、それは簡単にあなたがネストされたルールを使用してやりたいことができます:あなたが使用することができ、特定のファイル内のすべてのセレクタをプレフィックスに

#inside .myclass td { 
    padding: 0; 
} 

#inside{ 
    .myclass td { 
    padding: 0; 
    } 
} 

はにコンパイルされます次の例のようにnested import

/* File vendor.scss */ 
.myclass td { 
    padding: 0; 
} 

あなたのインポートファイル:

/* File main.scss */ 
#inside { 
    @import "vendor"; 
} 

これにより、上記の例と同じ結果が得られます。

ネストされたインポートを使用する場合、インポートしたファイルは.scssファイルである必要があります。

+0

これはインタリーブしています。ファイル内のすべてのCSS定義の前にidを "追加"するためのヒントを教えてください。ネストされたルールは、CSSファイルを特別なスコープに制限するのではなく、CSSを「コンパクト」にするように見えます。 – Werner

+0

@Werner:特定のファイルのすべてのセレクタにプレフィックスを付ける方法に関する情報を更新しました – raphinesse

0

正規表現を見つけて置き換えるのが好きです。ただ、置き換え:

^[^{]+ 

で:

#inside $0 

。少なくともNotepad ++で動作します。

+0

私は完全に失われています。説明してください! – Jawad

+0

@Jawad:これは検索して置き換えます。あなたの好きなテキストエディタで。正規表現を使用します。それはGoogleです。 – Ryan

+0

はいはいはい。笑。私はCSSセレクタに新しいコンビネータがあると思いました。乾杯。 – Jawad

0

好奇心が強い、TDタグにクラスを適用しようとしましたか?または、定義を.myclassとして設定します。TABLE TR TD?

関連する問題