2013-07-18 52 views
3

我正在尝试做一些简单的事情。asp:按钮CssClass属性没有设置CSS类到我指定的

我有一个按钮。

<asp:Button ID="btnMyButton" runat="server" CssClass="MyButton" CausesValidation="False" Text="ClickMe" />

其风格被存储在我所知道的是正在使用的样式表,因为从这个样式表的页面使用其他样式元素。

这是我如何定义样式:

.MyButton { 
    font-size: 80pt; 
    color: red; 
} 

我也尝试了一些其他的方式来明确指向这个类(包括专门从含有元素引用它),但无济于事:

input[type="submit"].MyButton { table.MyTable > tbody > tr > td > input.MyButton {

我可以看到谷歌Chrome的开发者工具,它甚至没有覆盖我设置的样式,他们根本不存在。

当我查看页面源代码时,发现ASP.NET生成的输入控件甚至没有使用我的类(它使用了一种名为submitBtn的函数,这是我自己没有定义的任何地方)。如果我使用Google Chrome的开发人员工具将此课程更改为我的课程,则我的样式将按照我的预期应用,因此我知道它们是可用的。我只是不知道他们为什么不习惯开始。

我可以使用input[type="submit"] {对全局的所有按钮进行样式设置,但我试图设计一个特定的样式,而不使用内联样式定义。

请指教。

编辑:

我发现,如果我把我的CSS类在我的CSS文件submitBtn,它将应用我设置的样式。然而,因为所有的ASP.Net按钮似乎都想使用这个css类,为了为每个类设置一个独特的样式,我们必须将它们包装成跨度或者其他东西,并且专门设置按钮样式。

我仍然想知道为什么它不让我设置用于ASP.Net按钮的样式类的名称。

为了更加清晰,我更新了问题标题。

+0

您是否在整个项目中搜索“submitBtn”?如果您在浏览器的按钮标记中看到了这些内容,则可以添加它并覆盖放入页面的内容,无论是在服务器还是客户端。 – Michael

+0

如果有,那么当我使用Chrome浏览器的检查元素时,是否会在元素选项卡的样式部分下看不到此样式类?当我查看元素时,我无法在样式下使用submitBtn类查看它,只有'用户代理样式表',如果我理解它正确的是浏览器默认为了呈现元素。 – Interminable

+0

虽然有必要将“submitBtn”添加到您的类属性中。如果你创建一个空白的web应用程序,删除一个新的asp:按钮,将其CssClass设置为“MyClass”,然后运行,你不会看到它被替换为“submitBtn”。我想我的观点是,不要绕着一个跨度绕过这个其他课程,也许应该找出将submitBtn课程放在第一位的原因。如果你不能,那么是的,你可以包装它,以便在你的CSS中定位不同的方式(甚至可以通过它的ID来定位)。 – Michael

回答

4

您可以将内联样式设置为asp.net控件。

<asp:Button ID="btnMyButton" runat="server" CausesValidation="false" Text="ClickMe" 
      Style="font-size: 80pt; color: Red;" /> 

.MyButton 
{ 
    font-size:80pt; 
    color:Red; 
} 

<asp:Button ID="btnMyButton" runat="server" CausesValidation="false" Text="ClickMe" 
      CssClass="MyButton"/> 

工作对我罚款。

干杯

+1

我想避免内联样式定义,我宁愿他们都定义在CSS文件中。 至于你的第二个例子,这几乎是我的,但它不适合我,我不知道为什么。 – Interminable

+0

将CSS添加到您的HTML文档头部标记之间以查看是否有效。 – shammelburg

+1

我刚试过这个,不幸的是它没有效果。 – Interminable

1

也有同样的问题。在我的情况下,我正在使用SharePoint,这个CSS覆盖了我的按钮样式。尝试:

.MyButton 
{ 
    font-size:80pt !important; 
    color:Red !important; 
} 

!重要的是使风格无法覆盖...

+0

啊救了我。 Jquery将样式应用到我的ASP中:按钮甚至设置CssClass并没有帮助重写样式..使用!重要标志修复了问题,谢谢! – RyanG

1

使用<asp:LinkButton>代替

所以,你的按钮将

<asp:LinkButton ID="btnMyButton" runat="server" CssClass="MyButton" CausesValidation="False" Text="ClickMe" /> 
2

我知道这是老问题,但如果有人将停留在同样的问题时,你也应该检查你的。皮肤文件。在我的情况有以下声明:

<asp:LinkButton CssClass="linkbtn"></asp:LinkButton>

,这是迫使整个应用程序的所有LinkBut​​ton控件有没有pissibility“linkbtn”类来覆盖它。

+0

谢谢,这实际上帮助我确定了我的问题的真正原因。当事情独立时,我不喜欢它 –