覆盖某些元素的CSS选择器

时间:2012-04-23 10:27:53

标签: html css

我有一个html页面,我想要样式(使用IE9)。

以下代码:

<style type="text/css">
    #komponenter select,
    #komponenter input
    {
         width: 180px;
         box-sizing:content-box; 
    }

    .special_box { width: 50px; height: 150px; }
</style>

... snipp ...

<div id="col2" class="kolumn">

    @Html.LabelFor(model => Model.Verksamhetskod)
    <br />
    @Html.TextBoxFor(model => Model.Verksamhetskod)
    <br />

    @Html.Label("Lat/Long")
    @Html.TextBoxFor(m => m.LatitudTecken)
    @Html.TextBoxFor(m => m.Latitud)
    @Html.TextBoxFor(m => m.LongitudTecken)
    @Html.TextBoxFor(m => m.Longitud)
    <br />

    @Html.Label("3 Överväganden:")
    <br />
    @Html.TextBoxFor(m => m.Overvagande)
    <br />

    @Html.Label("1 Ingångsvärden:")
    <br />
    @Html.TextBoxFor(m => m.Ingangsvarde, new { @class = "special_box" })
    <br />
</div>

html呈现得很好,问题是.special_box宽度被上面的css语句覆盖(高度正常)。我已经尝试将课程放在风格部分的第一位,但它确实没有任何区别。

2 个答案:

答案 0 :(得分:1)

这是一个特殊问题:尝试这一点(假设.special_boxinput元素)

#komponenter select,
#komponenter input
{
     width: 180px;
     box-sizing:content-box; 
}

#komponenter input.special_box {
     width: 50px; height: 150px; 
}

#komponenter input这样的规则具有101的特异性(1个id,0个类,1个元素)
.special_box的特异性为10(1类,0元素)

请参阅http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/了解详情

答案 1 :(得分:0)

上面的css比.specialbox(0-1-0)更高specificity(1-0-1)。要提高它,你必须“更具体”:

/*here we add a few more selectors to .special_box to be more specific*/
#komponenter input.special_box (1-1-1)
//   1-0-0 for #komponenter
//   0-0-1 for input
// + 0-1-0 for .special_box
// = 1-1-1

或者只是覆盖要使用!important

生效的样式
#komponenter input.special_box{
    width: 50px !important;   /*override width*/
    height: 150px;
}