2012-12-19 17 views
5

最近、テキストエリアのスタイリングに関する問題が見つかりました。 Yiiのアプリケーションのビューファイルに次のコードを挿入したところ、のCSSファイルにスタイリングコードがあると、エラーが発生したとき、すなわち入力しなかったときのままテキスト領域の境界が残っていました任意のテキストをテキスト領域に挿入します。スタイリングとCSS

ビューファイルのコード

<div class="form"> 
     <?php echo $form->labelEx($model,'body'); ?> 
     <div class="clear"></div> 
     <?php echo $form->textArea($model,'body',array('style' => 'min-width:80%;max-width:80%;min- height:20%;max-height:200px;border:1px solid #666')); ?> 
     <?php echo $form->error($model,'body'); ?> 
</div> 

CSS今

.form .error label:first-child,.form .error { 
color:#C00; 
} 
.form div.error textarea,div.form textarea.error{ 
background:#FEE; 
border-color:#C00; 
} 

私は、外部スタイルシート内のインラインCSSコードを挿入するとき:

array('style' => 'min-width:80%;max-width:80%;min- height:20%;max-height:200px') 

テキストエリアの境界線の色が、私が望むように変わります。私は、これがインラインスタイルの方がスタイルシートよりも優先順位が高いために発生するのか、それとも他の理由により起こったのかを知りたかっただけです。

答えて

4

これは、特異性の問題のように聞こえる、あなたはそれhereについて読むことができますが、一般的な要点はそうのようにCSSでの優先順位の一種である:

  1. !important
  2. インラインスタイルdiv style="color=red"
  3. 要素IDのdiv id=""
  4. クラス、属性および疑似クラスclass="", :focus
  5. 要素および疑似要素body, :before

あなたはそれが特異性の問題であるかどうかをテストするために行うことができますまず最初に、それはあなたが他の場所でスタイルを定義し、もっと何かでそれを上書きする必要がある、ある、それが動作するかどうか、宣言の後!importantを使用することです

+0

これは、私が以前使用したようなインラインスタイルを使用すると、エラー時にボーダーを変更するために '!imporant'属性が必要になることを意味しますか? –

+0

@SumitGeraはい、インラインで乗る唯一の方法は、 '!important'を使用することです。どちらも一般的に悪い練習です。最高のインラインスタイルを避けることができる場合は、 – Andy

+0

です。現在のスタイリングは、私のアプリケーション。 –

関連する問題