2012-12-19 155 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,如果這樣的作品,這是,你在別處定義的風格和需要更多的東西來覆蓋它的第一件事特定的(可能需要一個ID)

+0

這意味着如果我使用內聯樣式,就像我以前使用..它將需要'!重要'屬性爲了改變邊界上的錯誤? –

+0

@SumitGera是的,唯一的方法是使用'!important',這兩種方法通常都是不好的做法,所以如果你能避免內聯樣式是最好的 – Andy

+0

所以我可以假設當前樣式是最好的我的應用程序。 –