2013-07-19 263 views
0

我有以下ASP.Net代码控制风格覆盖

... 
<div style="width: 40%; float: left; margin-left: 15px"> 
    <b>County:</b> 
    <asp:ComboBox ID="cboCounty" runat="server" MaxLength="0" 
    AutoCompleteMode="SuggestAppend" CssClass="EPSCombo"> 
    </asp:ComboBox> 
    <br /> 
... 

问题:这个div包含许多组合框的,他们并不如预期显示,他们都有EPSCombo类。当我调试CSS我发现它是被重写,这里是从萤火

enter image description here

EPSCombo风格如下(覆盖默认AjaxToolkit CSS)

.EPSCombo .ajax__combobox_inputcontainer .ajax__combobox_textboxcontainer input 
{ 
    margin: 0; 
    border: solid 1px #7F9DB9; 
    border-right: 0px none; 
    padding: 1px 0px 0px 5px; 
    font-size: 13px; 
    height: 18px; 
} 
.EPSCombo .ajax__combobox_inputcontainer .ajax__combobox_buttoncontainer button 
{ 
    margin: 0; 
    padding: 0; 
    background-image: url(../images/windows-arrow.gif); 
    background-position: top left; 
    border: 0px none; 
    height: 21px; 
    width: 21px; 
} 
.EPSCombo .ajax__combobox_itemlist 
{ 
    border-color: #7F9DB9; 
} 

和输出包含EPSCombo的CSS文件是Master页面中包含的最后一个。

问题:它可能已经有一段时间了,因为我做了web开发,但是如果我决定CSS控件不应该具有最高优先级并且应该覆盖其他所有内容,那么正确吗?如果是这样,那么为什么我的组合框样式(高度,宽度,边距和填充)正被覆盖?我没有任何其他类型的设置Firebug中显示的值的高度和宽度。 Loki的回答

更新后,我想我应该补充这一点,添加!important这些属性可以解决这个问题,但我想给这个根本原因,看看事情发生了错误。

+0

正如你所看到的重写样式一样,线样式具有最高优先级,所以你需要检查你的代码,可能是你在代码中添加这些样式或者可能使用java脚本。 –

+0

我有这种担心,但正如我所说我没有任何其他地方,分配这些具体的价值观,也在我的问题,我只显示一个组合框,但'Div'有更多,他们每个人都有不同的价值。在我的JS中,我通常不会更改控件的CSS。有没有一种方法可以搜索或查看我的控件样式是否正在被JS修改? –

+0

@JafarKofahi如果你有权访问.js文件 - 你可以搜索类名或元素标签,看看他们正在做什么 –

回答

3

您的组合框可能会继承它所包含的<div>的样式,或者可能会从其高于那。既然你没有指定一个“类”或“ID”属性为它其中包含的DIV,该分区可能会从你的CSS文件中检索的风格,如果你有这样的:

div 
{ 
    height: 21px; 
    margin: 0px; 
    padding: 0px; 
    width: 21px; 
} 

要强制你的组合框采取独立的造型虽然你可以使用ASP style属性,像这样:

<asp:ComboBox ID="cboCounty" runat="server" MaxLength="0" 
AutoCompleteMode="SuggestAppend" style="margin: 0;padding: 0;height: 21px;width: 21px;"> 
</asp:ComboBox> 

这应该是在可以在你的应用程序会干扰其他任何造型的最高优先级。虽然认为编程实践不当,但它可能会帮助您缩小问题的范围。

干杯,埃里克

编辑我还要提到的是你的CSS代码是为了解释从最具体到最不特定的标签定义。例如,div.menudiv更具体,这可能发生在样式表的其他地方。

This也是一个很好的文章来看待描述继承。希望这可以帮助!

+0

有趣所以继承样式会覆盖给定的CssClass?我将阅读有关继承..感谢 –

+0

+1 @Er​​ic指出继承..这是问题的一半。下半场我仍在试图弄清楚。宽度和高度都在某处进行计算,并在HTML输出中分配为内联值 –

1

快速修复 - 将!important标志添加到样式表中。除非有其他标志定义了同一个元素的相同属性,否则它们将具有更高的优先级

+0

是的,加入'!important'就可以解决这个问题,但我不想每次发生时都添加它。我想找到它发生的原因:是我的CSS文件搞砸了,是我或我的团队中的任何人做一些造型在JS W/O实现它,...等 但感谢 –