5

最近我发现文本区域的样式存在问题。当我在Yii应用程序的视图文件中插入以下代码并在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

1 回答 1

4

这听起来像是一个特殊性问题,你可以在这里阅读它,但一般要点是 CSS 中的一种优先级,如下所示:

  1. !important
  2. 内联样式div style="color=red"
  3. 元素 IDdiv id=""
  4. 类、属性和伪类class="", :focus
  5. 元素和伪元素body, :before

你可以做的第一件事来测试它是否是一个特殊性问题是!important在声明之后使用,如果它有效,那么你正在其他地方定义样式并且需要用更具体的东西覆盖它(可能需要一个 ID)

于 2012-12-19T12:22:51.590 回答