2016-04-14 16 views
0

私はこれらのルールとcustom.cssを持っている:PHPのcssファイル内の現在のcssを置き換えますか?

div#widget {background:red !important;} 
div#widget2 {background:#f0f0f0;} 
div#widget2:hover {background: rgb(10,20,30);} 

これらのルールはcustom.cssファイルの任意の場所のようになります。

例:

div#widget {background:red !important;} 
.mainwrapper {background:blue;} 
div#widget2 {background:#f0f0f0;}  
p {font-size:12px;} 
div#widget2:hover {background: rgb(10,20,30);} 

今私の考えは、別のCSSファイルを追加することです次のような既存のcustom.cssルールを無効にする:

div#widget {background:yellow !important;} 
div#widget2 {background:#000000 !important;} 
div#widget2:hover {background: #ffffff !important;} 

!important-rulesで新しいカスタムCSSファイルを追加する代わりに、私は考えています...現在のcustom.cssルールを新しい背景色に置き換える方法はありますか?これはPHPで(安全な方法で)達成することが可能ですか?

$fp = fopen("newcustom.css", 'w'); 
fwrite($fp, $important_css); 
fclose($fp); 

UPDATE 明確化(今、私はこのような新しいCSSを作成しています)。私はユーザーがウィジェットを作成できるシステムを持っています。ウィジェットコードが作成され、ユーザーは簡単にコピーしてウェブサイトに貼り付けることができます。ユーザーのカスタムcssへの参照が作成されます。

システムを更新しています...新しいCSSファイルを追加する必要がある場合、新しいCSSをコピーして貼り付ける必要があります。私は現在のcustom.cssを置き換えることができる場合、それはすぐに "働く"でしょう。

+1

特定の状況でCSSルールを上書きしたいときはどうしますか?以前のCSSを使用したくないのですか? – hmd

+0

@ hmd-何を意味していますか? – bestprogrammerintheworld

+0

これのコンテキストは何ですか?なぜあなたはCSSをオーバーライドする必要がありますか? – Aziz

答えて

3

オーバーライドには、スタイルシートの順序付けが含まれます。だから、後でのcustom.css後に新しいCSSファイルを含める:

<link rel="stylesheet" type="text/css" href="custom.css" /> 
<link rel="stylesheet" type="text/css" href="new_file.css" /> 

だから、今、最後のルールは最初のものより優先:

div#widget {background:red;} 
div#widget {background:blue;} /* this will work */ 

一切、同じのため、後に定義されたCSSルールが働くだろう。

あなたはCSSルールのためのあなたの順序を変更したくない場合は、特定のページごとにいくつかのクラス名を定義し、それに働く可能性があります

div#widget.page3_widget {background:blue;} /* this will work */ 
div#widget {background:red;} 

さらに、あなたはどのように知っている私のanother answerを見ることができますCSSの特異性の仕事。 css specificityのルールを知っていれば、あなたのCSSでうまくいくかもしれません。

+0

はい、私はその時点で正確にやっています。しかし、代わりに現在のcustom.cssを置き換えるかどうかを尋ねています。 – bestprogrammerintheworld

+0

最初のファイルから不要なルールを削除し、いずれかのページに必要なルールを追加することもできます。 – ferdynator

+0

@ferdynator - あなたはどういう意味ですか? – bestprogrammerintheworld

0

jQueryを使用すると、簡単に新しいCSSをHTMLに追加できます。あなたは、単に特定のHTML要素のためのクラス名を追加しないのはなぜ(#div_id').css('{ }');

+0

私の場合、jQueryはオプションではありません。 CSSはサーバサイドで作成する必要があります。 – bestprogrammerintheworld

+2

なぜjQuery ????? –

+0

@BhojendraNepal常にjQueryのため) – ferdynator

0

同様

?そしてこれを行うことによって。現在のCSSルールの書き込み/上書き:

div.newWidget {background:red !important;} 
関連する問題